2013-03-19 76 views
1

好吧,我不能弄明白这一点。我搜查了,我也找不到任何东西。什么是向帐户部分添加新页面的最佳方式。我正在尝试将支持凭单系统集成到一个magento帐户页面,即用户必须登录并注册才能使用此功能。我可以得到这个使用cms页面和自定义页面布局的工作。但那么我如何设置此自定义cms页面仅适用于登录用户?Magento创建新的客户页面

而且做这种方式,这是显示类别菜单,而不是账户菜单。我怎样才能让我的账户菜单显示呢?还是有更好的方法来做到这一点?我新来的magento和即时通讯真的卡住了,不能弄明白这一点,所以任何帮助将不胜感激。

进出口运行的Magento 1.7.0.2社区版。

回答

1

如果我理解正确的话,只需要检查如果客户登录,但为了使用PHP你将不得不使用teplating系统并创建一个模块,或生成自己的“独立页面“如果你去模块路线:

if ($this->helper('customer')->isLoggedIn()){ 
    //show page contents or do whatever .. 
} 
else{ 
header('Location: http://www.yoursite.com/customer/account/login/') ; 
} 

是你所需要的。如果你去独立路线:

//LOAD MAGENTO 
require_once 'YOUR_PATH_TO_MAGENTO/app/Mage.php'; 
umask(0); 
Mage::app('YOUR_WEBSITE_CODE', 'website'); 

//GET SESSION DATA 
Mage::getSingleton('core/session', array('name'=>'frontend')); 
$session = Mage::getSingleton('customer/session', array('name'=>'frontend')); 
$customer_data = Mage::getModel('customer/customer')->$session->id); 

//CHECK IF LOGGED IN 
if($session->isLoggedIn()){ 
echo 'Welcome ' . $customer_data->firstname . " " . $customer_data->lastname; 
} else { 
echo "Access Denied: Sorry, but this page is for registered members only."; 
exit; 
} 

希望帮助

+0

谢谢,是的,这是它的一部分我如何设置它显示我的帐户菜单吗?有什么方法可以说这是一个帐户页面来设置这两个功能? – JSweete 2013-03-19 02:09:17

+0

我相信你将不得不打电话给我的帐户资产净值块,而不是打电话给页面“我的帐户”页面,如果这是有道理的。它应该像调用任何其他页面上的左侧导航一样简单 – Zak 2013-03-19 13:20:58

+0

啊,你和我好吧,这很有意义,非常感谢:) – JSweete 2013-03-19 16:01:33

-1

任何行动有一个控制器和动作的功能。

因此,对于你的新功能,你定义一个action.Make确保这一行动值是URL。

现在你的控制器中添加此动作功能

myAction() 
{ 
    if ($this->helper('customer')->isLoggedIn()){ 
    //show page contents or do whatever .. 
    } 
    else{ 
    header('Location: http://www.yoursite.com/customer/account/login/') ; 
    } 
} 
+0

有趣...看起来像我的答案的顶部,但有一个函数缠绕它...下次可能会提及吗?复制并粘贴已经在页面上的答案并将其包装在一个函数中并不是什么新颖的东西,而且有点可耻。此外,没有必要采取“行动”,并说“行动”没有任何意义的范围,即“//显示页面内容或做任何事情......”。 – Zak 2013-03-19 13:15:55

+0

好吧,我解释说,需要在我的网址我有,所以这个函数被调用。这就是我在该函数内粘贴代码的原因。所以请求的原始人可以很容易地进一步移动。它不仅仅是一个复制粘贴。 – oscprofessionals 2013-03-19 17:18:47

+0

对于任何操作都有一个控制器和操作功能。 因此,为您的新功能定义一个action.Make确保此操作值在URL中。 现在在您的控制器中添加此操作功能。阅读与代码一起发布的其他解释。 – oscprofessionals 2013-03-19 17:21:55

-1

虽然这两个问题的答案上面可能已经足以张贴的问题,只是一个音符,这肯定是不与Magento的工作的正确方法,更好地了解如何能在这样根据Magento的做法可以实现,我觉得这tutorial from Alan Storm是一个伟大的地方,但是有一些问题与preDispatch方法在博客中,我认为它可能是更好的选择:

public function preDispatch() { 
     parent::preDispatch(); 
     if (!Mage::getSingleton('customer/session')->authenticate($this)) { 
       $this->setFlag('', 'no-dispatch', true); 
     } 
    } 

我从here得到。 在Alan的博客中,如果客户已经登录并尝试进入自定义帐户页面,他会被重定向到主页(它对我来说是这样)。

+0

亲爱的“downvoter”,请添加评论,为什么答案值得赞成,以便我可以改善,我下次发布的东西。 – Prateek 2015-10-13 06:12:47

相关问题