У меня есть установка Magento, интегрированная с внешним веб-сайтом, и я хочу, чтобы блок корзины покупок Magento отображался в заголовке этого внешнего сайта.
Я добился этого. со следующим кодом:
<?php
require_once(dirname(__FILE__).'/store/app/Mage.php');
$app = Mage::app();
$session = Mage::getSingleton('core/session', array('name'=>'frontend'));
$block = $app
->getLayout()
->getBlockSingleton('checkout/cart_sidebar')
->setTemplate('checkout/cart/sidebar.phtml');
echo $block->toHtml();
Но я хочу (и считаю, что это возможно) более приятный подход.
Мне не нравится тот факт, что я должен указывать шаблон вручную с помощью setTemplate ()
, что включает жестко запрограммировать расположение шаблонов и повторить то, что он определил где-то еще (в XML-файлах макета дизайна). Я попытался загрузить блок через $ app-> getLayout () -> getBlock ($ name)
без результатов (было $ name
представляет ссылочное имя блока, как определено в макете xml).
Итак, вопрос:
Есть ли способ визуализировать блок за пределами Magento (со следующими реквизитами)?
Цель этого вопроса - обернуть его в функцию и отобразить каждый блок вне Magento так же, как это делается в шаблонах Magento. Например:
<div id="sidebar-cart-container">
<?php echo $this->renderMagentoBlock('cart-block-reference-id'); ?>
</div>
Заранее спасибо.