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
Возможно ли реализовать возможность предоплаты за доставку на сайте? У меня Робокасса, у них вроде есть docs.robokassa.ru/ru/iframe
Редизайн сообщества На больших экранах основной текст статьи я бы сделал 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 (Не вошёл!) процессор отдаёт. И почему вот он её отдаёт?..
Или надо самому валидацию мыла делать?