29 января 2019, 10:43 Разобрался :) В общем в modExtra менять ничего не нужно. Вопросы / Что нужно изменить в modExtra чтоб не было modAction support is deprecated? 7 0
29 января 2019, 08:04 Для проверки установил Tickets. На modAction ругается 3 раза. А должно 1 раз на это if ($action = $modx->getObject('modAction', array('namespace' => 'tickets'))) { $action->remove(); /** @var modMenu $menu */ if ($menu = $modx->getObject('modMenu', array('text' => 'tickets'))) { $menu->remove(); }Похоже наши гуру и сами не знают, что там такого нужно поменять, чтоб не ругалось :) Вопросы / Что нужно изменить в modExtra чтоб не было modAction support is deprecated? 7 0
29 января 2019, 05:47 Кто-нибудь может помочь? Вопросы / Что нужно изменить в modExtra чтоб не было modAction support is deprecated? 7 0
28 января 2019, 06:21 квест найди отличия этого <?php /** @var modX $modx */ /** @var array $sources */ $menus = array(); $tmp = array( 'emailqueue' => array( 'description' => 'emailqueue_menu_desc', 'action' => 'home', //'icon' => '<i class="icon icon-large icon-modx"></i>', ), ); foreach ($tmp as $k => $v) { /** @var modMenu $menu */ $menu = $modx->newObject('modMenu'); $menu->fromArray(array_merge(array( 'text' => $k, 'parent' => 'components', 'namespace' => PKG_NAME_LOWER, 'icon' => '', 'menuindex' => 0, 'params' => '', 'handler' => '', ), $v), '', true, true); $menus[] = $menu; } unset($menu, $i); return $menus;от этого Вопросы / Что нужно изменить в modExtra чтоб не было modAction support is deprecated? 7 0
28 января 2019, 06:03 Я это читал перед тем как тему создать :(, но увы нефига не понял :(. Какие-то ссылки на коммиты Tickets, в которые я смотрю и не вижу никаких modAction. Смотрю код build modExtra и тоже не нахожу никаких modAction. Я в том как генерируется и устанавливается транспортный пакет внутри кода MODX практически ничего не знаю. Просто тупо брал modExtra переименовывал и писал что нужно в нем :). А теперь прямо засада. Вопросы / Что нужно изменить в modExtra чтоб не было modAction support is deprecated? 7 0
28 декабря 2018, 22:37 Она на modx evo. Вопросы / Как закрыть доступ к определенным страницам и элементам на сайте? 8 0
28 декабря 2018, 21:21 Недавно делал сайт обучения по недвижимости Вопрос первый — как закрыть доступ к платным курсам?Делал компонент — регистр курсов. Табличка ид курса, ид юзера, зарегистрирован, куплен, пройден. На странице курса сниппет который проверяет платный ли курс, куплен ли курс этим юзером и выдает плейсхолдеры в шаблон на феноме где на плейсхолдеры ставится {if $placeholder}. То есть в зависимости от плейсхолдеров активируются разные части шаблона. (а можно, проще, в сниппете возвращать просто разные чанки на куплен и не куплен. У нас было просто много мест где менять поведение надо.) Вопрос второй — на каждом курсе будет по 5-6 видео разделов, планируется делать проверку домашнего задания. Допустим мы зарегистрировались, зашли на бесплатный или купили платный курс, и попадаем в раздел lesson1, смотрим видео — сдаем домашнее задание посредством чата. Такой чат будет подразумеваться на каждом видео. У нас задания сдавались тестами, а не чатами. Нормального чата под MODx нет. Это надо сторонний юзать наверно. Вопросы / Как закрыть доступ к определенным страницам и элементам на сайте? 8 0
22 декабря 2018, 16:52 Я предпочитаю не обновлять кроном цену товаров, а пересчитываю ее в плагине на событие msOnGetProductPrice. В price цена в долларах, а показываются пересчитанные в рублях. Курсы получаю с помощью CurrencyRate. Мне кажется что так надежнее :). Крон не повиснет при пересчете и если много товаров, то нагрузка на сервер меньше (цена персчитывается каждый раз при показе товара, но не надо пересчитывать ее для всех товатов. Только те что посмотрели). Не знаю как способ лучше. Кому какой способ больше нравиться? Пересчитывать при показе товара или пересчитывать кроном ночью все товары? И почему? Пошаговые инструкции / Динамическое обновление цены товара miniShop2 по курсу доллара, через Cron. 27 0
17 декабря 2018, 19:04 Нет не планируется. В принципе, скрипт написать что рассылку делает не сложно. Примерно так: if (!$Orgs = $modx->getService('organizations', 'Organizations',$modx->getOption('organizations_core_path', null, $modx->getOption('core_path') . 'components/organizations/') . 'model/organizations/', $scriptProperties)) { return 'Could not load Organizations class!'; } $orgs = $modx->getCollection('Orgs'); foreach($orgs as $org){ ...//здесь пишете отправка письма на $org->email, если это поле заполняется. //если не заполняется, то можно отправить на письма на пользователей организации $c = $modx->newQuery('OrgsUsersLink'); $c->leftJoin('modUserProfile', 'modUserProfile', "modUserProfile.internalKey = OrgsUsersLink.user_id"); $c->select(array( 'modUserProfile.email' )); $c->where(array( 'OrgsUsersLink.org_id' => $org->id, 'OrgsUsersLink.user_group_id' => 1, //администраторам 'OrgsUsersLink.active' => 1, )); $users = $modx->getCollection('OrgsUsersLink', $c); foreach($users as $user){ ...//отправка письма на $user->email } }Отправлять письма как здесь https://ilyaut.ru/reposts/sending-mail-through-modmail/, либо через EmailQueue если на сервере ограничение по числу писем за раз. Новые дополнения и их версии / [Organizations] - Добавлена поддержка регистрации физлиц 11 0
15 декабря 2018, 22:16 Нет разграничить нельзя. Новые дополнения и их версии / UserTest -компонент для тестирования пользователей 45 0
15 декабря 2018, 13:48 Для совместимости с обновлениями компонента могу добавить событие, чтоб вы варианты в отдельном плагине писали. Но надо примерно представлять какое событие вам нужно и какие параметры в него передавать. Новые дополнения и их версии / UserTest -компонент для тестирования пользователей 45 0
15 декабря 2018, 13:22 Свои формулы не предусмотрены. Расчет результатов тестов очень простой. Если сумма баллов попадает в заданный диапазон результата теста, то он и присваивается. http://z9233215.bget.ru/manager/?a=element/snippet/update&id=44 строка 852: $Variants = $modx->getIterator('UserTestVariants', array('test_id'=>$id, 'category_id'=> 0)); foreach($Variants as $var){ if($test_point >= $var->start_point and $test_point <= $var->end_point){ $var_id = $var->id; $var_result = $var->result; $var_passed = $var->passed; break; } }Исходный код открыт. Посмотрите может вы сможите модифицировать его под свои варианты рассчетов. Новые дополнения и их версии / UserTest -компонент для тестирования пользователей 45 0
15 декабря 2018, 12:53 Добрый день! Да только из админки. Сделать из фронта можно, но сложновато :( Новые дополнения и их версии / UserTest -компонент для тестирования пользователей 45 0
12 декабря 2018, 12:47 Сам задал вопрос сам и отвечаю :). Код php можно распарсить в токены. $tokens = token_get_all($code);Потом пройтись по получившемуся массиву и если T_STRING содержит название разрешенной функции и токен не запрещен, например T_EVAL, записывать функцию в базу иначе возвращать ошибку. Примерно так :). Благо нужных функций не так много. Вопросы / Пользовательский код в безопасный php? 1 +1
12 декабря 2018, 05:31 Можно еще часть отправлять через 12 часов а часть сразу :). Это допустим те, что через 12 часов отправляете в очередь с sender_package = «12hours». А в кроне при отправке фильтровать по sender_package. Новые дополнения и их версии / [EmailQueue] - Очередь писем 69 0
12 декабря 2018, 04:47 Ну можно либо крон раз в 12 часов поставить либо в кроне send.php строка 11 $q->where(array('status'=>1, 'date:<'=> date('Y-m-d', strtotime("-12 hours"))));Примерно так. Не тестировал. Новые дополнения и их версии / [EmailQueue] - Очередь писем 69 0 1
10 декабря 2018, 19:45 Сделал EmailQueueAutoResponder и остальное что хотел :). Смотрите изменения в теме и качайте новую версию с модсторе. Планировал 2 часа а потратил весь вечер :(. Новые дополнения и их версии / [EmailQueue] - Очередь писем 69 +1
10 декабря 2018, 15:52 Конечно нет. К тому же я его не сам писал, а взял из FormIt github.com/Sterc/FormIt/blob/develop/core/components/formit/src/FormIt/Hook/Email.php#L61 Просто убрал все лишнее что сейчас не нужно было мне и адаптировал под компонент. Ну я так и пишу. Подсмотреть убрать лишнее и добавить нужное :). С поддержкой всех параметров сложно. Не думаю что я буду это делать :(. У меня в этом потребности нет. И все прописать достаточно сложно. Сегодня я сделаю топбар и статус отправляется и выложу на гитхаб. Если вы захотите, можете сделать форк доработать компонент прислать мне пулл-реквест. насчет FormItAutoResponder подумаю как прикрутить. Новые дополнения и их версии / [EmailQueue] - Очередь писем 69 0
10 декабря 2018, 15:13 Не возражаете если я ваш хук включу в состав компонента? Новые дополнения и их версии / [EmailQueue] - Очередь писем 69 0
10 декабря 2018, 14:55 Мда… не продумал. Думаю тогда сделать статус Отправляется и в кроне перед циклом отправки добавить цикл, выставляющий этот статус. Это просто можно сегодня сделать. А вот я обещал еще кнопки сделать удобнее. Это сложнее надеюсь за 2 часа справлюсь и тоже сегодня сделаю. Новые дополнения и их версии / [EmailQueue] - Очередь писем 69 +1
gtsAPI 1.1.7 — таблицы на TanStack, инлайн-редактирование как в Excel Prime Vue datatable тупит на 200+ строк и в виртуальном скролинге высота полей фиксирована. Вот нам в итоге и не подошло. Директор сказал расчет должен сразу показываться без пагин...
mxApi — быстрый внешний API для MODX Revolution • зафиксировать публичный контракт EndpointInterface / метаданных по semver, чтобы наш провайдер не ломался на обновлениях;Фактически это уже так, beta стоит просто на всякий случа...
YaSmartCaptcha - защитите ваши формы от спама умной капчей от Яндекс Вообще не понял о чем речь) В системной настройке service_js сейчас указана ссылка smartcaptcha.cloud.yandex.ru/captcha.js Я предложил очистить эту настройку, тогда компонент н...
mxBackup — обезличенные копии MODX в пару кликов Ещё нет, я там разом почти полтора десятка пакетов выложил модератор, вероятно, а шоке.
Gallery3x 3.4.0 - вставка галерей прямо из визуального редактора (CKEditor и TinyMCE RTE) Здравствуйте. Есть консольный скрипт Вот почитайте: docs.ivan345.com/books/gallery3x/page/import-ms2galleryphp
[mSync] Новая версия синхронизации с 1С Всем привет. В какой то момент начали сыпаться ошибки: Error 23000 executing statement: INSERT INTO `modx_msync_products` (`product_id`, `uuid_1c`) VALUES ...
Похоже наши гуру и сами не знают, что там такого нужно поменять, чтоб не ругалось :)
от этого
Я в том как генерируется и устанавливается транспортный пакет внутри кода MODX практически ничего не знаю. Просто тупо брал modExtra переименовывал и писал что нужно в нем :). А теперь прямо засада.
Делал компонент — регистр курсов. Табличка ид курса, ид юзера, зарегистрирован, куплен, пройден. На странице курса сниппет который проверяет платный ли курс, куплен ли курс этим юзером и выдает плейсхолдеры в шаблон на феноме где на плейсхолдеры ставится {if $placeholder}. То есть в зависимости от плейсхолдеров активируются разные части шаблона. (а можно, проще, в сниппете возвращать просто разные чанки на куплен и не куплен. У нас было просто много мест где менять поведение надо.)
У нас задания сдавались тестами, а не чатами.
Нормального чата под MODx нет. Это надо сторонний юзать наверно.
Не знаю как способ лучше. Кому какой способ больше нравиться? Пересчитывать при показе товара или пересчитывать кроном ночью все товары? И почему?
Отправлять письма как здесь https://ilyaut.ru/reposts/sending-mail-through-modmail/, либо через EmailQueue если на сервере ограничение по числу писем за раз.
Исходный код открыт. Посмотрите может вы сможите модифицировать его под свои варианты рассчетов.
Код php можно распарсить в токены.
Потом пройтись по получившемуся массиву и если T_STRING содержит название разрешенной функции и токен не запрещен, например T_EVAL, записывать функцию в базу иначе возвращать ошибку. Примерно так :). Благо нужных функций не так много.
Примерно так. Не тестировал.
С поддержкой всех параметров сложно. Не думаю что я буду это делать :(. У меня в этом потребности нет. И все прописать достаточно сложно. Сегодня я сделаю топбар и статус отправляется и выложу на гитхаб. Если вы захотите, можете сделать форк доработать компонент прислать мне пулл-реквест.
насчет FormItAutoResponder подумаю как прикрутить.