Изменить шаблон для отдельной страницы (groups)

InstantCMS 2.X
#1 3 ноября 2020 в 04:11
Здравствуйте! CMS использует main.tpl.php чтобы отобразить страницы и меня это устраивает. Но как мне изменить макет только для groups и не трогать main.tpl.php ?

Я пытался сделать groups.tpl.php — не вышло.
#2 3 ноября 2020 в 11:58

Здравствуйте! CMS использует main.tpl.php чтобы отобразить страницы и меня это устраивает. Но как мне изменить макет только для groups и не трогать main.tpl.php ?
Я пытался сделать groups.tpl.php — не вышло.

@ms3nao
Самое простое: проверяйте url и подключайте нужный шаблон в том же main.tpl.php с условием.
Можно и простенькую функцию под это дело соорудить, если нужно много разных макетов.
#3 3 ноября 2020 в 15:59


Здравствуйте! CMS использует main.tpl.php чтобы отобразить страницы и меня это устраивает. Но как мне изменить макет только для groups и не трогать main.tpl.php ?
Я пытался сделать groups.tpl.php — не вышло.

@ms3nao
Самое простое: проверяйте url и подключайте нужный шаблон в том же main.tpl.php с условием.
Можно и простенькую функцию под это дело соорудить, если нужно много разных макетов.

Олег Васильевич я

Могу вас попросить подсказать сам код, как это сделать?

Я так понимаю, это получится костыль, а методом движка нет возможности это сделать?
#4 3 ноября 2020 в 16:39

Могу вас попросить подсказать сам код, как это сделать?

@ms3nao
Можете, но описать задание надо бы подробнее (к примеру, нужен ли отдельный макет только для страницы списка групп или ещё и для срраницы группы, вкладок последней и т.д.)

Я так понимаю, это получится костыль

@ms3nao
Может и "костыль", я не знаю как это называется

а методом движка нет возможности это сделать?

@ms3nao
Насколько известно мне, в коробке текущей версии такой возможности нет.
Предложение: пишите ТЗ и организуйте складчину на реализацию выбора макета для страниц виджетов. Попросим г-на Fuze сделать
#5 3 ноября 2020 в 17:22

Насколько известно мне, в коробке текущей версии такой возможности нет.

Олег Васильевич я
Есть метод.
Берем, делаем миникомпонент с одним хуком. Имя хука будет такое:
  1. $hook_name = 'process_render_'.$this->controller->name.'_'.basename(str_replace('-', '_', $tpl_file), '.tpl.php');
В этом хуке указываем, что файл шаблона будет не template.tpl.php, а template_new.tpl.php к примеру.
Делаем такой файл шаблона и в нём всё, что угодно.

Пример: подмена файла в хуке
  1. /* Изменяем путь к шаблону редактирования */
  2. $tpl_file = "templates/default/controllers/addrating/profile_edit.tpl.php";
Здесь: /users/files/download7654.html
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.