EC-CUBE2.x系|名古屋EC-CUBE勉強会vol.1
2012/10/16のメモ
2012年。EC-CUBE勉強会を名古屋にてはじめました。
勉強会を始めた経緯は別途記すとして、私たち『EC-CUBE名古屋UGの先生』である大河内健太郎さんに教えていただいた数々の役に立つ授業?の時にとったメモを、私的なEvernoteに溜めているのはもったいないのでここに公開したいと思います♪
いま見返して、驚きました。
先日やらかしてたんですねー。
includeのphpとtplの違いをすっかり忘れて、なんでできないんだ〜ってやってたんです(笑)
誰かのお役に立ててれば幸いです♡
2012/10/6 勉強会 覚え書きメモ
1. ブロックを登録をせずに直接入れたいファイル(例:index.tpl) に入れたいtplを作って入れる
例
<--{include file="frontparts/bloc/test.tpl"}-->
2. 変数を書いて代入させる方法
例:LC_Page_FrotPages_Bloc_Cart.phpのactionに
$this->test = "x";
x を test に代入させて
cart.tpl の任意の場所に
<--{$test}-->
を追加するだけで変数を代入してくれる
<!--{$test|@vardump}-->
ってやると, $test の内容をデバック出力できます。
修正前↓
————————————————————————————————
this=”変数のテスト” ↑ cartのLC ページのアクションで指定 ↓ するとカートブロックにしか反映されない
$this->test = ・・・ん?
あそっか!
includeは変数持ってこれないわけなんだから、要はinclude_phpを使わなければ いいわけだからえと、 ブロック追加をシステムからせず、 tplをインクルードさせる! と! 変数がつかえる!てことか!
新着情報とかそゆの外に出したいときはこうすればいいかも。
(↑いみわからんくて笑えるw)
カートページのみに出したい時は,
if ($_SERVER['PHP_SELF'] == ROOT_URLPATH . 'cart/index.php') { $this->test = 'カートページだけで表示'; }
追記:
テンプレートを読み込む方法は 2種類あります
- <!–{include file=”filename.tpl”}–>
- <!–{include_php file=”filename.php”}–>
1 は、 tpl ファイルを直接読み込む方法.デザイン管理から作成したブロックと同じ方法です。
この方法を使うと、 LC_Page クラスのメンバ変数(例 $this->test)は、すべて tpl ファイルで使うことができます
2 は、PHP プログラムを読み込む方法。
カテゴリブロックや、カートブロック、ログインブロックで使用されている方法です。
この方法では、include する PHP プログラムの変数は親となるテンプレートでは使用できません。
例えば、 LC_Page_Frontparts_Bloc_Cart で宣言した変数は,、frontparts/bloc/cart.tpl で使用できますが、それを読み込む site_main.tpl などでは使用できません 。