Всего 125 675 комментариев

Сергій
03 августа 2021, 14:33
0
Еще раз большое спасибо.
Сергій
03 августа 2021, 14:04
0
Нужно чтобы в чанке выводились ID. В зависимости от ID и языка будут разные названия городов.
Павел Романов
03 августа 2021, 14:04
+1
<?php
$tvid = 1; // Замените на ID Вашей TV
$docid = $modx->getOption('docid', $scriptProperties, $modx->resource->get('id'));

if(!$tvo = $modx->getObject('modTemplateVarResource', array('tmplvarid' => $tvid,'contentid' =>$docid))) return;
if(!$tv = $modx->getObject('modTemplateVar', $tvid)) return; 

$tvv = str_replace("\n", '', $tv->get('elements'));

$vals = explode('||', $tvv);
$cities = array();
foreach($vals as $val){
	$v = explode('==', $val);
	$cities[ $v[1] ] = $v[0];
}    

$tvr = $tvo->get('value');
$arr = explode('||', $tvr);
$out = array();

foreach($arr as $d){
	$out[] = $modx->getChunk($tpl, array(
            'name' => $cities[$d],
            'id' => $d
        ));
}
return implode(', ', $out);

Вызов:
[[Snippet?  &tpl=`chunk_name`]]
или
[[Snippet?  &docid=`[[+id]]` &tpl=`chunk_name`]]

В чанке chunk_name доступны плейсхолдеры [[+name]] и [[+id]].
Сергій
03 августа 2021, 13:57
0
А как можно подвязать чанк ( tpl) и вызвать там еще и ID?
Чтобы можно было на разных страницах по разному выводить.
Сергій
03 августа 2021, 13:55
0
Вот, вот это то что я искал. Спасибо вам большое!!!
Павел Романов
03 августа 2021, 13:54
+1
Ну тогда этот сниппет используйте.
Сергій
03 августа 2021, 13:53
0
Мне нужно чтобы если 1 город то без, в конце. Если 2 и более города то между ними,
Не пойму как это сделать.
Павел Романов
03 августа 2021, 13:53
+1
Ну Вы бы сразу выложили эту картинку, Вас бы сразу и поняли))
Цифры тут произвольные или нет? Если они соответствуют ID ресурсов (страниц в дереве), то используйте сниппет, который я привел выше.

Если эти цифры произвольные и никак не связаны с ресурсами или иными сущностями, то пишете такой сниппет:
<?php
$tvid = 1; // Замените на ID Вашей TV
$docid = $modx->getOption('docid', $scriptProperties, $modx->resource->get('id'));

if(!$tvo = $modx->getObject('modTemplateVarResource', array('tmplvarid' => $tvid,'contentid' =>$docid))) return;
if(!$tv = $modx->getObject('modTemplateVar', $tvid)) return; 

$tvv = str_replace("\n", '', $tv->get('elements'));

$vals = explode('||', $tvv);
$cities = array();
foreach($vals as $val){
	$v = explode('==', $val);
	$cities[ $v[1] ] = $v[0];
}    


$tvr = $tvo->get('value');
$arr = explode('||', $tvr);
$out = array();

foreach($arr as $d){
	$out[] = $cities[$d];
}
return implode(', ', $out);
На странице ресурса можете использовать просто
[[SnippetName]]
В чанках нужно передавать ID
[[SnippetName, &docid=`[[+id]]`]]
Андрей
03 августа 2021, 13:51
0
Так это я строку привёл которую изменить надо.
Сергій
03 августа 2021, 13:46
0
Не то. Нужно чтобы было так:
Город 1, Город 2, Город 3
Андрей
03 августа 2021, 13:44
0
Переписать вывод на нужный:
echo '<p><a href="/'.$v.'">'.$n.'</a></p>';
Сергій
03 августа 2021, 13:37
0
Как кому поставить?
Список вывелся.
Андрей
03 августа 2021, 13:36
0
Ну вообще странно конечно, я проверял именно для множественного списка, всё работало.
Сергій
03 августа 2021, 13:26
0
Все одно не то.
Выводит только если я указал 1 город. Если 2 и более не выводит.
Сергій
03 августа 2021, 13:04
0
Вы кажись не поняли меня.

Нужно в чанке вывести список городов которые были выбраны.

<?php
$page = $modx->getObject('modResource', 108);
return $page->getTVValue('service-centers-city');

Выводит только цифры, а мне нужно названия через кому.
Роман
03 августа 2021, 11:05
0
Попробуй передавать не type, а какую-то другую переменную.
$modx->log(1, $type);