Для реализации истории просмотренных страниц пользователя на CMF MODX, создадим простой сниппет, который будет это делать.
Для начала нам потребуется создать новый сниппет в MODX и назвать его ViewedPages:
$id = $modx->resource->id;
$template = $modx->resource->template;if (isset($_SESSION['viewed'])) {
if (!in_array($id, $_SESSION['viewed'])) {
if (count($_SESSION['viewed']) > 10) {
$_SESSION['viewed'] = array();
}if ($template ==2) {
$_SESSION['viewed'][] = $id;
}}
if (!isset($_SESSION['viewed'])) {
return;
}$ids = array_reverse($_SESSION['viewed']);
if (!empty($ids)) {
$res = implode(",", $ids);
$snippet = 'pdoResources';
$config = array(
'resources' => $res,
'parents' => $parents,
'limit' => $limit,
'tpl' => $tpl
);return $modx->runSnippet($snippet, $config);
}
} else {
$_SESSION['viewed'] = array();
if ($template ==2) {
$_SESSION['viewed'][] = $id;
}}
Вызвать данный сниппет на любой странице или в шаблоне(Вызывать его нужно без кеширования):
[[!ViewedPages? &limit=`10` &show=`0` &snippet=`pdoResources` &parents=`0` &tpl=`tpl.LastView.Item`]]