Здравствуйте!
Написал маленький модуль под магенто фронтенд которого доступен по адресу www.magento.local/mymodule.
Есть ли возможность сделать так что б вывод(блок) моего модуля показывался на всех страницах сайта(под контентом либо над ним)?
Спасибо.
Как показать блок на всех страницах магазина?
09.06.2011 22:34
Поместите ваше макетное правило внутрь зацепки (handle) default - эта зацепка срабатывает на всех страницах.
В качестве ориентира смотрите, например, правило для верхнего меню - оно ровно так же отображается на всех страницах:
Чтобы ваш блок стоял выше других среди всех блоков конкретной позиции, используйте в вашем правиле атрибут before='-'.
Чтобы ваш блок стоял наже других всех блоков конкретной позиции, используйте в вашем правиле атрибут after='-'.
Примеры использования этих атрибутов вы также найдёте в стандартных макетах, например:
В качестве ориентира смотрите, например, правило для верхнего меню - оно ровно так же отображается на всех страницах:
<default> <reference name="top.menu"> <block type="catalog/navigation" name="catalog.topnav" template="catalog/navigation/top.phtml"/> </reference> </default>
Чтобы ваш блок стоял выше других среди всех блоков конкретной позиции, используйте в вашем правиле атрибут before='-'.
Чтобы ваш блок стоял наже других всех блоков конкретной позиции, используйте в вашем правиле атрибут after='-'.
Примеры использования этих атрибутов вы также найдёте в стандартных макетах, например:
<block type="catalog/product_list_related" name="catalog.product.related" before="-" template="catalog/product/list/related.phtml"/>
10.06.2011 20:16
Спасибо за ответ! Выводит шаблон модуля но пустой - как будто просто вывело шаблон без результатов работы модуля.
10.06.2011 20:53
Екшен контроллера модуля
Блок
Шаблон
При обращении к модулю по сслыке www.magento.local/mymodule - выводит все как должно быть
Далее вставляю блок как Вы советовали:
Отображает шаблон но без нужных параметров - просто белый квадрат(ифрейм с пустыми параметрами)
Думаю что надо вставлять ссылку на екшен а не на блок?
public function indexAction() { $this->loadLayout(); $this->getLayout()->getBlock('sample.all')->assign(array( 'url' => 'http://www.google.com/', 'width' => '600', 'height' => '150')); $this->renderLayout(); }
Блок
<?php class Sample_Mymodule_Block_Content extends Mage_Core_Block_Template { protected function _construct() { $this->setTemplate('sample/mymodule/view.phtml'); } }
Шаблон
<iframe id="ifrm" src="<?php echo $url;?>" width="<?php echo $width;?>" height="<?php echo $height;?>" align="left"> Your browser not support iframe! </iframe>
При обращении к модулю по сслыке www.magento.local/mymodule - выводит все как должно быть
Далее вставляю блок как Вы советовали:
<reference name="top.container"> <block type="cms/block" name="cms.top.callout" before="-"> <action method="setBlockId"><block_id>top_callout</block_id></action> </block> <block type="sample_mymodule/content" name="mymodule.all" template="sample/mymodule/view.phtml"/> </reference>
Отображает шаблон но без нужных параметров - просто белый квадрат(ифрейм с пустыми параметрами)
Думаю что надо вставлять ссылку на екшен а не на блок?
10.06.2011 22:03
Так это ваш модуль?
Тогда вам, как автору, виднее - что делать.
Я не специализируюсь на сторонних самописных модулях: я не изучал их программный код и не могу гадать о причинах проблем.
Тогда вам, как автору, виднее - что делать.
Я не специализируюсь на сторонних самописных модулях: я не изучал их программный код и не могу гадать о причинах проблем.
10.06.2011 23:04
Ну это модулем можно назвать только с большой натяжкой. Функцыонал там как видно практически нет - только вывести фрейм. Вопрос в том как результат его работы(вывод этого фрейма с параметрамы которые задаються в контроллере) показать где то на сайте..
Спасибо еще раз за ответы - буду рыть дальше.
Спасибо еще раз за ответы - буду рыть дальше.