Модули со своими шаблонами

+33
2.43K
Здравствуйте!
Часто возникает необходимость клонированные модули вывести так чтобы они существенно отличались друг от друга.
Встроенных возможностей (css префикс, обёртка — module.tpl) не всегда достаточно (мне, по крайней мере).
Предлагаемый хак поможет решить эту проблему.
Раскажу как сделать на примере дефолтного модуля "Новые статьи":
1.admin\modules\mod_latest\backend.xml — вставить перед </params>
  1. <param type="string" name="tpl" title="Использовать шаблон" default="mod_latest.tpl" />
2.modules\mod_latest\module.php после
  1. if(!$content_list) { return false; }
вставить:
  1. $template = ($cfg['tpl'] ? $cfg['tpl'] : 'mod_latest.tpl');
строку:
  1. $smarty = $inCore->initSmarty('modules', 'mod_latest.tpl');
заменить на:
  1. $smarty = $inCore->initSmarty('modules', $template);
строку:
  1. $smarty->display('mod_latest.tpl');
заменить на:
  1. $smarty->display($template);
Вот и все правки.
09.05.2013: Стоп, не все!!! Спасибо Reborn, подсказал stukо модулях с пагинацией — возвращается дефолтный шаблон. У последних новостей она есть. Правки те же что в п2, правим файл modules\mod_latest\ajax\latest.php

Далее зайдите в настройки модуля, нажмите сохранить. После этого можете клонировать модуль столько сколько нужно и каждой копии назначать свой шаблон.
Да: коды актуальны для 1.10.1
Демо: (там, правда, по этому принципу изменён другой модуль — популярные статьи) здесь (слайдер с большой картинкой). Его копия — на странице "статьи"
Удачи!
+1
Александр Александр 11 лет назад #
то есть можно будет сделать 2 шаблона и каждый модуль на разных шаблонах будет в том или ином месте, но можно сделать и в разных, чтоб было красиво, а то не на всех шаблонах одинаковые позиции(плюс не всем нравится один шаблон для всех).
0
Reborn Reborn 11 лет назад #
Да, делал такое на 1.9 год назад http://instantcms.ru/users/files/download2134.html
+ за хак, но там еще нужно править /ajax/mod_*.php , иначе при пагинации шаблон будет старый . А так все мб верно...
Олег Васильевич я Олег Васильевич я 11 лет назад #
Комментарий удален
Олег Васильевич я Олег Васильевич я 11 лет назад #
Комментарий удален
Олег Васильевич я Олег Васильевич я 11 лет назад #
Комментарий удален
0
Zau4man Zau4man 11 лет назад #
Спасибо за хак.
Пригодится.
Сам когда-то делал разное оформление для разделов статей, ибо одно на все - ну непорядок :)
0
Atid Atid 11 лет назад #
Шаблон модуля — Файлы из папки modules/ вашего шаблона, названия которых начинаются на module
простите а чем данная настройка модуля отличается от того что вы предложили?
0
Atid Atid 11 лет назад #
В админке у каждого модуля ведь есть возможность выбора шаблона
Олег Васильевич я Олег Васильевич я 11 лет назад #
Комментарий удален
0
Роман Роман 11 лет назад #
Однозначно нужный хак делающий управление модулями гибче и проще
-1
Константин Г. Константин Г. 11 лет назад #
А как-то можно сделать чтобы модуль работал с файловой системой сайта,а не с базой? Это бы снизило нагрузку на базу. Если например в модуль ставить рекламу или счетчики посещаемости, цитаты и тп.?
Олег Васильевич я Олег Васильевич я 11 лет назад #
Комментарий удален

Еще от автора

Pioneer - скин для шаблона modern
Бред сумасшедшего на тему "Как бы выглядела InstantCMS 1-х сегодня".
Одна ёлка, немного снега и два Деда, играющихся в прятки
Ещё один вариант новогоднего украшения. Пока не замылено в сети (на эту минуту стоит только на 2-х сайтах)
Новогодние скидки
Всё платное за 50%
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.