Павел Романов

Павел Романов

Был в сети 30 июля 2026, 15:23
Заказы принимаю
Попробуйте так (просто плагин на 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)));
Сделайте тип «Список (одиночный выбор)», а в возможных значениях пропишите запрос в базу или вызов сниппета для вывода списка ресурсов.
Например pdoResources:

@EVAL 
return '-==||'.$modx->runSnippet('pdoResources',array(
'parents'=>'15', // тут родитель
'limit'=>0,
'sortby'=>'{ "pagetitle":"ASC" }',
'tpl'=>'@INLINE [[+pagetitle]] ([[+id]])==[[+id]]',
'outputSeparator'=>'||',
'showHidden' => 1
));
Т. Е. Надо и по каждому ресурсу пройти?
Нет, откройте само приложение в админке — там есть форма для пакетного поиска и замены.

А могут ли быть ещё какие-то проблемы при включении fenom, кробе фигурных скобок?
99,9% ошибок из-за них. В любом случае смотрите лог — там все будет.
Попробуйте добавить в вызов FormIt параметр emailFrom с любым адресом домена сайта (неважно существующим или нет), например:
&emailFrom=`info@домен_сайта.ru`

Что касается ошибки, отключите системную настройку log_deprecated.
Ошибки в логе есть?
Данные администратора стоят, пока Вы залогинены в админке. Подобными конструкциями подставляются данные активного пользователя:
[[!+fi.fullname:default=`[[+modx.user.id:userinfo=`fullname`]]`:ne=`0`:show]]
Не совсем понятно для чего два плейсхолдера. Оба вызова берут ресурсы из одного источника (&parents=`10`), без каких-либо условий, а отличаются только лимитом и шаблонами.
В этой ситуации у обоих total будет одинаковый (просто кол-во ресурсов у 10-го родителя) и не нужно ничего складывать — выводите один плейсхолдер.
Создайте плагин на событие OnManagerPageInit:
<?php
$modx->regClientCSS('..'.$modx->getOption('manager_url').'admin.css');

В директории manager создайте файл admin.css, где можете прописывать стили для админки.
Блок TV-шки, как правило находится в контейнере с id=«tv15-tr», где 15 — ID самой TV.
Соответственно, прописываете что-то типа:

#tv15-tr { padding:0 0 15px 0!important; margin:0 0 15px 0!important; border-bottom: 2px solid #ccc; }