pdoSitemap - как автоматически добавить контексты?
Вопрос по супер модулю.
Если много языков — соответственно контекстов, то как сделать чтоб они все добавлялись без ручного ввода?
[[!pdoSitemap?
&tpl=`@INLINE [[+url]][[+date]]`
&where=`{«hidemenu»:«0»}`
&context=`web,it,en,pl,md`
]]
Если много языков — соответственно контекстов, то как сделать чтоб они все добавлялись без ручного ввода?
[[!pdoSitemap?
&tpl=`@INLINE [[+url]][[+date]]`
&where=`{«hidemenu»:«0»}`
&context=`web,it,en,pl,md`
]]
Комментарии: 4
Напиши сниппет, который вернёт список контекстов.
Как писал выше Артур!
Создай сниппет к примеру contextKeys:
Создай сниппет к примеру contextKeys:
<?php
/* @var modX $modx */
/* @var modContext $ctxs */
$ctxs_obj = $modx->getCollection('modContext', array('key:!=' => "mgr"));
$ctxs = [];
if ($ctxs_obj) {
foreach ($ctxs_obj as $ctx) {
$ctxs[] = $ctx->key;
}
}
return implode(",", $ctxs);
Далее впихивай его в pdoSitemap[[!pdoSitemap?
&tpl=`@INLINE [[+url]][[+date]]`
&where=`{"hidemenu":0}`
&context=`[[contextKeys]]`
]]
Ooo — Спасибо от души )))
Можно это запустить всё через pdoPage и просто указать параметр context, и указать чтобы контекст брался через обращение к текущей страницы, которая сделала запрос, так же через pdoPage можно сделать так чтобы если больше 1к записей, будет 2я страница но с уже другими записями.
<?php
$output = $modx->runSnippet('pdoPage',array(
'element' => 'pdoSitemap',
'parents' => 0,
'context' => $modx->context->key,
'depth' => 10,
'limit' => 100,
'showHidden' => 0
));
return $output;
Ниже сам код, выше пример который работает у меня.'context' => $modx->context->key,
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.