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

Семён Кудрявцев
03 августа 2021, 15:08
0
Потестил компонент, не работает функционал «Завершить все сеансы» — может быть имело смысл не создавать свою таблицу, а расширить существующую и тогда бы это работало. В итоге получаем ошибку —
А так затея интересная, автору респект.
Max
Max
03 августа 2021, 15:06
0
Да, похоже это то что нужно, но с плагинами к ms2 я ни разу не работал, они не по событию как то запускаются, нужно найти где их регистрировать. Думал может есть проще методы))))) Спасибо за ссылку, возможно попытаюсь разобраться))
Иван
03 августа 2021, 14:56
0
Я писал про дополнение «AjaxForm» (может ещё какое-то есть), которое очень популярно. Этот сниппет для каждого посетителя сайта (в т.ч. для ботов) создает записи в сессии, где хранит параметры сниппетов. Представляете какой это объём информации для сайта с хорошей посещаемостью? Сталкивался с сайтами, где на одну страницу минимум 5 раз используется AjaxForm.
Во времена повсеместного бума интернет-приватности и частичного отказа от cookies я вот хочу перенести в сессии некоторые настройки персонализации для незарегистрированных посетителей сайта (например открыто или закрыто боковое меню) и вообще сводить к минимуму использование cookies там где возможно.
К Вашему сведению, сессия работает через куку, где хранится её ID. Так что переводить на сессию в Вашем случае смысла нет. Лучше используйте в JS LocalStorage или SessionStorage. Технологии нужно использовать по их назначению, тогда и проблем не будет.
Сергій
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
Ну вообще странно конечно, я проверял именно для множественного списка, всё работало.