调用时top.links中的登录状态

时间:2012-01-05 18:29:05

标签: magento

我正试图在一个独立的php页面中拉出我们的Magento商店的标题。一切都按预期工作,除了“登录”链接没有出现。 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 :(得分:0)

您需要将customer_logged_in添加到句柄以及default。例如:

...
$handles = array('default');
if (Mage::helper('customer')->isLoggedIn()) {
    $handles[] 'customer_logged_in';
}
$layout->getUpdate()->addHandle($handles);
...