Скрыть / показать модуль на определённых страницах?
Всем добрый.
В различных цмс (к примеру Джумла) есть возможность отображать модуль на определённых страницах, или привязать шаблон к определённым страницам.
Кто в курсе как на php реализовать подобный функционал.
К примеру на моём сайте есть блок отображающий статью, справа колонка с меню, но отображать меню мне нужно только на части страниц с материалом, на некоторых вместо меню отобразить форму заказа.
Как реализовать такой функционал?
Проверку можно организовать по URL или доп параметру у создаваемых страниц.
Всё зависит от того как вы формируете url-роутинг страниц и сам рендер страниц.
Alams Stoyne, И как её организовать?
урл формируется короткий. Сайт/материал
Гдето должен быть список страниц по которому модуль будет сверяться, отображаться ли на заданной странице.
Как?
Есть ли где пример
webseodesigner, какой может быть пример если это ваша разработка?
Я предлагаю в БД (где хранятся данные) ввести еще один столбец SHOW_BLOCK который будет заполняться (выбираться из списка) и вместе с материалом страницы а при выводе проверять что там написано и в зависимости от этого выводить что нужно (menu/form/news_list/recomendation ..... etc)
Как Вариант можно вести в БД таблицу URL и перед выводом страницы проверять что именно выводить, но зачем лишний запрос не понимаю
Alams Stoyne, Это уже ближе к делу.
В БД добавить столбец материалу куда добавлять ид модулей? что то типа: 1,5,7 тогда на странице модули с этими ид отобразить.
Или создать таблицу с перечнем модулей и им вписать ид страниц...
В интернете не найду примеров :(
TABLE_MATERIAL
ID | ALIAS | TITLE | TEXT | SHOW_BLOCK
1 | material1 | Материал 1 | Раба текст 1 | menu
2 | material2 | Материал 2 | Раба текст 2 | form
3 | material3 | Материал 3 | Раба текст 3 | form,menu
4 | material4 | Материал 4 | Раба текст 4 | menu,form
// $result_material - массив данных их БД
$modules = explode( ',' , $result_material['SHOW_BLOCK']);
foreach($modules as $module){
switch ($module) {
case 'menu':
echo 'view_menu_module';
break;
case 'form':
echo 'view_form_module';
break;
}
}
Таблица критериев отображения нужна для каждого из всех созданных/существующих блоков: какой блок и в каком случае отображается.
Здесь же - нужен столбец порядка заполнения области отображения блоками.
Для жумла - это обычно ветка ("узел") в "дереве" категорий.