Получение Magento phtmls из-за пределов Magento, сохраняя данные нетронутыми - PullRequest
0 голосов
/ 19 октября 2011

Как получить содержимое следующих файлов frontend/enterprise/default/template/page/html/header.phtml или frontend/base/default/template/page/template/links.phtml или frontend/enterprise/default/template/checkout/cart/cartheader.phtml

за пределами Magento и дата обработки все еще не повреждена. Например, я имею в виду, что по-прежнему отображается правильное количество товаров для пользователя «Моя корзина (5)» или в заголовке «Добро пожаловать, volkan yavuz» и по-прежнему отображается имя пользователя.

Зачем мне это?

У меня есть Zend-приложение, независимое от Magento, в котором мы пытаемся объединить верхний и нижний колонтитулы, поэтому мы будем иметь их в одном месте. Нам нужно вызвать Magento header из этого приложения Zend.

До сих пор я создал собственный API в Magento, который вызывает эти файлы (phtml), но я не могу получить эти обработанные данные (например, номер корзины или приветственное сообщение с фамилией имени для текущего сеанса / пользователя.

1 Ответ

1 голос
/ 19 октября 2011

Для того чтобы они отображались с правильными данными и состоянием, они должны иметь правильную среду визуализации.

<?php
include 'app/Mage.php';
Mage::app('store_code');

//Load the session so we get quotes.
Mage::getSingleton('core/session', array('name' => 'frontend'))->start();
/*
   see Mage_Core_Controller_Varien_Action::preDispatch()
   and Mage_Core_Controller_Front_Action::preDispatch()
*/

//For each block you wish to render, you could do the following:
$output = Mage::app()->getLayout()
                     ->createBlock('block/type')
                     ->setTemplate('template/path.phtml')
                     ->toHtml();

Вы можете выбрать создание содержащего блока для всех ваших блоков, установить свои блокикак потомки этого блока, сделайте соответствующий шаблон и getChildHtml() вызовы в нем, а затем вам нужно только вызвать toHtml() для этого блока.

HTH!

...