состояние входа в top.links при вызове - PullRequest
0 голосов
/ 05 января 2012

Я пытаюсь вытащить заголовок нашего магазина Magento на отдельной php-странице. Все работает как положено, за исключением того, что ссылка «Войти» не отображается. Файл customer.xml использует стандартный узел customer_logged_in для addLink, но похоже, что состояние входа не оценивается с помощью метода, который я использую. Как я могу получить это Войти | Выйти ссылка для отображения?

Вот код, который я использую:

require_once $mage_path;
umask(0);
Mage::app();
Mage::getSingleton('core/session', array('name' => 'frontend'));

$layout = Mage::app()->getLayout();
$layout->getUpdate()->addHandle('default')->load();
$layout->generateXml()->generateBlocks();

echo $layout->getBlock('header')->toHtml();

Я могу получить правильное состояние входа в систему независимо, используя следующее:

$session = Mage::getSingleton('customer/session', array('name'=>'frontend'));       
if ($session->isLoggedIn()) {
    /* logged in */
} else {
    /* not logged in */
}

Однако я не хочу управлять двумя различными стилями (один через стандартный magento XML, а другой для этой пользовательской страницы). Я бы предпочел, чтобы вызов getBlock вернул весь блок с правильным статусом входа. Любое понимание приветствуется.

1 Ответ

0 голосов
/ 05 января 2012

Вам нужно добавить customer_logged_in к вашим ручкам, а также default.Например:

...
$handles = array('default');
if (Mage::helper('customer')->isLoggedIn()) {
    $handles[] 'customer_logged_in';
}
$layout->getUpdate()->addHandle($handles);
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...