Aleksandr Huz · 30 мая 2021, 22:45 {insert ('file:chunks/'~$item.section~'.tpl')} Вопросы / Как в MODX REVO на fenom в foreach подключить чанк из файла? 7 +1 1
Андрей · 30 мая 2021, 15:23 {set $rows = 1 | resource : 'test' | fromJSON} {foreach $rows as $idx => $row} {$row.text} {set $items = $row.text2 | fromJSON} {foreach $items as $idx => $item} {$item.text} {/foreach} {/foreach} Вопросы / MODX REVO fenom migx в migx как вывести? 2 +1 1
Наумов Алексей · 09 апреля 2021, 09:47 {$_modx->resource.parent | resource : 'parent'} Вопросы / Как на FENOM получить не parent а дедушку? 2 +4 1
Павел Романов · 28 марта 2021, 19:27 На третьей строке поменяйте $modx->resource->get('id') на $resource->get(''id''): if(!$tvo = $modx->getObject('modTemplateVarResource', array('tmplvarid' => $tvid, 'contentid' => $resource->get('id')))) return; Вопросы / Как обновить TV поле MIGX после сохранения документа? 4 +1 1
Павел Романов · 27 марта 2021, 19:42 Попробуйте так (просто плагин на OnDocFormSave, без сниппета и TV-шку доставайте через modTemplateVarResource): <?php $tvid = 5; // ID TV-шки if(!$tvo = $modx->getObject('modTemplateVarResource', array('tmplvarid' => $tvid, 'contentid' => $modx->resource->get('id')))) return; $tv = $tvo->get('value'); $items = $modx->fromJSON($tv); $output = array(); foreach($items as $item) { $item['date'] = 'newdate'; $output[] = $item; } $tvo->set('value' , $modx->toJSON($output)); $tvo->save(); // очистка кеша ресурса $cacheKey = $resource->getCacheKey(); $modx->cacheManager->refresh(array('resource' => array('key' => $cacheKey))); Вопросы / Как обновить TV поле MIGX после сохранения документа? 4 +1 1
Наумов Алексей · 16 февраля 2021, 14:46 1. Ставите компонент Console 2. Пишите там код: $q = $modx->newQuery('modResource'); // условие по необходимости //$q->where(array('parent' => 1)); $resources = $modx->getIterator('modResource', $q); foreach($resources as $resource) { $content = $resource->get('content'); // делаем че хотим $title = 'Заголовок'; // ... $resource->setTVValue('title', $title); $resource->save(); }3. Запускаете… ждете (возможно долго). Вопросы / MODX REVO как через API обновить tv поле у всех ресурсов одним запросом? 2 +2 2
Alexey · 25 января 2021, 09:39 В общем, как-то так: <?php $parent_id = 2; // выносим id родителя в переменную $tv_id = 6; // тут указать id своего tv-поля // проверяем наличие ресурсов в родителе $c = $modx->newQuery('modResource'); $c->where(['parent' => $parent_id, 'published' => 1, 'deleted' => 0, 'searchable' => 1]); $count = $modx->getCount('modResource', $c); if($count == 0) return; // вытаскиваем массив значений tv-полей ресурсов указанного родителя $q = $modx->newQuery('modResource'); $q->leftJoin('modTemplateVarResource', 'TVS', 'modResource.id = TVS.contentid AND TVS.tmplvarid = '.$tv_id); $q->select('TVS.value'); $q->where(['parent' => $parent_id]); if ($q->prepare() && $q->stmt->execute()) { $tvs = $q->stmt->fetchAll(PDO::FETCH_COLUMN); } //убираем пустые элементы массива tv-полей $tvs = array_diff($tvs, array('')); foreach($usersMedia['data'] as $media){ // проверка наличия $media['id'] в массиве $tvs if (in_array($media['id'], $tvs)) { //добавляю ресурс ....... } } //очистку кеша выносим из цикла $modx->cacheManager->clearCache(); Не проверял! По идее, должно сработать. Вопросы / MODX REVO API как при добавлении ресурсов из массива пропустить дубликаты? 39 +1 1
Артур Шевченко · 25 января 2021, 02:12 $resource=$modx->getObject ('modResource', array('pagetitle'=>$media['title'], 'parent' => 2)); Индексируется страница, а на странице можно вывести например longtitle. Вопросы / MODX REVO API как при добавлении ресурсов из массива пропустить дубликаты? 39 +1 1
Артур Шевченко · 25 января 2021, 01:30 Да не нужно вам это TV, выше уже написал почему)) Вот весь код который нужен foreach($usersMedia['data'] as $media){ $resource=$modx->getObject ('modResource', array('pagetitle'=>$media['title'])); if(!$resource){ //Создаём новый ресурс $rss = $modx->newObject('modResource'); $rss->set('template', 2); // Назначаем ему нужный шаблон $rss->set('isfolder', 1); // Указываем, что это не контейнер $rss->set('published', 1); // Неопубликован $rss->set('createdon', time()); // Время создания $rss->set('pagetitle', $media['title']); // Заголовок $rss->set('content', $media['caption']); // Контент $rss->set('alias', strtolower($media['username'].'-'.$media['id'])); // Псевдоним $rss->set('parent', 2); // Родительский ресурс $rss->save(); //// } } Вопросы / MODX REVO API как при добавлении ресурсов из массива пропустить дубликаты? 39 +1 1
Артур Шевченко · 25 января 2021, 00:02 Если у вас будет повторяться pagetitle, то modx будет ругаться, оно вам надо? Думаю, нет. А проверить элементарно. Если я правильно понял, $usersMedia['data'] содержит массив полей, из которых вы создаёте ресурс, значит надо в цикле делать прямой запрос в БД через newQuery, где в условии ставить pagetitle=$usersMedia['data'][поле которое помещается в заголовок ресурса]. Если запрос вернёт хотя бы одно значение значит, такой ресурс уже есть и надо его либо обновить, либо пропустить и продолжить выполнение цикла. Как сделать запрос в БД подскажет Гугл ключевые слова modx xpdo sql. Ну а дальше уже всё как сейчас. Либо можно поступить проще, но если ресурсов много, то это может быть неоптимальным решением с точки зрения потребления ресурсов, просто попытаться получить объект $resource=$modx->getObject ('modResource', array('pagetitle'=>$usersMedia['data']['fieldname'])); if(!$resource){ //Создаём новый ресурс } <code> Вопросы / MODX REVO API как при добавлении ресурсов из массива пропустить дубликаты? 39 +1 1
Где можно править тексты и заголовки писем? «Управление словарями» находится в панели администратора по пути: меню Система (иконка в виде шестеренки) -> Управление словарями.
mxBoard: канбан-доска для команд, людей и ИИ-агентов в MODX 3 Токены для ИИ-агентов, чтобы они могли работать с доской. Подробнее написал тут Баг проверю и постараюсь исправить.
Плагин EnvBadge: визуальный индикатор окружения в админке MODX3 Лучше автоматический ci/cd настроить и не править прод напрямую. Это самый безопасный вариант. Другое дело, что далеко не каждый владелец сайта и далеко не каждый сайт готовы в авт...
[videoGallery] Видео галерея YouTube, Vimeo Невозможно установить пакет с подписью: videogallery-1.4.0-beta Ошибка установки Error в /core/packages/videogallery-1.4.0-beta/modCategory/7fc931a7772edc9752c16e9c41eb5e52.reso...
Релиз miniShop2 ver. 4.4.1 & 4.4.2 Подскажите пожалуйста, может я что-то не знаю или упустил. Но есть ли решение по глюку с radio? Указываешь свое radio c одинаковым name и в результате при переключении получаешь вс...
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, сервис-ориентированная архит...
2. Пишите там код:
3. Запускаете… ждете (возможно долго).
Не проверял! По идее, должно сработать.
Индексируется страница, а на странице можно вывести например longtitle.
Вот весь код который нужен