2012-01-05 18 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 */ 
} 

しかし、私はしたくない。ここ

は、私が使用しているコードです。 2つの異なるスタイルを管理します(1つはデフォルトのmagento XMLを使用し、もう1つはこのカスタムページを使用します)。私はむしろ正しいログイン状態でブロック全体を返すgetBlock呼び出しを持っています。どんな洞察にも感謝します。

答えて

0

ハンドルにcustomer_logged_indefaultを追加する必要があります。例:

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

恐ろしい!ありがとう、ニック、それは私が探していたものです。 – user1132779

関連する問題