ブロックで作成した情報以外からも情報を取得したい場合はこちらの情報が参考になります。
はじめに
tplファイルだけじゃなくて画像やPHPの情報も取得できます
注意事項
私の使用しているバージョンは2.12です
前回のおさらい
【EC-CUBE】ブロックで作成したtplファイルを呼び出す方法
こちらの方法ですが、欠点があります。
パソコン用のデザインとスマホ用のデザインを分けている場合、こちらの方法ですとスマホでもパソコン用のブロックから取得する形になってしまうので、うまく表示させることが出来ません。
なので「frontparts」より前の情報から取得しなければいけません。
引き出し方
まずは前回でも紹介した特定のファイルの引き出し方です。
<!--{include file=`$smarty.const.〇〇}-->
この情報をベースにこれから紹介するコードを入力してまいります。
使いやすいコード
画像で良く使うコード
<!--{$TPL_URLPATH}--> <!--{$smarty.const.USER_TEMPLATE_REALDIR}-->
テンプレートを収納している箇所から使う事が多いんじゃないでしょうか?
上のコードはさくらサーバーだと
/user_data/packages/〇〇/ /home/サーバー名/www/user_data/packages/
と言う風に書き出されます。
これらは個人的に画像の取得によく使っています。
ssl専用デザインがある場合
<!--{$smarty.const.HTTPS_URL}-->
もしSSL専用デザインやSSLの時に表示させたい場合はphpで分岐を作りつつこのコードを上手く使いましょう。
https://サーバー名.sakura.ne.jp/ドメイン/
このように表示されます。
EC-CUBEをさくらの共有SSLで対応した時に大活躍でした。
もしSSLでhttp://がhttps://に代わるだけの人は
https://ドメイン/
と表示されます。
登録した商品画像
商品として登録した画像を引っ張ってきたい時はこちらです。
<!--{$smarty.const.IMAGE_SAVE_URLPATH}--> <!--{$smarty.const.MOBILE_IMAGE_URLPATH}-->
上側はパソコン用の画像、下側はモバイル用の画像になります。
/upload/save_image/ /upload/mobile_image/
ただ、今現在モバイル用デザインを使用している人はいないと思うので、下側は使っている人かなり少ないんじゃないかな。
スマホデザインと違うテンプレートの場合
パソコン用とスマホ用のデザインは違う場合にめっちゃ役立ちます。
<!--{$smarty.const.DATA_REALDIR}-->
上記コードは
/home/サーバー名/www/data/
ここのコードです。なのでパソコン用とスマホ用でデザインが違う場合は
<!--{$smarty.const.DATA_REALDIR`Smarty/templates/pc/frontparts/bloc/〇〇〇.tpl}--> <!--{$smarty.const.DATA_REALDIR`Smarty/templates/sp/frontparts/bloc/〇〇〇.tpl}-->
このように使い分ける事が出来ます。
商品のURLを取得したい場合
<!--{$smarty.const.P_DETAIL_URLPATH}--> <!--{$smarty.const.MOBILE_P_DETAIL_URLPATH}-->
/products/detail.php?product_id=
この2つはモバイルとPC用なんで下側のはもう必要ないかな。
これと数字を利用してランダムで表示させたりするのも面白いかもしれませんね。
私はこれあんまり使っていないです。
自分はあまり使わないやつ
後は自分ではあまり使用しないが、何か使用できるタイミングがあるかもしれへん時用です。
<!--{$smarty.const.TOP_URLPATH}--> /html/ <!--{$smarty.const.ROOT_URLPATH}--> /html/ <!--{$smarty.const.HTML_REALDIR}--> /html/ <!--{$smarty.const.CLASS_REALDIR}--> /data/class/ <!--{$smarty.const.CLASS_EX_REALDIR}--> /data/class_extends/ <!--{$smarty.const.TEMPLATE_REALDIR}--> /data/Smarty/templates/default/ <!--{$smarty.const.TEMPLATE_ADMIN_REALDIR}--> data/Smarty/templates/admin/ <!--{$smarty.const.TEMPLATE_TEMP_REALDIR}--> html/upload/temp_template/ <!--{$smarty.const.GRAPH_URLPATH}--> /html/upload/graph_image/ <!--{$smarty.const.IMAGE_TEMP_URLPATH}--> /html/upload/temp_image/ <!--{$smarty.const.CART_URLPATH}--> /html/cart/ <!--{$smarty.const.ADMIN_LOGIN_URLPATH}--> /html/shopmng/ <!--{$smarty.const.ADMIN_SYSTEM_URLPATH}--> /html/shopmng/system/ <!--{$smarty.const.ADMIN_PRODUCTS_URLPATH}--> /html/shopmng/products/ <!--{$smarty.const.ADMIN_ORDER_URLPATH}--> /html/shopmng/order/
以上です。
さいごに
とりあえず覚えていて損はないよね
私はEC-CUBEで色々な箇所に情報をアップしています。
制作したコンテンツがスマホに向かない場合は別の箇所にアップしてパソコンと共通して使用しています。
スマホ用デザインがある場合は管理画面のコンテンツから作成しています。
そうするとどうしてもアップしている箇所が分散されてしまいます。