カテゴリが出せないっておかしくないか。
仕様と不満
カラーミーの商品情報にカテゴリー、グループがある。
カテゴリー、グループ分けされた商品は商品一覧として活用される。
それはいいとして、商品詳細として書き出せる情報にそれらがない。
設定項目にあるのに露出できないってどうなんでしょうね。
今回の話
商品ごとに登録したい、管理画面上で編集できるようにしたい。
テーマ自体に直接書き込んで何とかすることはできるけど、対象が流動的だし数が増えると散らかるし、商品情報とソースコードを絡める組み方は非常にめんどくさくてやりたくない。
ということで、管理画面上(商品情報入力ページ上)で予め用意されている枠を潰して、任意のものを登録できるようにしようと思い立った。
具体的に言えば「簡易説明」を使ってSmartyを行使していい塩梅にする。
こんな感じ
カテゴリーを商品情報のひとつとして出力したいとする。
簡易説明をこんな感じにしたとする。
[[カテゴリー]]簡易説明文- [[***]]を抽出して、その中身をカテゴリーとして使用する。
- [[]]の外側にある文字列を簡易説明として使用する。
これをSmartyでやっていく。
トップページで「おすすめ商品」として表示させるならこんな感じ。
<{if $recommend_num != 0}>
<{section name=num loop=$recommend}>
全部:
<{$recommend[num].s_expl}>
カテゴリー:
<{$recommend[num].s_expl|regex_replace:"/.*\[\[/":""|regex_replace:"/\].*/":""}>
簡易説明文:
<{$recommend[num].s_expl|regex_replace:"/\[\[.*?\]\]/":""}>
<{/section}>
<{/if}>商品詳細ページだったらこんな感じ。
<{if $product.id != ""}>
全部:
<{$product.simple_explain}>
カテゴリー:
<{$product.simple_explain|regex_replace:"/.*\[\[/":""|regex_replace:"/\].*/":""}>
簡易説明文:
<{$product.simple_explain|regex_replace:"/\[\[.*?\]\]/":""}>
<{/if}>見慣れた出力するタグに「|」で連結した内容が[[]]を拾って中身を出したり外側を出したりみたいなことになってる。
カラーミーにこんなことする説明はないので、Smartyを勉強するしかない内容。
応用
囲いのバリエーションを作れば複数の役割をもたせることができる。
それは良いとして注意点がある。
正直、この時点でもかなりだるいことをしてる。
カテゴリーを指定しててもそっちで表示されないから、同じ内容を登録してあるというだけのことだから、カテゴリーを変更したら簡易説明の方も変えないといけない。
あまりにも独自構築すぎて、仕様を共有できないと誰もいじれなくなる。組み込んだ側はいいけど自走してもらうにはとんでもなくめんどくさい話になる。
幅をもたせるだけじゃなくて、最低限に留めるための方法も考えたほうが良いですね。
こんな事をするってことは商品説明もベタ打ちじゃなくてHTMLを使ってるだろうし、えらいことになってるでしょう。

コメント