Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php magento中基于条件的主页_Php_Magento - Fatal编程技术网

Php magento中基于条件的主页

Php 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
(主页)
,而为已登录的用户显示分类页。这意味着我可以设置可以加载两个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(),上述代码也将导致无限循环;好的,然后试试我下面的代码,这是一个和会话一起玩的代码