カラーミーショップで配列の中身を確認する方法
タイトルの通りで、カラーミーショップで使用されている独自タグの配列の中身を確認したくて、調べてみると意外にもできたのでメモ。
カラーミーネタはあまり需要がなさそうなんですが、案件で使ったりするので、今後の為に備忘録として個人用に残しておきます。
カラーミーではPHP関数が使用できない
つまりはvar_dump
したかったのですが、カラーミーショップではセキュリティ上の理由からか、PHPの関数が使用できなくて(通常Smartyでは、PHPの関数が暗黙の修飾子として全て使用することができる)、配列の中身が知りたい時は、地道にforeach
でkey
とitem
をループさせて表示させていました。
当然、限界があって、配列の中身までは見れないし、公表されていないものもあるので、あきらめていた部分があったんですよね。
debug_print_var を使って確認できる
無理だと思っていたので、特に調べたことはなかったんですが、今日カラーミーの実装で、どうにも煮詰まってしまって試しに調べてみたところ、Smartyの(デバッグ用の?)修飾子でdebug_print_var
というものがあることを知りました。
カラーミー上では無理なんだろうなぁと思っていたんですが、試しに使用してみると、見事、配列を表示させることができました。
以下のように、パイプで区切って修飾子として独自タグの後にくっつけます。
// 商品詳細ページ
<{$product|@debug_print_var}>
ここで重要なのが@で、これがないと配列の中身まで表示されません。
また、当然ですが、カラーミーの独自タグはページによって利用が制限されているので、その独自タグが使えるページでないと表示されません。
debug_print_var
はデフォルトでは40文字までしか表示されないので、もし40文字よりも長い値を表示させたい時は、以下のようにするといいようです。
// 商品詳細ページ
<{$product|@debug_print_var:0:100}>
上記の100の部分が文字数で、0の部分はインデント幅になります。
おわり
実際に試してみると、公開されていないkey
とかがあって、新たな発見があって面白かったです。
今、煮詰まっている部分が商品ページのオプションのところで、かなりややこしいんですが、これで何とかなりそうな気がしています(できるとは言っていない)。
ちなみに、マニュアルの独自タグ一覧に掲載されていない独自タグは、予告なく変更される可能性があるとのことなので、もし掲載されていないものを使用する場合には注意が必要です。
(以下、小言)
ただ、マニュアルの独自タグ一覧は、よく見るとあきらかな間違いがあったり、無料のテンプレートで当たり前のように使用されているものが反映されていなかったり(最近のはほとんど反映されていない)するので、あまり当てにはできないんですけどね。
たぶんあまり見ている人がいないからなんでしょうけど、一応、マニュアルなのでしっかりとしてもらいたいものです。
以下の記事を参考にさせて頂きました。ありがとうございました。