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