改造版Flexyのアップデート

flexyのバージョンアップに追いついてなかったのでフレームワークのバージョンアップのついでにFlexyのパッチも作ってみる。
ついでと言うほど簡単ではないが・・自分の書いたNishimura's Siteこれがかなり役に立つ。


一応 Tokenizer.lex を修正せずにlexにかけてみてdiffでチェック。
微妙に違う箇所がある・・。
cvsの方は$_fatalという変数が追加されている。
というかPEARパッケージの方はv1.61になっているけどcvsの1.61は全然違うっぽくて、1.63の最新版が一番近い。


大きな変更は無さそうなのでこれを元にTokenizer.phpを作成することにした。


HTML_Template_Flexyのオプションで

$options = array('compiler'    => 'MyCompiler',
                 'compileDir'  => 'compiled',
                 'templateDir' => 'templates');
$flexy = & new HTML_Template_Flexy($options);

というようにコンパイラを指定できる。
これを利用して、ファイルを直接修正していたものから追加という形に変更した。
利用方法は

'compiler' => 'FlexyEx'

これでループ拡張とラジオボタン以外のエレメントにidを使える。
hiddenの拡張はコンパイラの追加だけでは無理っぽいので仕方なくFlexy.phpにメソッドを追加した。


追加ファイルとパッチファイルだけアップしようと思ったけど、やっぱり面倒だから次のバージョンからのフレームワークの中に丸ごと入れとこう。
コンパイラにFlexyExを指定しなければ通常のFlexyの動作となる。