[makeshop]クリエイターモードで条件分岐をやる方法

非常にめんどくさいのだけど。

基本形

クリエイターモードではこんな感じでやれる。

<{if $page.type == 'top'}>
    トップページ
<{else}>
    トップページ以外
<{/if}>

elseifも使える。

<{if $page.type == 'top'}>
    トップページ
<{elseif $page.type == 'policy'}>
    プライバシーポリシー
<{else}>
    それ以外
<{/if}>

ページの判別方法

じゃあ何の正否でどのページの条件が成立するのかっていう話。makeshop上にはそういうのの一覧が存在しないので自分で調べていくしかない。

$page.typeページタイプ
$page.idページID
$category.codeカテゴリー識別コード
$item.system_codeシステム商品コード

使うとしたらこのあたり。で、こんな感じで書いてChromeでいう検証とかソースコードを覗けば把握できる。

<div style="display:none;">
ページタイプ:<{$page.type}><br>
ページID:<{$page.id}><br>
カテゴリー識別コード:<{$category.code}><br>
システム商品コード:<{$item.system_code}>
</div>

出力された内容をif文に入れるって感じで。

注意としては、例えば$page.typeは「商品カテゴリー」とか「フリーページ」までしか分けてくれないんで、それ以上細分化したいなら$page.idを使う、みたいな感じで使い分けをしていかないといけない。

管理画面上独自デザインのページ一覧URLについてるパラメータのpage_typeとタグで出力する$page.typeは別物だからまじで面倒くさい。面倒くさいだけならいいけど入力ミスったりしたらひどいことになるので気をつけて。

活用方法

<title>が標準のままだと変な感じになってるんで調整した方がいい。
管理画面上の「ショップ作成」→「SEO管理」でそれぞれのtitleを編集できるように見えて、実はできない。デフォルトだとトップページのtitleだけが寂しすぎるとか手前に「|」があるとかで気持ち悪い、個別設定するとプライバシーポリシーとフリーページが設定できない上に、プライバシーポリシーは「プライバシーポリシー」の表記がない。条件分岐で自分で構築すれば2択からどちらかを諦めるってのを放棄できるので便利。

ページ分類メモ

調べちゃったよ・・・

ページ名$page.tipe$page.id$category.code$item.system_code
トップページtop
商品カテゴリーcategory$category.codeと同じex.ct1
商品検索結果search
商品詳細item$item.system_codeと同じex.000000000001
商品レビュー一覧review-list商品詳細$item.system_codeと同じ
商品レビュー投稿review-post商品詳細$item.system_codeと同じ
買い物カゴcart
お知らせ一覧news-list
お知らせ詳細news-detailex.yyymmddhhiiss
まとめ買い割引bulkex.1-0
利用案内guide
会社概要company
特定商取引法contract
プライバシーポリシーpolicy
会員制/年齢確認top
フリーページfreepage※ページURL
空欄は無し

現状(2021/06/25)はこうなってた。

wpとかeccubeとかだと管理画面上のURLとかを見たらある程度把握できるんだけど、makeshopはそういうヒントが一切ない。つらい。

コメント

タイトルとURLをコピーしました