HTML5オーディオタグを使用してWebサイト全体で音楽を再生するように実装しましたheader.phtml
。ユーザーはアイコンをクリックして音楽をミュートするオプションがあります。アクションは次の手順で機能します。
1) アイコンは、以下に示すコードのフォームの下にラップされます。
<form method="post" id="unmute_form" action="process_unmute.php">
<input type="submit" id="mute" name="mute" value="" style="background: url('music/mute.png')" />
</form>
<form method="post" id="mute_form" action="process_mute.php">
<input type="submit" id="mute" name="mute" value="" style="background: url('music/speaker.png')" />
</form>
2) ユーザーがミュート アイコンをクリックすると、フォームが ajax 経由で外部の php ファイルに送信され、次のコードで magento セッションが設定されます。
require_once ("../app/Mage.php");
Mage::app();
Mage::getSingleton('core/session')->setMuted('true');
3) jQuery を使用した ajax によるフォーム送信:
$("form#mute_form").submit(function() {
$.ajax({
url: "musicFolderAtRoot/process_mute.php",
type: "POST",
data: { },
dataType: "json",
success: function(data) { }
});
return false;
});
私がすでにphpプロジェクトに適用していたのと同じロジックが正常に動作していますが、Magentoのprocess_mute.phpファイルではセッション値が設定されていません。
phtmlファイルからphpファイルを呼び出す方法の手がかりは、間違ったディレクトリにphpファイルを配置しているため、phpファイルがセッションを設定できないため、セッションにアクセスできないと思います(試しroot/folder
てみましたapp/design/frontend/base/default/template/page/html/
)
また
この単純なセッション設定機能を持たせるには、magento モジュールを作成する必要があります (この小さなタスクには骨の折れる作業です)。