CakePHP×Teedaベータ版完成
昨日の続き。
一応完成した。
これで、imgタグとaタグのURL、css,javascriptタグを書き換えること無く(基本的に)生HTMLで書けるようになる。
対応したのは、
aタグ
imgタグ
link(css)タグ
scriptタグ
+
outタグ(独自)
aタグは
<a href="/admins/index">admin/indexへのリンク</a>
と書けば、
<a href="<?php echo $html->url("/admins/index"); ?>">admin/indexへのリンク</a>
と変換してくれる。
パラメータ付きのURLを指定したい場合は、
<a href="/admins/view/" param="$admin['Admin']['id']">admin/viewへのリンク</a>
と書けば、
<a href="<?php echo $html->url("/admins/index" . $admin['Admin']['id']); ?>">admin/indexへのリンク</a>
と変換してくれる。
※aタグはhrefのURLが/から始まっていない場合、一連の処理を無視する。
imgタグは
<img src="aaa.gif"/>
と書けば、
<?php echo $html->url("aaa.gif", array()); ?>
と変換してくれるし、
<img src="aaa.gif" width="150" height="150"/>
と書けば、
<?php echo $html->url("aaa.gif", array("width"=>"150", "height"=>"150")); ?>
と変換してくれる。
linkタグは
<link href="aaa.css"/>
と書けば、
<?php echo $html->css("aaa"); ?>
と変換してくれる。 ※他のパラメータは無視する。
scriptタグも同様で、
<script src="aaa.js">
と書けば、
<?php echo $javascript->link("aaa.js"); ?>
と変換してくれる。 ※他のパラメータは無視する。
※srcがhttpで始まっている場合、この変換は行われない。
最後に出力もタグの方が楽かな?と思い
outタグを作ってみた。
<out param="$user['User']['profile']" filters="h,nl2br"/>
と書けば、
<?php echo nl2br(h($user['User']['profile'])); ?>
と変換してくれる。
もちろん、
<a href="<?php echo $html->url("/admins/index"); ?>">
とすでになっているものは無視する。
では、設定方法。
まず、ここから本体をダウンロード。
ダウンロードしたファイルを解凍。
解凍後のviewsフォルダ以下を、app/views直下に配置する。
次に、app_controller.phpをapp直下に作成し、
<?php
class AppController extends Controller {
var $view = "Compile";
}
?>
と書く。 これは同梱のapp_controller.phpをそのままコピーしても構わない。
これだけ。
(app/tmpのパーミッションが777になっていないと動かないが、cakephpがそもそもエラーを吐くので割愛している)
そうすると、上の機能が効くはずだ。
バグ/機能改善/意見/感想/他諸々はコメントに書いてもらえるとありがたい。