Николай Савин

Николай Савин

С нами с 01 января 1970; Место в рейтинге пользователей: #2
Николай Савин
19 ноября 2020, 10:20
0
Подставляйте расчетную цену в скрытый параметр option
Далее в плагине (msOnAddToCart наверное) или в классе корзины который можно перезаписать по своему, ловите этот параметр — записывайте его в цену, а сам параметр уничтожайте за ненадобность.
Николай Савин
16 ноября 2020, 20:16
0
Напишите мне в телеграм biz87 — скину контроллер посмотреть
Николай Савин
15 ноября 2020, 11:32
0
Действительно и зачем все так напрягаются с роутингом, все ж одной строкой решается.
Но было бы намного интереснее подгрузить на каждый роут свой контроллер, с заранее определенными правами и набором возможностей, не считаешь?
Николай Савин
15 ноября 2020, 11:31
+9
Я со своей стороны тоже попробую сделать и написать практический обзор, чтобы более подробно рассказать о потенциальной пользе компонента.
Николай Савин
14 ноября 2020, 20:25
0
Здравствуйте. Поддержка должна сидеть возле компьютера круглосуточно, отходя только на обед?
Я видел ваш вопрос в магазине. Отвечу как будет возможность.

Касательно вашего вопроса здесь. Я вот ни слова не понял из вопроса.
Николай Савин
11 ноября 2020, 22:06
+3
Предлагаю вынести PayPal в отдельный компонент, как это сделано для всех платежных систем. Никогда не понимал зачем он нужен в коробке.
Николай Савин
10 ноября 2020, 17:00
0
Так же как и в любом другом случае.
$msOrder = $modx->getObject('msOrder', array('id' => $id));
$msAddress = $msOrder->getOne('Address');
Судя по тому что вы знаете название классов вы в курсе как это делается.
Николай Савин
09 ноября 2020, 18:14
0
Полезнее создать issue на github.
Николай Савин
05 ноября 2020, 15:01
+1
Готов забрать bannerY, Jevix и HybridAuth
Николай Савин
01 ноября 2020, 10:49
+1
тупо без аргументации
Тебе уже два человека прямо на пальцах показали где проблема и к чему она может привести. Какая еще аргументация нужна.

Не хочешь слушать — ради бога.
Николай Савин
01 ноября 2020, 10:35
0
Так не в этом дело что можно не включать. Это мы участники дискуссии понимаем.
Проблема в том, что щас молодые неопытные увидят крутой компонент и без раздумья будут все подряд туда пихать.

А сидеть без ajax'a в 2к20
Сидеть на jquery в 2020 тоже так себе. Попахивает.

Нет тут никакой альтернативы. Потому что подход в принципе неверный, ведущий только к плохому.
ВСЕГДА на каждый необходимый функционал пишется свой отдельный запрос. Либо на коннектор, либо на плагин. И там уже вся логика, скрытая от посторонних глаз.
Николай Савин
01 ноября 2020, 10:20
0
Поставил минус — обязан объяснить.
Этот компонент действительно дыра в безопасности.
Доступ к, например, pdoResources позволяет получить любую информацию из любой таблицы, включая личные данные пользователей, заказы, промо-коды и любую другую коммерческую информацию. А также любые системные настройки, где часто хранятся логины-пароли к платежным системам, апишкам и т.п.

Ответственный программист конечно улыбнется и не будет использовать такой компонент, но найдутся десятки неопытных ребят, которым надо проще и быстрее. А потом начнется… MODX дырявый
Николай Савин
26 октября 2020, 20:21
0
Добрый день. Я так понимаю речь о неполадках внутри самой CRM?
Мой компонент не имеет к этому никакого отношения. Он работает ТОЛЬКО на сайте.
Николай Савин
25 октября 2020, 19:25
0
компонент оцененный специалистом по разработке компонентов в 120тр именно в моём исполнени основанном на моём 30ти летнем опыте программирования на разных языках
А можно поинтересоваться кто именно из специалистов по разработке компонентов оценил стоимость? Их немного в общем то.
Николай Савин
15 октября 2020, 20:27
0
а так хорошо
да наверное. Вообще на моем опыте в счетчиках всегда let используют. Здесь как раз срабатывает правило — показать читающему что эта переменная где то далее изменится. Здесь не техническая особенность а скорее общепринятое написание.

Ну скорее значение?

 Неа. Именно тип. Значение двух типов менять можно. Это массив и объект. Мы запросто можем манипулировать их внутренностями.
Николай Савин
15 октября 2020, 19:36
0
1. Объект user просто определен выше по логике кода. Он не существует сам по себе. Читаем цикл for in
2. Переменные имеют область видимости. Она ограничена круглыми или фигурными скобками. Читаем область видимости. Попробуй вызови в консоли element за пределами ближайшей фигурной скобки
3. Как только область видимости заканчивается — сборщик мусора уничтожает переменную и ее можно объявить заново. В цикле можно заново объявлять переменные на каждой итерации. Читаем про сборщик мусора.
4. Есть такое правило ВСЕГДА использовать const при объявлении переменной. Это связано с тем что далее нельзя будет изменить ее тип и при объявлении четко понятно какого типа переменная. Исключение — если изначально понятно что переменная ниже будет перезаписана. И это объявление тоже служит сигналом для читающего код что где то ниже переменная будет перезаписана. Таким образом const и let это еще и информация о судьбе переменной. Будет ли ниже ее изменение.
Николай Савин
12 октября 2020, 19:38
0
Наверное вот такие вопросы и возникают потому что все на бегу а не основательно и по порядку.
Очень рекомендую уроки по JS Владилена Минина. У него превосходный канал на Ютубе с отличным контентом и есть полноценные курсы начиная от основ JS до всевозможных фреймворков. Ну и практика конечно.
Николай Савин
10 октября 2020, 10:31
0
Для небольшого сайта вообще не имеет смысла использовать компоненты.
Наиболее полезно и безгеморно написать парочку плагинов своими силами и радоваться.
Николай Савин
07 октября 2020, 20:03
+2
Если уж корректируете код и используете феном — старайтесь корректировать его до конца
В чанках нужно использовать родной синтаксис фенома и вызывать плейсхолдеры через $
'tpl' => '@INLINE {$content}',
where должен использовать массив данных. для фенома это [ ]
так и запись проще получается без конкатенации и можно использовать многострочный ввод
'where' => [
"pagetitle" => $_modx->resource.brand
]
Итого получаем

{'pdoResources' | snippet : [
    'parents' => '1',
    'depth' => '0',
    'includeContent' => '1',
    'tpl' => '@INLINE {$content}',
    'where' => [
         "pagetitle" => $_modx->resource.brand
     ]
]}