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

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

С нами с 03 марта 2014; Место в рейтинге пользователей: #70
Павел Романов
27 марта 2021, 19:42
1
+1
Попробуйте так (просто плагин на 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)));
Павел Романов
25 марта 2021, 17:02
1
+2
Сделайте тип «Список (одиночный выбор)», а в возможных значениях пропишите запрос в базу или вызов сниппета для вывода списка ресурсов.
Например pdoResources:

@EVAL 
return '-==||'.$modx->runSnippet('pdoResources',array(
'parents'=>'15', // тут родитель
'limit'=>0,
'sortby'=>'{ "pagetitle":"ASC" }',
'tpl'=>'@INLINE [[+pagetitle]] ([[+id]])==[[+id]]',
'outputSeparator'=>'||',
'showHidden' => 1
));
Павел Романов
25 марта 2021, 15:30
+1
Сделайте TV с выводом этих ресурсов и включите у него автозавершение.
Для MIGX-поля укажите имя этой TV в input TV.
Павел Романов
01 марта 2021, 12:34
1
+1
Добавьте в словари (Шестеренка » Управление словарями) в пространство имен msearch2 для соответствующего языка параметр с таким названием и нужным значением.
Павел Романов
11 января 2021, 13:01
+1
Если речь об этом, то там просто все пишется в TV.
Соответственно, на странице [[*hitspage]], в чанке (если &tvPrefix не меняли) [[+tv.hitspage]]
Павел Романов
01 декабря 2020, 11:14
+1
Вот это не нужно: &class=`pdoResources`.
Класса pdoResources не существует, а если нужно работать с обычными ресурсами (modResource) то это он делает по умолчанию.
Так выводит?
[[!mFilter2?
&limit=`5`
&element=`pdoResources`
&parents=`81`
&filters=`tv|price:number`
&suggestions=`0`
]]
Павел Романов
01 декабря 2020, 01:17
0
Если вызываете не в ресурсе с ID = 81, то не выводит из-за &parent=`81`.
Должно быть &parents=`81`
Павел Романов
21 ноября 2020, 13:56
0
В чанке указывайте docid, limit и вынесите tpl в чанк:
[[getImageList?
    &docid=`[[+id]]`
    &tvname=`slider-card`
    &tpl=`image_tpl`
    &limit=`1`
]]

Чанк image_tpl, соответственно, такой:
<div class="item">
    <img src="[[+image]]" alt="product image">
</div>

В pdoPage это не нужно:
&includeTVs=`1`
Павел Романов
19 ноября 2020, 23:32
+1
А так?
'resources' => $_modx->resource.brandID,
Павел Романов
17 ноября 2020, 13:33
0
Проверьте, что выводит [[+tv.image-tur]] — там скорее всего в пути будет en/, es/ и т. д., которых нет в реальном путь к картинке.
Просто удаляйте их и все:
[+tv.image-tur:replace=`en/==`:replace=`es/==`:phpthumbon=`w=690&h=436&zc=1`]]
Павел Романов
08 ноября 2020, 17:58
+1
Т. Е. Надо и по каждому ресурсу пройти?
Нет, откройте само приложение в админке — там есть форма для пакетного поиска и замены.

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

Что касается ошибки, отключите системную настройку log_deprecated.
Павел Романов
22 октября 2020, 14:47
0
Ошибки в логе есть?
Данные администратора стоят, пока Вы залогинены в админке. Подобными конструкциями подставляются данные активного пользователя:
[[!+fi.fullname:default=`[[+modx.user.id:userinfo=`fullname`]]`:ne=`0`:show]]
Павел Романов
04 октября 2020, 10:04
+2
modDevTools позволяет не лезть в базу, а искать такие вещи из админки, если открыть само приложение:

Павел Романов
02 октября 2020, 18:25
+1
Можете поставить компонент modDevTools и найти вызов в чанках/шаблонах/ресурсах, либо просто отключите системную настройку log_snippet_not_found
Павел Романов
29 сентября 2020, 11:04
+1
Не совсем понятно для чего два плейсхолдера. Оба вызова берут ресурсы из одного источника (&parents=`10`), без каких-либо условий, а отличаются только лимитом и шаблонами.
В этой ситуации у обоих total будет одинаковый (просто кол-во ресурсов у 10-го родителя) и не нужно ничего складывать — выводите один плейсхолдер.
Павел Романов
16 сентября 2020, 11:14
1
+2
Создайте плагин на событие 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; }