В большинстве задач, решаемых с помощью 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.
- Пример семантической разметки Schema.org default-шаблона MaxSite CMS
- Как скрыть блок ссылок на домашней странице админ-панели?
- Мой третий отзыв о MaxSite CMS
- Как я использовал плагин «Прислать статью» для проведения конкурса
- Какой плагин плеера для Maxsite CMS лучше?
- Мои впечатления и мнение о плагине «Sticky»
- Все отзывы о moneycaptcha в одном месте
http://max-3000.com/page/uslovija-otobrazhenija-vidzheta
Вроде же есть такая функция - is_type()
Yuriy, функция is_type() проверяет тип страницы в шаблоне. А тип записи это другое. По сути, у is_type("page") могут быть ещё разные типы - blog, static и др.