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がそもそもエラーを吐くので割愛している)
そうすると、上の機能が効くはずだ。


バグ/機能改善/意見/感想/他諸々はコメントに書いてもらえるとありがたい。