11 марта 2017, 18:57 Пул реквесты пока еще проверяются и вливаются постепенно, так что скоро будет. Заказчик с кнутом не стоит и баблом не машет, так что точной даты релиза нет. Каждый в силах ускорить, нужен только аккаунт на github :) Новости и события / [BugHunt] Па слядах дзікага палявання караля Стаха 17 +2
04 марта 2017, 21:55 Ну некоторые навыки работы с git и github требуются. Перед мероприятием ребята из Sterc подготовили очень хорошую инструкцию по работе над багами и задачами — github.com/sterc/modxbughunt. Так что можно иногда в нее поглядывать, когда захочется помочь в развитии проекта. Новости и события / [BugHunt] Па слядах дзікага палявання караля Стаха 17 +3
04 марта 2017, 21:48 Вот да, тоже заметил. Я на работе сидел за 27", а потом дома открыл ноут и слегка офигел, пришлось подключать хотябы 22", чтобы код писать. Но учитывая, что многие перепроверяли и тестировали баги, то открыть github и админку modx + какую-нибудь консоль, то ноута должно хватить. Новости и события / [BugHunt] Па слядах дзікага палявання караля Стаха 17 +1
04 марта 2017, 21:40 Не принимай близко к сердцу, настроение было поэтическое, а белорусский — мой родной язык. :) За поздравление спасибо. Новости и события / [BugHunt] Па слядах дзікага палявання караля Стаха 17 +4
04 марта 2017, 21:39 А в чем смысл трансляций конференций, когда потом выкладывают записи докладов? Но люди зячем-то просят и ни одна нормальная конфа сейчас не обходится без стрима, при этом качество стрима тоже не всегда самое лучшее. Трансляцию в записи смотреть смысла нет (я потому и написал что в аккаунте Sterc есть отдельные видео, где сама суть), смысл ее был вчера, когда это все было вживую и был эффект присутствия, но для порядку ссылку оставил. По теме обновок, то да, после всех мерджей будет новая версия, скорее всего уже 2.6.0, так как кроме исправлений багов добавили и пару новых небольших, но фич. Новости и события / [BugHunt] Па слядах дзікага палявання караля Стаха 17 +4
27 февраля 2017, 10:45 Автоматически там сделать вряд ли получится, но можно попробовать следующее. Найти исходники тех пакетов, которые вам нужно перенести. Именно исходники, где есть папка _build. Установить modx где-нибудь локально и скопировависходники туда попробовать собрать пакет. Если получилось, тогда скопировать ваш измененный код с сайта и заменить код в пакете, затем заново собрать дополнение. И потом загрузить на новый сайт. Вопросы / Упаковка транспортного пакета кастомного приложени 5 0
27 февраля 2017, 10:43 Вапор копирует весь сайт целиком в пакет, а тут как я понял, нужно какие-то уже ранее установленные пакеты собрать заново и перенести на другой сайт. Вопросы / Упаковка транспортного пакета кастомного приложени 5 0
26 февраля 2017, 08:28 Про названия переменных уже сказали, это ужасно. Никогда так не делайте, называйте переменные правильно и не придется писать тонны комментариев к коду. Второ момент, зачем тут такие странные манипуляции? $g=$modx->getCollection('modResource',array('parent'=>$p)); foreach ($g as $g1){ $where[]=$g1->get('id'); }Лучше использовать getIterator, на большом количестве ресурсов памянть не закончится, это раз. Два раза вы делаете проход по массиву, абсолютно бесполезно. Вы же и так перебираете ресурсы, почему не сделать вот так? foreach ($modx->getIterator('modResource', array('parent' => $parent)) as $resource) { $result = $modx->getObject('modTemplateVarResource', array('contentid' => $resource->get('id'), 'tmplvarid' => 1)); ... }Большая вложенность кода в {} ухудшает читабельность кода, поэтому идеальный код — это прямой без ветвлений или стараться их избегать где возможно. Например, вместо проверки, есть ли значение в переменной и выполнения кода внутри if, можно проверить, что если значение пустое, то пропустить остальной код и перейти на следующую итерацию. if (!$result) { continue; } $res = $result->get('value');Про return из сниппета вам уже сказали, лучше собирать весь вывод в буфер в виде массива или строки и потом уже выводить одним return. Это даст возможность в дальнейшем, когда условия задачи изменятся, еще раз пройтись по массиву или строку и применить дополнительные действия над результатом. Простой пример, у вас сниппет в зависимости от параметра должен выдавать или строку на экран или json в случае ajax-запроса. В таком случае можно сделать так: $output = []; foreach ($r as $r1) { $output[] = $r1['text']; } return $ajax ? json_encode($output) join("", $output);И последнее, несмотря на то, что параметры в снипете уже присутствуют в виде переменных, лучше получать их значения через API MODX. Это в дальнейшем даст возможность использовать Property Sets (предустановленные параметры) и значения по умолчанию. $parent = $modx->getOption('parent', $scriptProperties, null); Вопросы / Поругайте код, мне будет полезно 8 +3
21 февраля 2017, 10:37 Это делается средствами php, MODX тут не нужен. Вопросы / Разделить запятыми 1 0
18 февраля 2017, 22:15 Учитывая, что сейчас все работает в utf8 кодировке, то особых проблем быть не должно, но я бы не стал так делать. Вопросы / Название элементы MODX на русском языке 8 +4
18 февраля 2017, 20:57 О! Вот оно то самое решение, которое я не нашел. Только системные настройки нужно менять не глобальные, а для группы (или для отдельного пользователя). Вопросы / Права для контент-менеджера 6 +1
17 февраля 2017, 18:26 Да, это второй альтернативный вариант, но там чуть кода больше писать нужно. Вариант с панелью чуть-чуть проще людям, которые не знакомы с кодом. Вопросы / Права для контент-менеджера 6 +1
17 февраля 2017, 10:39 Быстрого и короткого решения нет, но если по механике всего действа, то я так делал. Менеджеры могут видеть только заказы минишопа. Создал группу, куда поместил этих пользователей. Создал свою политику доступа (вернее две). Одну унаследовал от политики, которая идет с minishop2 (там чуть-чуть подтюнил один момент, чтобы нельзя было удалять заказ. Такой настройки нет в minishop2 сейчас, пришлось подправить исходники, не забыть бы PR Василию выслать), вторую от контент менеджера и поснимал галки со всех действий, которые мне были нужны (в частности запретил изменять как либо все ресурсы — требование заказчика). Затем эти политики доступа привязал в группе к контексту mgr. С правами на этом все, но осталась проблема, что нужно было после входа сразу отправлять пользователя в заказы минишопа, стандартных средств в MODX это сделать я не нашел, но решение есть. Создается панель (dashboard), которая назначается группе и пользователь попадает после входа на эту панель. А в самой панели я создал виджет, которые просто редиректит на заказы минишопа. В итоге, после входа пользователь сразу перенаправляется на нужную страницу. В общем, коротко не получилось, но я предупреждал, что быстрого и короткого решения нет :) На следующей неделе, если получится, запишу урок на эту тему. Вопросы / Права для контент-менеджера 6 +4 2
17 февраля 2017, 10:18 Довольно просто, если в целом. Вот пример моей формы с фильтрами и кнопкой. <form action="" method="post" id="mse2_filters"> {if $filters != 'Нечего фильтровать'} {$filters} <div class="filter"> <main> <div class="txt-center"> <button type="reset" class="button-outline">Сбросить фильтры</button> <button type="submit" class="hidden">[[%mse2_submit]]</button> </div> </main> </div> {else} <div class="centered"> <p> {$filters} </p> </div> {/if} </form> Вопросы / Сделать кнопку сброса фильтров Mfillr2 1 +1 3
15 февраля 2017, 10:32 Скопипастить код, выданный Disqus, и вставить его в шаблон на статью не тянет, ну никак. Вопросы / Подключение Disqus 4 +3
12 февраля 2017, 21:19 А на сайте несколько контестов? Это известная проблема. В последнем обновлении Джейсон добавил улучшенный логгер битых ссылок, но то ли перестарался, то ли не доглядел и для контекстов не web ошибка показывается всегда. В вашем случае эти ошибки можно пока что игнорировать. Вопросы / MODx 2.5.5: ошибки в логах 1 +3
12 февраля 2017, 12:21 Такой кнопки нет, потому что это долгая операция и любой запуск просто не успеет выполнится из-за ограничений по времени выполнения со стороны вебсервера. Поэтому в данном случае тоже имеется ввиду консольный скрипт (вернее процессор). Вопросы / Как перегенерировать изображения в магазине MS2 3 +3
09 февраля 2017, 21:01 У меня один вопрос — зачем? Google не зашифрован, но что-то не видно успешных копий. Вопросы / Как защитить сайт от скачивания 12 +1
07 февраля 2017, 16:15 О да, я больше скажу, у нас на проекте (который под такие тесты заточен) не один миллион строк кода, которые каждый день допиливаются. Объявления о работе / Модуль для проведения тестирования 10 +1
06 февраля 2017, 00:31 7 минут многовато конечно, но и 12 тыс ресурсов — дело такое. Учитывая, что проверяются даты и вычисляются коэффициенты важности ресурсов. Вопросы / Sitemap генерируется 414 секунд. 12 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... Да, планируется. Даже чуть больше, чем просто бонусная система)
За поздравление спасибо.
По теме обновок, то да, после всех мерджей будет новая версия, скорее всего уже 2.6.0, так как кроме исправлений багов добавили и пару новых небольших, но фич.
Второ момент, зачем тут такие странные манипуляции?
Лучше использовать getIterator, на большом количестве ресурсов памянть не закончится, это раз. Два раза вы делаете проход по массиву, абсолютно бесполезно. Вы же и так перебираете ресурсы, почему не сделать вот так?
Большая вложенность кода в {} ухудшает читабельность кода, поэтому идеальный код — это прямой без ветвлений или стараться их избегать где возможно. Например, вместо проверки, есть ли значение в переменной и выполнения кода внутри if, можно проверить, что если значение пустое, то пропустить остальной код и перейти на следующую итерацию.
Про return из сниппета вам уже сказали, лучше собирать весь вывод в буфер в виде массива или строки и потом уже выводить одним return. Это даст возможность в дальнейшем, когда условия задачи изменятся, еще раз пройтись по массиву или строку и применить дополнительные действия над результатом.
Простой пример, у вас сниппет в зависимости от параметра должен выдавать или строку на экран или json в случае ajax-запроса. В таком случае можно сделать так:
И последнее, несмотря на то, что параметры в снипете уже присутствуют в виде переменных, лучше получать их значения через API MODX. Это в дальнейшем даст возможность использовать Property Sets (предустановленные параметры) и значения по умолчанию.
Создал группу, куда поместил этих пользователей. Создал свою политику доступа (вернее две). Одну унаследовал от политики, которая идет с minishop2 (там чуть-чуть подтюнил один момент, чтобы нельзя было удалять заказ. Такой настройки нет в minishop2 сейчас, пришлось подправить исходники, не забыть бы PR Василию выслать), вторую от контент менеджера и поснимал галки со всех действий, которые мне были нужны (в частности запретил изменять как либо все ресурсы — требование заказчика). Затем эти политики доступа привязал в группе к контексту mgr. С правами на этом все, но осталась проблема, что нужно было после входа сразу отправлять пользователя в заказы минишопа, стандартных средств в MODX это сделать я не нашел, но решение есть. Создается панель (dashboard), которая назначается группе и пользователь попадает после входа на эту панель. А в самой панели я создал виджет, которые просто редиректит на заказы минишопа. В итоге, после входа пользователь сразу перенаправляется на нужную страницу.
В общем, коротко не получилось, но я предупреждал, что быстрого и короткого решения нет :)
На следующей неделе, если получится, запишу урок на эту тему.
Вот пример моей формы с фильтрами и кнопкой.