Php magento中基于条件的主页
我已经将分类页设置为默认主页。但是现在我想为未登录的用户显示CMSPhp magento中基于条件的主页,php,magento,Php,Magento,我已经将分类页设置为默认主页。但是现在我想为未登录的用户显示CMS(主页),而为已登录的用户显示分类页。这意味着我可以设置可以加载两个CMS页面的逻辑。我该怎么做?提前谢谢你的帮助 <?php if(!Mage::getSingleton('customer/session')->isLoggedIn()): ?> load->category page <?php else: ?>//If user is NOT logged in Load ho
(主页)
,而为已登录的用户显示分类页。这意味着我可以设置可以加载两个CMS页面的逻辑。我该怎么做?提前谢谢你的帮助
<?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; ?>
加载->类别页面
//如果用户未登录
加载主页默认值
这可能适用于您的情况:
//条件取决于用户的登录状态
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());
}
如果您只想检查主页上的条件。您可以这样做。更改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');
}
}
}
请尝试将结果通知我。希望这能解决您的问题。你好,Adda,您是否已经为主页添加了类别页面???如果未登录用户单击类别url会怎么样?是的,我已将其设置为默认页面。@slimshaddyyy我从链接隐藏类别如果您在登录时始终将用户重定向到类别页面,那么他如何执行其他操作,如将产品添加到购物车?保留模具();最后的功能。查看我编辑的答案,让我知道它是否有效。如果您使用controller_action_predispatch event,即使您放置DIE(),上述代码也将导致无限循环;好的,然后试试我下面的代码,这是一个和会话一起玩的代码