HTML_Template_Flexy

改造版Flexyのアップデート

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

休憩というか寝れない

やっぱり最低限のマニュアルは必要だわ・・ちょっとPHPに触ってなかったら前に自分で何作ったか全然思い出せない。。 ネットワークの設定ができたら次はPHPのドキュメント作りだなぁ。 やっぱりPukiwikiになるんだろうか。 あ・・そう言えばフレームワーク用…

まだ帰宅はしていないけれど

n314.comにWebメールからのアクセスがあるなぁ・・と思ったら某MLで紹介されてました。 期待して見た方、ちゃんとまとまってなくてすんません・・。 某N○Tの中の人と話し合いの場をつくってもらったり、そのついでに学会を覗いたり、論文その他諸々で精神的…

修正

http://2.suk2.tok2.com/user/gravelroad/?y=2005&m=09&all=0Flexyのfile_get_contents()に関して。 一箇所だけならともかく、たくさん修正しないといけないようだったので if ( phpversion() < '4.3.0' ){ function file_get_contents($data){ $arr_data = …

メモまとめ作成

http://www.n314.com/Flexy/ 分かりやすいように(?)日記のヘッダを編集してみた。 ちょっとヘッダって意識しづらいかなぁ・・。 後で要修正だ。

フォーム

Flexyを改良したりフレームワークである程度自動化してもやっぱり面倒くさい。 ラジオボタンやセレクトボックス等で選択して、エラーで戻ってきた場合。これは初期値を明示的に指定しなければならない。(多分) 自動的にするにはidとnameの対応から設定すれ…

id属性での動作の追加

一応nameとidがあったらidを優先するような動きに修正できた。 修正したのは Compiler/Flexy/Tag.php のファイル。 よく考えたらオリジナルのファイルをコピーして例えばFlexyExとか適当な名前つけて、それでFlexyのオプションでコンパイラを指定するのがま…

nameとid

フォームが2つ以上ある場合、nameが同じものが複数有る場合だとエラーになるからidで区別したい。 でも例えばselectタグとかにid書いても無視してnameの値が解釈されてるっぽい? radioタグみたいにidを見てくれないのか・・。 ソース見て確認できたら回避手…

flexyの属性値によるループ

できた。 めちゃめちゃ簡単に実装したけど、ホントにこれでいいんだろうか。。 Compiler/Flexy/Tag.php の parseAttributeForeach() 関数をコピペしてparseAttributeLoop() に変更して中身のforeachの部分をloopに変えただけ。 なのに今のところ正常に動いて…

また改造

前の修正だと {loop:var} は認識するけど <tr flexy:loop="var"> は認識しない。 これはどこでやってるんだろーと探してたらどうも Compiler/Flexy/Tag.php らしい。 しかもここは拡張性が低くて $ret = $this->parseAttributeForeach(); $ret .= $this->parseAttributeIf();って</tr>…

頭の中を整理

optionタグが特殊な処理って考えてたけど、inputタグの初期テキストを設定するときもFlexyを直接呼ばないとダメだよな・・・。 ユーザがビュークラスを毎回作って設定するのも面倒だし、フォーム処理用のクラスを作った方がいいのかな。 クラスというか構造…

リンク元

http://www.google.co.jp/search?q=Tokenizer.lex&hl=ja&lr=lang_ja&sa=X&oi=lrtip9 とか http://blog.goo.ne.jp/search/search.php?MT=flexy&status=select&type=Mozilla/Firefox とか ひぃーーー。 そりゃー元々検索結果が少なかったんだからこういうこと…

続・セレクトボックス

select の name 属性と同じ名前の変数名が配列だったら $flexy->setOption() を実行する。 っていう方式でいいかなぁ・・。 テンプレートに依存した特別な変数とかこれ以上作りたくないし、取り敢えずやってみますか。 やっぱり制約があると全部が全部自分の…

セレクトボックス

<select name="selectBox"> <option value="value1">value1</option> ・・・ </select>こーゆーやつ。 非常に困った。。今まではHTMLの解析なんて考えてなかったから普通にループで対応してたんだけど・・ <select name="selectBox"> {loop:SELECTOPTIONS} <option value="{value}" {selected}>{value}</option> {endloop:} </select>こんな感じでやってた。 が、Flexyだとselectタグにflexy:ignoreをつけ…

ループネスト

PHP $obj->arr = array(array('var1' => 'a', 'var2' => 'b'), array('var1' => 'aa', 'var2' => 'bb', 'nest' => array(array('nest1' => 'nestA', 'nest2' => 'nestB', 'var2' => 'nestC'), array('nest1' => 'nestAA', 'nest2' => 'nestBB', 'var3' => 'n…

ループできた!

PHPソース $obj = new StdClass; $obj->arr = array(array('var1' => 'a', 'var2' => 'b'), array('var1' => 'aa', 'var2' => 'bb', 'var3' => 'cc')); $obj->var3 = 'test'; $flexy->outputObject($obj, $elements); HTMLソース {var3} (上位階層)<br> {loop:ar…

ループ制御

HTMLに {loop:arr} {var1} {end:}っていうのがあると $arr に var1 をキーとした値があれば $arr['var1']を表示 なければ$t->var1 を表示 っていうようにしたかったんだけど・・。 コンパイルした時点では$arr['var'] があるかどうかが分からないんだよね。…

かなり苦戦

phpLexの作者はどういう環境でFlexyを開発してるんだ?? CVSからphpLex.exeを取ってきたけどそのままじゃ動かず。 Windowsで実行したら This program cannot be run in DOS mode. とか出るし。 これは再コンパイルだなーと思ってLinuxにDLするもmakeが通ら…

Flexyソース解析

Flexyに新しい機能をつけようとして試行錯誤中。 Pluginで出来るらしいってことは分かったんだけど、やりたいのはもっと根本的な変更。{foreach:arr,data} の動作を変えたい。 流石に変えるのは不都合だから新しい名前で{loop:data}とか作りたい。 そう思っ…

Flexy使い始め

http://pear.php.net/manual/ja/package.html.html-template-flexy.php マニュアルとにらめっこしてるんだけど・・マニュアル自体も適当な感じがする。 それにしてもホントに日本語の解説とかサンプルとか全然無いのね。 http://www.hawk.34sp.com/stdpls/ph…

Flexyソース解析

コンパイル機能有りのテンプレートを使うとしたらFlexyになるのかなぁ。 WEB+DB PRESSのvol.18を買いに行ったんだけど、あまり詳しく出てなかったからやめておいた。 そんでどうも気になるのがforeachの書き方。 ループの中に変数が沢山ある場合って <tr flexy:foreach="arr,val"> <td>{val["</td></tr>…

さっそく行き詰まる・・

<form action="./"> <input type="hidden" name="action" value="view"> <input type="submit"> </form> <form action="./"> <input type="hidden" name="action" value="edit"> <input type="submit"> </form>同じ名前が2つあるとかでエラーが出るんですけど・・・! 何か根本的な理解が足りてないな・・。

HTML_Template_Flexy解説

ぼちぼち書いてく予定・・(希望