Как динамически изменить шаблон блока?

[16 июля 2019 г.]    Российская сборка Magento 2.52.2
Magento 2: модули и услуги
magereport.com: составление перечня необходимых для установки заплаток SUPEE
  • Тема закрыта
#1 Роман Богданів
  • Группа: Пользователь
  • Сообщений: 11
  • Регистрация: 20.04.2012

15.05.2012 19:55

Добрый день. У меня есть определенная проблема я надеюсь, что вы поможете в ее решении. У меня есть определенный модуль который имеет свой шаблон. Однако у меня возникает потребность, когда клиент выбирает определенное условие например $ this-> getTypeNavigation () == 0 должен загружаться не стандартный шаблон модуля который прописан в layout.xml а например совсем другой. Например: catalog / navigation / top.phtml. Просьба помогите, ведь изменить путь напрямую я не могу так как это убьет стандартные функции модуля. А изменить данный путь нужно таким образом, чтобы он менялся только когда условие выполняется. Заранее всем благодарен.

#2 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

15.05.2012 19:57

У блока имеется метод setTemplate, который устанавливает блоку шаблон отображения.

#3 Роман Богданів
  • Группа: Пользователь
  • Сообщений: 11
  • Регистрация: 20.04.2012

15.05.2012 20:05

Ну насколько я вижу в данном блоке нет такого метода.

#4 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

15.05.2012 20:07

Все блоки, отображаемые по шаблону, являются потомками блока Mage_Core_Block_Template, у которого данный метод есть.

#5 Роман Богданів
  • Группа: Пользователь
  • Сообщений: 11
  • Регистрация: 20.04.2012

15.05.2012 20:09

Но этот метод имеет класс Mage_Core_Block_Template который расширяет мой блок

Так вы правы простомий блок расширяет его направления а через другого потомка

#6 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

15.05.2012 20:10

Читайте учебник по PHP, как работает наследование и почему метод setTemplate доступен потомкам класса Mage_Core_Block_Template.
Тема закрыта, такие азы обсуждать здесь не место.

Поделиться темой: