04 июня 2013, 11:59 в этом же плагине ->save() делать надо/обязательно?по ходу тупой вопрос)) Вопросы / Вопросы про права на Тикеты 7 0
04 июня 2013, 11:40 А, вон оно как. Теперь понял. Просто я всегда объект ресурса либо через xPDO получал, либо просто через переменную $resource. Ведь в плагинах могут быть доступны какие-либо переменные. В On(Before)DocFormSave доступны $id, $resource, $mode. Теперь буду знать :-) Спасибо! А после изменения значения через set(): $modx->event->params['object']->set();в этом же плагине ->save() делать надо/обязательно? Чтобы другие плагины изменения заметили? Вопросы / Вопросы про права на Тикеты 7 0
04 июня 2013, 11:25 2. Да, чёрт побери, вот это у меня затуп. До меня только сейчас дошло, что закомментив, я наоборот сломал, а не починил xD 3. Просто здесь я исходил из логики, что если менять алиас путём обычного $resource->set('alias', $newAlias); $resource->save();и есть ещё какой-нибудь плагин, который работает на сохранение документа, и этот другой плагин отрабатывает ДО моего плагина, то изменение алиаса тот плагин уже не увидит. Ведь сайт-то я сейчас доделаю, отдам заказчику и повлиять на то, как его будут дальше дорабатывать, я уже никак не смогу (вдруг он порядок выполнения плагинов изменит, мало ли, всякое бывает). Поэтому хотел предусмотреть все варианты, чтобы ни где ничего случайно не поломалось. Но видать и правда правильней через методы xPDO сохранять. Спасибо, в очередной раз, за консультацию! :-) Вопросы / Вопросы про права на Тикеты 7 0
31 мая 2013, 15:16 Кстати вот: http://jsfiddle.net/Qm4cp/1/ Вопросы / как вывести сумму 3х (value) select 8 0
31 мая 2013, 15:13 Как вы определили что он не заработал? Визуально на странице ничего не происходить не будет. Результат суммирования значений выводится в консоль браузера. Это вот эта строка: console.log(summ); // <- resultДальше вы можете делать с переменной summ всё, что пожелаете — вставить куда-нибудь на страницу или что угодно. Если вы не понимаете как это сделать, то читайте основы яваскрипта, например здесь. Попробуйте заменить вышеприведённую строчку кода на вот это: alert(summ); // <- resultЕсли не будет всплывающего окна с результатом, то ошибка действительно где-то в другом месте. Вопросы / как вывести сумму 3х (value) select 8 0
30 мая 2013, 23:37 Не, андерскор подключать не надо, я просто функцию из него выдернул, остальное из него для этого примера не нужно. Честно говоря, не знаю почему у вас не работает, может потому что из приведённого выше кода видно, что jquery не подключен? :-) Он как раз таки нужен) И добавьте доктайп перед тегом html: <!DOCTYPE html> <html>Это доктайп html5, и когда он прописан, то писать атрибуты type и language в теге script уже не надо, можно просто: <script>..</script>или <script scr="/js/scripts.js"></script>з.ы. в следующий раз нажимайте ссылку «Ответить» под автором комментария (в данном случае под моим), а не на кнопку «Оставить новый комментарий», потому что при ответе на конкретный коммент автору этого комментария придёт уведомление на почту. Вопросы / как вывести сумму 3х (value) select 8 0
29 мая 2013, 01:59 Ох уж эти жиквери-писалкины. Даже числа сложить без него уже не умеют. html: <select multiple> <option val="1">1</option> <option val="2">2</option> <option val="3">3</option> <option val="4">4</option> <option val="5">5</option> <option val="6">6</option> </select>js: // Underscore.js isArray() var isArray = Array.isArray || function(obj) { return toString.call(obj) == '[object Array]'; }; $('select').on('change', function(e) { var $this = $(this), values = $this.val(), summ = 0; if (isArray(values)) { for (var i = 0, length = values.length; i < length; i++) { summ += parseInt(values[i], 10); } } else { summ = values; } console.log(summ); // <- result }).triggerHandler('change'); // 'triggerHandler'! Not 'change()' or "trigger('change')"! Вопросы / как вывести сумму 3х (value) select 8 0
26 мая 2013, 22:58 Где-нибудь в сниппете: <script> window.variableName = "<?php echo $variableName; ?>"; </script>ПОСЛЕ вызова сниппета (инлайновый скрипт либо из подключенного файла): console.log(variableName); Вопросы / Передача переменных из PHP в JS! 5 0
26 мая 2013, 00:52 Да, гитхаб — было б очень удобно, поддерживаю! Надеюсь, что всё-таки выложите (-: Вопросы / Хочу поделиться. 5 0
24 мая 2013, 19:21 Да, собссна, так же и передавай. $select = array(); $where = array(); $columns = array(); $where['Ticket.id:>='] = 123; // for example $where[] = 'MATCH (pagetitle, longtitle, description, alias, introtext, content, class_key) AGAINST (:qstr2 IN BOOLEAN MODE)'; $columns[] = '`Ticket`.`id`'; $columns[] = '`Ticket`.`published`'; $columns[] = /* ... */; $columns[] = 'MATCH (pagetitle, longtitle, description, alias, introtext, content, class_key) AGAINST (:qstr2 IN BOOLEAN MODE) as relevance'; $class = 'Ticket'; $select[] = '"Ticket":"'.$modx->getSelectColumns($class, $class).', '. implode(', ', $columns).'"'; $pdoFetchConfig = array( 'select' => '{'.implode(',',$select).'}', /* ... */ ); if (count($where)) $pdoFetchConfig['where'] = $modx->toJSON($where); $pdoFetch = $modx->getService('mypdofetch','mypdoFetch',$modx->getOption('pdotools.core_path',null,$modx->getOption('core_path').'components/pdotools/').'model/pdotools/',$pdoFetchConfig); Вопросы / Как правильно передать MATCH..AGAINST в pdo_tools? 1 0
07 мая 2013, 16:49 Ну Алёёёша, ну балбееес! Спасибо огромное, Василий! Просто преогромное :-) Вопросы / Не работает leftJoin в pdoTools 6 0
07 мая 2013, 16:38 Спасибо, заработало! Блин, а вот getTickets так и не заводится :-( [[!getTickets? &tpl=`tpl.Tickets.list.row` &return=`chunks` &showUnpublished=`1` &showLog=`1` &parents=`6` &includeContent=`1` &showHidden=`1` ]]Если запрос из лога выполнить в базу напрямую, то выдача есть, а на странице, в месте вызова сниппета, ничего, кроме лога, не выводит. Чанк рабочий (через этот же чанк example.pdoFetch свои результаты выводил)… Уже блин и так, и сяк параметры набирал — без толку. Где я мог опять накосячить? Вопросы / Не работает leftJoin в pdoTools 6 0
07 мая 2013, 15:39 Опа, вёрстка споткнулась об закрывающий /pre Вопросы / Не работает leftJoin в pdoTools 6 0
02 мая 2013, 20:18 Не, меня всё устраивает :-) Тем более, если других вариантов нет) Вопросы / Залогиненный через процессор юзер не доступен в $modx->user 8 0
02 мая 2013, 19:11 Тогда по логике получается, что это не доработка системы? Или ошибка? Почему бы юзера сразу не перезаписывать? У разработчиков были причины? А если были, то есть вероятность, что при таком подходе что-то где-то может сломаться или сработать не так… Но вообще, странное, на мой взгляд, поведение. Вопросы / Залогиненный через процессор юзер не доступен в $modx->user 8 0
02 мая 2013, 18:52 В общем, пока выход такой: Чтобы данные о пользователе в системе были доступны сразу же после логина, надо просто перезаписывать $modx->user: $modx->user = $user;При логауте устанавливать в анонима: $modx->user = $modx->getObject('modUser', 0);Не знаю, на сколько правильный подход и что может сломаться при таком действии, но другого варианта я пока не вижу. Если кто-то прочитает это после праздников и у него будут мысли по этому поводу — не стесняйтесь их здесь высказывать :-) Вопросы / Залогиненный через процессор юзер не доступен в $modx->user 8 0
02 мая 2013, 18:46 Так, на тестовом мой косяк, внутри функции loginUser забыл написать global $modx. А вот по сабжу выяснилось вот что: юзер логинится, но это становится видно только после перезагрузки страницы. Т.е. получается, что при $modx->runProcessor('security/login', $data);в $modx->user пользователь станет доступен не прям сразу после вызова процессора, а только при перезагрузке страницы. С логаутом та же картина. Уже что-то, но всё-равно не годится :-( Вопросы / Залогиненный через процессор юзер не доступен в $modx->user 8 0
02 мая 2013, 18:19 Попробовал сейчас на тестовом воспроизвести, так там вообще система не даёт пользователя зарегистрировать — в лог падает ошибка: User create error. Username: mail@example.com, Message: not_logged_inНу т.е. в лог ошибку-то я записываю, но вот not_logged_in (Не вошёл!) процессор отдаёт. И почему вот он её отдаёт?.. Вопросы / Залогиненный через процессор юзер не доступен в $modx->user 8 0
30 апреля 2013, 08:31 Василий, а при таком подходе проверка на правильность email'а самим modx'ом осуществляется, не подскажешь? Или надо самому валидацию мыла делать? Вопросы / Tickets. Фоновая регистрация 5 0
Возможно ли реализовать возможность предоплаты за доставку на сайте? В любом случаем стандартный флоу минишоп2 рассчитан на оплату по ссылке, т.е. чтобы получить информацию об оплате, нужно чтобы заказ существовал. Чтобы сделать иначе, нужно использ...
Редизайн сообщества На больших экранах основной текст статьи я бы сделал 18 px. Да и текст комментариев можно таким сделать. Для меня лично 16 — мелковато на больших экранах (в комментариях вообще 15 ...
MiniShop3 1.11.0 при клике на radio идет пересчет итоговой суммы в orderUI, в зависимости от способов(оплаты доставки) я так поняла. попробуй код запуска события поставить ниже чем orderUI, после
ImageOptimizer - WebP/AVIF и responsive <picture> для MODX 3 Дополнение доступно modstore.pro/packages/photos-and-files/imageoptimizer
Localizator3 для MODX 3: перевод полей и TV без отдельного context на язык, Vue 3 + PrimeV... Добавил localizator3_default_language
msInShopNotify Начиная с версии 3.0.0-beta добавлена поддержка MiniShop3 Минимальные требования: PHP 8.4 MODX 3.2 MiniShop3
MaxNotify Обновление 1.2.0-pl (03.07.2026) — добавлены уведомления о заявках FormIt через hook-сниппет `maxNotifyFormIt`; — добавлены уведомления о заявках SendIt через hook-...
[msBonus2] 1.3.0 Бонус-коды, уведомления о сгорании и совместимость с msMultiCurre... Да, планируется. Даже чуть больше, чем просто бонусная система)
Теперь буду знать :-) Спасибо!
А после изменения значения через set():
в этом же плагине ->save() делать надо/обязательно? Чтобы другие плагины изменения заметили?
3. Просто здесь я исходил из логики, что если менять алиас путём обычного
и есть ещё какой-нибудь плагин, который работает на сохранение документа, и этот другой плагин отрабатывает ДО моего плагина, то изменение алиаса тот плагин уже не увидит. Ведь сайт-то я сейчас доделаю, отдам заказчику и повлиять на то, как его будут дальше дорабатывать, я уже никак не смогу (вдруг он порядок выполнения плагинов изменит, мало ли, всякое бывает). Поэтому хотел предусмотреть все варианты, чтобы ни где ничего случайно не поломалось.
Но видать и правда правильней через методы xPDO сохранять.
Спасибо, в очередной раз, за консультацию! :-)
http://jsfiddle.net/Qm4cp/1/
Дальше вы можете делать с переменной summ всё, что пожелаете — вставить куда-нибудь на страницу или что угодно.
Если вы не понимаете как это сделать, то читайте основы яваскрипта, например здесь.
Попробуйте заменить вышеприведённую строчку кода на вот это:
Если не будет всплывающего окна с результатом, то ошибка действительно где-то в другом месте.
Честно говоря, не знаю почему у вас не работает, может потому что из приведённого выше кода видно, что jquery не подключен? :-) Он как раз таки нужен)
И добавьте доктайп перед тегом html:
Это доктайп html5, и когда он прописан, то писать атрибуты type и language в теге script уже не надо, можно просто:
или
з.ы. в следующий раз нажимайте ссылку «Ответить» под автором комментария (в данном случае под моим), а не на кнопку «Оставить новый комментарий», потому что при ответе на конкретный коммент автору этого комментария придёт уведомление на почту.
html:
js:
ПОСЛЕ вызова сниппета (инлайновый скрипт либо из подключенного файла):
Надеюсь, что всё-таки выложите (-:
Спасибо огромное, Василий! Просто преогромное :-)
Блин, а вот getTickets так и не заводится :-(
Если запрос из лога выполнить в базу напрямую, то выдача есть, а на странице, в месте вызова сниппета, ничего, кроме лога, не выводит.
Чанк рабочий (через этот же чанк example.pdoFetch свои результаты выводил)…
Уже блин и так, и сяк параметры набирал — без толку.
Где я мог опять накосячить?
Тем более, если других вариантов нет)
Почему бы юзера сразу не перезаписывать? У разработчиков были причины?
А если были, то есть вероятность, что при таком подходе что-то где-то может сломаться или сработать не так…
Но вообще, странное, на мой взгляд, поведение.
Чтобы данные о пользователе в системе были доступны сразу же после логина, надо просто перезаписывать $modx->user:
При логауте устанавливать в анонима:
Не знаю, на сколько правильный подход и что может сломаться при таком действии, но другого варианта я пока не вижу.
Если кто-то прочитает это после праздников и у него будут мысли по этому поводу — не стесняйтесь их здесь высказывать :-)
А вот по сабжу выяснилось вот что: юзер логинится, но это становится видно только после перезагрузки страницы.
Т.е. получается, что при
в $modx->user пользователь станет доступен не прям сразу после вызова процессора, а только при перезагрузке страницы. С логаутом та же картина.
Уже что-то, но всё-равно не годится :-(
Ну т.е. в лог ошибку-то я записываю, но вот not_logged_in (Не вошёл!) процессор отдаёт. И почему вот он её отдаёт?..
Или надо самому валидацию мыла делать?