2013-03-19 75 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