Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Редактирование шаблона "Счёта"

Автор atachРаздел Шаблоны XSLT

Ответов: 2
Просмотров: 1555
Последний ответ 03 Ноябрь 2012, 13:41:23
от admin
Условие вывода/не вывода шаблона Комментариев в Блоге

Автор BabajkaРаздел Шаблоны XSLT

Ответов: 2
Просмотров: 1912
Последний ответ 22 Ноябрь 2012, 14:32:15
от admin
Вызов макроса из кастомного макроса.

Автор niakrissРаздел Макросы UMI.CMS

Ответов: 4
Просмотров: 2234
Последний ответ 21 Октябрь 2013, 10:47:10
от niakriss
%news view()% непонятно почему выводится из шаблона default

Автор ArmorРаздел Макросы UMI.CMS

Ответов: 6
Просмотров: 3127
Последний ответ 10 Февраль 2012, 17:09:41
от Armor
Настройка шаблона письма уведомления о заказе (emarket) XSLT

Автор CanektРаздел Настройка системы и модулей

Ответов: 37
Просмотров: 1881
Последний ответ 12 Сентябрь 2016, 07:57:36
от admin

0 Пользователей и 1 Гость просматривают эту тему.

*

atach

  • ***
  • 165
  • +6/-0
    • Просмотр профиля
Подскажите такой момент. Вот есть у меня катомный метод который обрабатывает и выводит данные. Он выводит их по шаблону, который установлен по УМОЛЧАНИЮ в системе. Но в системе имеются и другие шаблоны. Как заставить отрисовать страницу по указанному мною ID шаблона.

В поддержки пока подсказать не могут, дали ссылку на файл, но что то я не могу понять:
Цитировать
Возможно, Вам подойдет метод setMethodTemplateId()
Пример использования Вы можете найти в файле /classes/components/def_module.php на 195 строке.

у меня в итоге после подготовки данных в конце метода идет вызов и отрисовка страницы вот так:
return def_module::parseTemplate($blockTemplate, $result, $revId);

Как правильно указать принудительно нужный мне ID шаблона я не понимаю.

*

Vladimir

  • ****
  • 271
  • +46/-0
    • Просмотр профиля
Тот метод, похоже, предназначен для принудительной смены шаблона страницы в целом. Поэтому логично его вызывать в самом начале вашего кастома.

Мне только не понятно, зачем вы упомянули def_module::parseTemplate, он же к странице не имеет отношения, он конкретные блоки на странице отрисовывает. Может, я не правильно понял задачу?

За вопрос спасибо, интересная возможность нашлась!

*

atach

  • ***
  • 165
  • +6/-0
    • Просмотр профиля
Так задача и стоит что бы принудительно сменить для всей страницы шаблон дизайна указав это в макросе.

*

Vladimir

  • ****
  • 271
  • +46/-0
    • Просмотр профиля
Я бегло пробежался по системе. Метод это нигде не используется. Есть одна зацепка. В файле /classes/system/subsystems/models/hierarchy/templatesCollection.php:

/**
* Получить Id шаблона, соответствующего иерархическому типу (модуль/метод)
* @param String $module модуль
* @param String $method метод
* @return Integer Id шаблона, привязанного к иерархическому типу
* @return Boolean false если шаблона не существует
*/
public function getHierarchyTypeTemplate($module, $method) {
if (class_exists($module) && method_exists($module, "setupTemplate")) {
$id = call_user_func(array($module, "setupTemplate"), $method);
} else {
$config = mainConfiguration::getInstance();
$id = $config->get("templates", "{$module}.{$method}");
}

return $this->isExists($id) ? $id : false;
}

Насколько я помню, в идеологии ЮМИ сочетание модуль\метод - это базовые иерархические методы, например, news/lastlist. Т.о., вам нужно узнать, к какому базовому иерархическому методу относится ваша страница (кажется, в настройках модуля Типы данных есть список всех зарегистрированных методов) и его передавать как имя метода. ИД шаблона вы знаете как посмотреть. Для модуля content, скорее всего, это будет пустая строка или имя модуля. Если это вам не поможет, ничего другого в голову не приходит.

*

e.ioffe

  • ****
  • 369
  • +81/-2
  • Профессиональная разработка на UMI.CMS.
    • Просмотр профиля
    • Fullspace - Лучший хостинг для UMI.CMS
Если используете xslt-шаблонизатор, то можете вызвать макрос вида udata://модуль/метод/?transform=путь к шаблону.xsl&template_id=id шаблона

В принципе, можете к любой странице добавить ?template_id=id шаблона, и получить ее отображение в другом шаблоне.
Ускорение сайта на UMI.CMS - http://speed.umispec.ru/

*

psw2020

  • *
  • 11
  • +3/-0
    • Просмотр профиля
Если используете xslt-шаблонизатор, то можете вызвать макрос вида udata://модуль/метод/?transform=путь к шаблону.xsl&template_id=id шаблона

В принципе, можете к любой странице добавить ?template_id=id шаблона, и получить ее отображение в другом шаблоне.

также если используется TPL шаблонизатор в новом формате хранения шаблонов вызов будет такой /udata/модуль/метод/?transform=папка_с_шаблоном&template_id=id_любого_шаблона_из_этой_папки.
Пример: /udata/content/getReviewList/?transform=/templates/RR&template_id=68