2012-01-05 31 views
0

我试图把我们的Magento商店的标题拉到独立的php页面。除了'登录'链接没有出现,一切都按预期工作。 customer.xml文件使用标准的'customer_logged_in'节点来添加'addLink',但似乎登录状态没有通过我正在使用的方法进行评估。我如何获得此登录|注销链接显示?登录状态在top.links被调用时

这里是我使用的代码:我能得到正确的登录状态独立使用以下

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调用返回具有正确登录状态的整个块。任何见解都会被赞赏。

回答

0

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

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

太棒了!感谢尼克,那正是我所期待的。 – user1132779 2012-01-05 22:27:43