Загрузите блок вне Magento и примените текущий шаблон

У меня есть установка 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 (со следующими реквизитами)?

  • Я хочу, чтобы базовый макет xml и обновления макета дизайна магазина изменений дизайна загружались автоматически, поэтому мне не нужно указывать путь к шаблону и тип блока (снова) вручную.
  • Я хочу загрузить блок по его ссылочному имени, чтобы я мог использовать свойства, примененные к нему в файлах макета XML.

Цель этого вопроса - обернуть его в функцию и визуализировать каждый блок вне Magento так же, как это делается в шаблонах Magento. Например:

 <div id="sidebar-cart-container">
    <?php echo $this->renderMagentoBlock('cart-block-reference-id'); ?>
</div>

Заранее спасибо.

12 голосов | спросил azkotoki 14 J0000006Europe/Moscow 2011, 21:12:49

0 ответов


Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132