dimayakovlev.ru


Функция проверки существования страницы для GetSimple CMS

В GetSimple CMS отсутствует стандартная функция для проверки существования страницы, однако необходимость такой проверки периодически возникает, например, при разработке тем оформления. Раз функция не существует, то следует написать её самостоятельно.

Проверку существования страницы в GetSimple CMS с целью реализации логики в шаблоне оформления, я предлагаю выполнять, обращаясь к кэшу страниц в глобальной переменной $pagesArray. Для этого можно использовать следующую функцию.

<?php
/**
 * Check if page exists
 * 
 * @global array $pagesArray
 * @param string $slug Slug of the page to check
 * @return bool
 */
function is_page_exists($slug) {
    global $pagesArray;
    return isset($pagesArray[$slug]);
}
?>

Для использования функции в шаблонах темы оформления, её следует поместить в файле functions.php текущей темы оформления.

В качестве примера использования функции предлагаю рассмотреть следующий фрагмент кода, в результате выполнения которого, если страница с адресом, заданным в переменной $page_slug существует, будет выведена ссылка на неё.

<?php
$page_slug = 'ghostly-page';
if (is_page_exists($page_slug)) {
    $page_url = find_url($page_slug, returnPageField($page_slug, 'parent'));
    $page_title = returnPageField($page_slug, 'title');
    echo '<a href="'.$page_url.'">'.$page_title.'</a>';
}
?>

Альтернативой проверки существования страницы, используя кэш, является проверка существования в файловой системе XML документа, соответствующего странице. Однако этот метод следует применять в случаях, когда требуется выполнить действия, направленные на непосредственное изменение файлов страниц, например, при написании собственных плагинов, управляющих созданием и изменением содержания страниц веб-сайта.