在主页之前添加登陆页面 - Magento

时间:2012-07-12 13:56:06

标签: magento

我想在Magento的主页之前添加一个登陆页面,但似乎无处不在我看起来文档很模糊或论坛很难理解。我对Magento来说相当新,但我非常精通编码。谁能给我一些指示?或引导我朝着正确的方向......

谢谢!

1 个答案:

答案 0 :(得分:3)

我做了一次。我需要在显示pre-home.phtml模板文件之前验证cookie。

我创建了一个名为“Pagina”的新模块,并在其上设置了etc / 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 节点的layout / 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文件中:

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中创建了另一个escope,名为/ pre-home。所以我们需要另一个句柄, pre_home 布局处理程序,而一些JS在模板/ [yourscope] / pre-home而不是/ default中。但pre-home.phtml必须位于config.xml中提到的/default/template/page/pre-home.phtml。

基本上我有:

  

应用程序/代码/本地/命名空间/ Pagina的/ etc / config.xml中

     

应用程序/设计/前端/ mytheme的/默认/布局/ page.xml

     

应用程序/设计/前端/ mytheme的/默认/模板/页/预home.phtml

     

皮肤/前端/ mytheme的/默认/ JS / prehome.js

我希望这可以帮到你。