MaxHub
Полезности по Maxsite CMS

Функция проверки типа страницы

Статьи / 13 июля 2014

В большинстве задач, решаемых с помощью maxSite CMS, вебмастеру не приходится сталкиваться с использованием возможности создания альтернативных типов страниц (т.е. ещё типы кроме blog и static). Однако, в более-менее серьёзных задачах (как, например, построение интернет-магазина) эта возможность активно используется.

После создания нового типа страниц кроме всего прочего может возникнуть задача настройки отображения определённых виджетов только на страницах этого нового типа. Настройка отображения в движке сделана очень удобно через панель управления виджетами в сайдабаре, но до сих пор в движке нет стандартной функции, которую можно удобно использовать при проверке. Далее вашему вниманию предлагается код такой функции.

if( !function_exists('is_page_type') )
{
    function is_page_type($type = '')
    {
        global $page, $mso_page_current;
        if( is_type('page') && isset($mso_page_current) && isset($mso_page_current['page_type_name']) && $type == $mso_page_current['page_type_name'] )
        {
            return true;
        }
        elseif( is_type('page') && isset($page) && isset($page['page_type_name']) && $type == $page['page_type_name'] )
        {
            return true;
        }
        else
        {
            return false;
        }
    }
}

Код простой. Суть работы функции сводится к проверке наличия и значения ключа page_type_name глобальной переменной $page, в которой хранится информация о текущей выводимой странице. Чтобы избежать возможного конфликта со стандартной функцией, которая может появится в движке в будущем, сделана специальная обёртка-проверка существования функции is_page_type. Чтобы использовать приведённую функцию вам достаточно целиком скопировать код в файл \custom\my_functions.php, который находится в подпапке custom вашего шаблона (актуально для D3). Для более старых версий шаблонов/движка можно добавить функцию в файл functions.php, в корне папки шаблона.

Пример использования функции можно увидеть на следующем скриншоте - текстовый виджет будет выводится на страницах каталога и на страницах типа soft.

Приветствуются любые идеи по доработке и использованию функции.

UPD: добавил определение по глобальной переменной $mso_page_current.

Комментариев: 2
  1. http://max-3000.com/page/uslovija-otobrazhenija-vidzheta

    Вроде же есть такая функция - is_type()

  2. Yuriy, функция is_type() проверяет тип страницы в шаблоне. А тип записи это другое. По сути, у is_type("page") могут быть ещё разные типы - blog, static и др.

Оставьте комментарий!

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

Вход / регистрация или войти без комментирования
  Имя и сайт используются только при регистрации

Авторизация MaxSiteAuth. Войти через loginza

(обязательно)