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();






0 件のコメント: