SOY Shopにも他のEC CMS同様マイページがあって、
会員登録、ログインや注文履歴が見れる。
このマイページのデザインはマイページ用のテンプレートを用意して、
そのテンプレートにフォームの部分を表示するための専用のタグを設置するという仕組みで、
フォームの出し分けはログイン状況とURLを見て行う。
この仕組みを踏まえた上で、
下記の様な質問がよくされます。
マイページのテンプレートは一つで様々なページを表示する。
ということで、
上のログインしていない状態で表示されるページも
ログイン後のページもメインカラムとサイドカラムの形式になる。
ログイン後は2カラム形式で良いけど、
ログイン前はこんな感じで1カラム形式にすることは出来ないだろうか?と
この対応はそんなに難しくないんだけど、
遠方の方に説明するのが面倒だったので、
下記の様な機能を追加した。
ログインしていない時は別のテンプレートを読み込み表示する。
例えば、マイページ用のテンプレートのIDをbryonで設定していたとする。
マイページを開いた時、
/ルート/ショップID/.template/mypage/bryon.htmlが読み込まれ、
bryon.html内にあるアプリケーションタグがコンテンツに置換されるわけだが、
ログインしていない時に、
/ルート/ショップID/.template/mypage/bryon_no_login.iniと
/ルート/ショップID/.template/mypage/bryon_no_login.htmlといった、
マイページID + _no_loginというテンプレートがあれば、
そちらのテンプレートを読みにいくという処理を追加して、
ログインしている時としていない時で違うテンプレートを扱える様にしました。
※マイページID + _no_loginは管理画面から生成することが出来ません。ご利用の際はサーバに直接アップロードしてください。
今回の機能はフォーラムに投稿していますので、
ご利用の方はフォーラムからダウンロードしてください。
SOY CMS フォーラム • トピックの表示 - マイページでログインの有無でテンプレートを分ける機能を追加しました
私の管理しているリポジトリからもダウンロード可能です。
https://github.com/inunosinsi/soycms/tree/master/package/soyshop