0

Magentoのホームページの前にランディングページを追加したいのですが、どこを見てもドキュメントが非常に曖昧であるか、フォーラムが理解しにくいようです。私はMagentoにかなり慣れていませんが、コーディングに非常に精通しています。誰かが私にいくつかの指示を与えることができますか?または正しい方向に私を導きます...

ありがとう!

4

1 に答える 1

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 と同じディレクトリに /pre-home という名前の別の escope を作成したことに注意してください。そのため、別のハンドルであるpre_homeレイアウト ハンドラーが必要であり、一部の JS は /default ではなく template/[yourscope]/pre-home 内にあります。ただし、config.xml に記載されているように、pre-home.phtml は /default/template/page/pre-home.phtml にある必要があります。

基本的に私は持っています:

アプリ/コード/ローカル/名前空間/Pagina/etc/config.xml

アプリ/デザイン/フロントエンド/mytheme/デフォルト/レイアウト/page.xml

app/design/frontend/mytheme/default/template/page/pre-home.phtml

スキン/フロントエンド/mytheme/default/js/prehome.js

これがお役に立てば幸いです。

于 2012-07-12T17:19:53.817 に答える