Просмотренные ресурсы на MODX

Для реализации истории просмотренных страниц пользователя на 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;
    }
}

Вызвать данный сниппет на любой странице или в шаблоне(Вызывать его нужно без кеширования):