formブロッックなんですね。すみません、最近 拡張フォームのソース見てないですが、
loadsurvey() と loadInput() のタグを出力しているメソッド viewに移動してそれ以外のメソッドをcontroller.php の view()から、読み込んで$this->set()で渡す。単純にいうとそういう感じだと思うのですが、現実は複雑そうですね。
Re: view.phpでredeclareが
2012年10月23日 at 19:49
controller部ではview.phpで分岐に必要な変数や、viewで変更させたい値のみを作成し、
html自体はviewで作成するのが基本だと思います。
関数をviewにおくということは使いまわすということでしょうか?
だとしたら、view.phpを同じフォルダに別ファイルで作成して
$this->inc()で対応できないでしょうか?
Re: view.phpでredeclareが
2012年10月24日 at 9:15
loadsurveyあたりを変えてcontrollerでHTML(テーブル)を出さずに、view側で出す様にするのが王道だと思います。
その他のやり方としては、viewで出力を一旦文字列かxmlとして変数に格納して、テーブルタグをdivタグに書き換えるやり方になると思います。
追記:
loadsurvey()をコピペして、loadsurveydiv()とかを作って、テーブルタグじゃなくてdivタグで出す様にして、view側でviewの内容に合わせてそれぞれを呼び分けた方が楽かもしれませんね。
その他のやり方としては、viewで出力を一旦文字列かxmlとして変数に格納して、テーブルタグをdivタグに書き換えるやり方になると思います。
追記:
loadsurvey()をコピペして、loadsurveydiv()とかを作って、テーブルタグじゃなくてdivタグで出す様にして、view側でviewの内容に合わせてそれぞれを呼び分けた方が楽かもしれませんね。
Re: view.phpでredeclareが
2012年10月24日 at 10:03
xmlは忘れてもらっていいと思います。
loadsurvey変えるのが一番いいと思いますよ
loadsurvey変えるのが一番いいと思いますよ
Your post has been saved and will be published after approval by the forum moderator.
tomoac
Re: view.phpでredeclareが
aclissさんはフォームのview.phpをご覧になったことがあると思います。
フォームのview.phpの最後に、controller.phpのfunctionを呼び出して、controller.php内でHTMLタグを出力していることをご存知と思います。
つまり、原則に反して、HTMLのタグをview.phpでなく、controller.phpで出しています。
実は海外からの要望で、フォーム項目の出力にテーブルで縦に並べるのではなくて、divのfloatで横に並べたいとの要望がありました。
これはいわゆる出力タグだけの問題なので、テンプレートで対応できないかと思っています。
しかしながら上記の通り、HTMLのタグをcontroller.phpで出力しているので、テンプレートで変更できません。そこで、なんとかHTMLの出力をcontroller.phpからview.phpに持ってきたいと思っています。