2014-03-12 39 views
2

我已將類別頁設置爲我的默認主頁。但現在我想顯示CMS (Home page)未登錄的用戶,而登錄時我想顯示類別page.Means我可以設置可以加載兩個cms頁面的邏輯。我怎樣才能做到這一點 ?感謝您的幫助提前在magento的條件基礎上的首頁

<?php if(!Mage::getSingleton('customer/session')->isLoggedIn()): ?> 
load->category page 
<?php else: ?>//If user is NOT logged in 
    Load home page default one 

<?php endif; ?> 
+0

hello,Adda,您是否已添加家庭類別頁? –

+0

如果未登錄用戶點擊類別網址會怎麼樣? – Slimshadddyyy

+0

是的,我已將它設置爲默認頁面。 – Adda

回答

1

登錄狀態

//條件,如果你想只檢查主頁上的條件。你可以這樣做。改變這樣的CMS控制器的小代碼:

class Mage_Cms_IndexController extends Mage_Core_Controller_Front_Action 
{ 
public function indexAction($coreRoute = null) 
    { 
     if(Mage::getSingleton('customer/session')->isLoggedIn()) 
{ 

Mage::app()->getFrontController()->getResponse()->setRedirect(Mage::getUrl('catalog/category/view/id/3')); 

}else{ 
     $pageId = Mage::getStoreConfig(Mage_Cms_Helper_Page::XML_PATH_HOME_PAGE); 
     if (!Mage::helper('cms/page')->renderPage($this, $pageId)) { 
      $this->_forward('defaultIndex'); 
     } 
    } 
    } 

請嘗試並告知我有關results.Hope這將解決您的問題

+0

哇再次感謝很多這種幫助。 – Adda

0

這可能工作你的情況:根據用戶

if(!$this->helper('customer')->isLoggedIn()) 
{ 
Mage::app()->getFrontController()->getResponse()->setRedirect(Mage::getBaseUrl()); 
die(); 
} 
else 
{ 
Mage::app()->getFrontController()->getResponse()->setRedirect(Mage::getUrl('YOUR_CATEGORY_URL')); 
die(); 
} 

IF above doesn't work, try this : 

$sessionCustomer = Mage::getSingleton("customer/session"); 

if($sessionCustomer->isLoggedIn()) { 
    Mage::app()->getFrontController()->getResponse()->setRedirect(Mage::getUrl('YOUR_CATEGORY_URL')); 
} else { 
    Mage::app()->getFrontController()->getResponse()->setRedirect(Mage::getBaseUrl()); 
} 
+0

不工作。創建無限循環 – Adda

+0

keep a die();功能在最後。看到我編輯的答案,並讓我知道它是否有效。 – Chiragit007

+0

如果使用controller_action_predispatch事件,即使放置DIE(),上述代碼也會導致無限循環。 – Slimshadddyyy