Вопрос

У меня интересная ситуация, когда на странице CMS я определяю несколько новых блоков в update_layout_xml Раздел - на это необходимо упомянуть из самого контента CMS с использованием синтаксиса короткометражного кода {{block ...}}

Я знаю, что можно определить новые блоки, которые можно создать из CMS Textarea - но возможно ли ссылаться на существующий блок, чтобы определить точную позицию, которую необходимо вставить.

С использованием update_layout_xml позволяет позиционировать, используя before= или же after= - В то время как мне нужно больше гранулированного контроля для позиционирования элемента в content Блок сам. Если бы это было сделано через phtml Файл - это был бы просто случай использования getChildHtml - Но для CMS нет эквивалента.

Я знаю, что могу продлить Mage_Widget_Model_Template_Filter И добавить новую функцию - но есть ли уже основной метод для этого?

Это было полезно?

Решение

Я продлился Mage_Widget_Model_Template_Filter Чтобы добавить эту функцию, и это делает свое дело, но мне было интересно, было ли родной способ сделать это.

public function getchildDirective($construction)
{
    $layout = Mage::app()->getLayout();
    $blockParameters = $this->_getIncludeParameters($construction[2]);

    return $layout->getBlock('root')->getChildHtml($blockParameters['id']);

}

Другие советы

В зависимости от ваших методов действия, вы сможете добавить функциональность к методу _construct вашего блока (как определено вашим типом блока)

Но если ваши методы действия просто устанавливают какую -то переменную, как

<action method="setCategoryId"><category_id>17</category_id></action>

Затем вы можете добавить эти параметры в свой синтаксис смайликов, как это:

{{block type="cms/block" block_id="your_block_id" category_id="17"}}

Я знаю, что вы можете включить статические блоки в контент CMS, используя что -то подобное:

{{block type="cms/block" block_id="your_block_id"}}

Я не понимаю, почему этот метод не будет работать для пользовательских блоков. Вы пробовали по крайней мере?

Это не фиксирует это, когда шорткод находится в переменной из модуля.

Пример: у меня есть модуль слайдера, и когда я введу {{store direct_url="customer-service"}} В качестве атрибута ссылки он не заменяется.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top