2018年8月28日火曜日

とんくん版 Skinny独自拡張

チョットと使う上で使いにくかったんです(^ ^;)
変更1:テンプレート変数の代わりに文字列を出力
           理由:pluginタグで第二引数以降に固定値を渡したい時に不便
           理由:テンプレート変数同士を結合したい
           例)<%plugin('abc',data,'%')%>
                 プラグイン abc へ テンプレート変数dataと'%'文字を渡す。
           例)<%plugin('abc',''.data.'%')%>
                 プラグイン abc へ テンプレート変数dataの後に'%'文字付けて渡す。
                (引数全体が'で囲まれていると文字列結合される。)
変更2:echoタグでテンプレート変数が未定義でも無視する。(Smartyは出来るのにー)
    <%@echo(data)%>
            (テンプレート変数が未定義の場合無視する。)

以上、2点の修正が入ってます。


2018年8月18日土曜日

【cakephp2】 ビューが残念(Skinny化)

あれなんですよ。
最初にビューワーのソース見た時、phpコーディングの処理べた書きじゃん!
一気にやる気が失せる(; ;)
ウォーテンプレートエンジンが使いたい。
でもSmartyは大規模で組み込むの大変そう。(でもSmartyしかしんない ; ; )
で変わりはないか・・・・で、見つけました。
Skinny(著作権はKuasuki 氏に有りますが自分が手を入れたので質問は自分へお願いいたします。0.3.3がベースです) http://skinny.sx68.net/index.html
で取り敢えず「app/Vendor」に入れて呼び出す・・・・
グローバル変数($Skinny)が見つからずエラー・・・ガーン!!
まあ、ソースファイル1本なんで中を調らべて手を入れる。
でも出ない。
「ob_*」も良くないみたい・・・・・

修正分他 https://drive.google.com/open?id=1jtNRnAs6MCgVBD5RpqHrcto3VqZtHHgQ

使い方はヘルパーとビューレンダーの2パターン

<<<ヘルパーとして>>>:

// ヘルパーの登録(ビューテンプレートへ記述)

$helpers=array('Skinny');

<?php
$script=$this->Skinny->html(); // テンプレートファイルは自動的に ビューの有る場所の「アクション名.ski」を自動的に読み込む


$skLoopCount=$this->Skinny->skLoopCount; // テンプレート内で定義されている変数の数(決まり事)

// テンプレートが受け取る変数定義
$skOutput=array_merge(

    $this->viewVars,             // コントロールで設定された値をテンプレートへ送る
   [その他のパラメータ]
);

// テンプレート出力
eval("?>" . $script);

?>

<<<ビュークラスを差し替え>>>

(コントローラーへ記述)

App::uses("SkinnyView", "View");

$viewClass = 'SkinnyView'; // ビューを指定

$view->set("SkinnyFile","[テンプレートファイル名]"); // $extは無視される。

echo $view->render();