我想在Magento的主頁之前添加登錄頁面,但似乎無處不在我看文檔非常模糊或者論壇很難理解。我對Magento相當陌生,但對編碼非常瞭解。任何人都可以給我一些指示嗎?或引導我在正確的方向...在主頁之前添加登錄頁面 - Magento
謝謝!
我想在Magento的主頁之前添加登錄頁面,但似乎無處不在我看文檔非常模糊或者論壇很難理解。我對Magento相當陌生,但對編碼非常瞭解。任何人都可以給我一些指示嗎?或引導我在正確的方向...在主頁之前添加登錄頁面 - Magento
謝謝!
我做了一次。我需要在顯示pre-home.phtml模板文件之前驗證cookie。
我創建了一個名爲「Pagina」新的模塊,並設置它的等/ config.xml中:
<page>
<layouts>
<pre_home module="pagina" translate="label">
<label>Pre-home</label>
<template>page/pre-home.phtml</template>
<layout_handle>pre_home</layout_handle>
</pre_home>
</layouts>
</page>
的cookie驗證是通過JavaScript製成,所以如果一個履帶式機器人訪問該網站,我們重定向到正確的頁面。在cms_index_index節點佈局/ page.xml,我們的推杆:
<cms_index_index>
...
<reference name="after_body_start">
<block type="page/html_head" after="-" name="index.js.beginning">
<action method="addItem"><type>skin_js</type><name>js/prehome.js</name></action>
</block>
</reference>
...
</cms_index_index>
在上/js/prehome.js JS文件:我在創造了另一個escope
var c_name = 'city';
if(window.location.toString().indexOf('pre-home') == -1){
var first_visit = true;
var i,x,y,ARRcookies=document.cookie.split(";");
for (i=0;i<ARRcookies.length;i++)
{
x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
x=x.replace(/^\s+|\s+$/g,"");
if (x==c_name)
{
first_visit=false;
}
}
if(first_visit){
//you must define URL_SITE with site base url
location.href = URL_SITE + 'pre-home';
}
}else{
document.getElementById("sp").onclick = function(){
var exdate=new Date();
exdate.setDate(exdate.getDate() + 365);
var c_value=escape('SP') + "; expires="+exdate.toUTCString();
document.cookie= c_name + "=" + c_value;
}
}
注與/ default相同的目錄,名爲/ pre-home。所以我們需要另一個句柄,其中一個是佈局處理程序,另一個是模板/ [yourscope]/pre-home而不是/ default。但pre-home.phtml必須位於/default/template/page/pre-home.phtml中,如config.xml中所述。
基本上我有:
應用程序/代碼/本地/命名空間/ Pagina的/ etc/config.xml中
應用程序/設計/前端/ mytheme的/默認/佈局/ page.xml
應用程序/設計/前端/ mytheme的/默認/模板/頁/預home.phtml
皮膚/前端/ mytheme的/默認/ JS/prehome.js
我希望這可以幫助你。
任何人都可以幫忙!? – onei0120 2012-07-12 14:53:35