Как я могу удалить блок программно из макета [закрыто]


Я хочу удалить блок.

Итак

Как я могу программно удалить блок из макета?

Author: Prashant Valanda, 2014-12-17

1 answers

Вы можете попробовать этот код.

 $this->getLayout()->unsetBlock('your_block_name');

То, что вам нужно здесь убедиться,

  1. Блок с указанным именем должен существовать в макете!

  2. Это должно выполняться после $this->loadLayout() и до $this->renderLayout().

Почему ? Потому что $this->loadLayout(), который входит в контроллер, на самом деле загружает все блоки, связанные со страницей, которая будет отображаться во внешнем интерфейсе. Поэтому, если вы выполните операцию перед загрузкой макета, это не сработает, потому что не существует связанного макета. Аналогично, если вы выполняете операцию после $this->renderLayout(), то это становится слишком поздно! Потому что Magento уже отрисовал вывод в интерфейсе.

 6
Author: Rajeev K Tomy, 2014-12-22 06:47:13