具体的にやりたいことを書きますね。
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に持ってきたいと思っています。
Re: view.phpでredeclareが
2012年10月23日 at 15:01
もう一度なにがしたいか、書きます。
複雑な処理をしながら表示するブロックがある。
その複雑な処理の部分は、コードが多いので、controller.phpに記述し、処理の結果の表示、つまりタグ出力部分のみをview.phpに書きたい。view.phpに置きたい理由は、テンプレート切り替えで表示方法を変更できるようにしたいから。
そういうことからcontroller.phpからview.phpの表示関数を呼び出したいと思いました。
しかしながら、view.phpに関数は置けない。
だとすると、いまcontroller.phpに置いてある長ーい処理をごっそり、view.phpに持って来ないといけないのでしょうかね。
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.
acliss
Re: view.phpでredeclareが
html自体はviewで作成するのが基本だと思います。
関数をviewにおくということは使いまわすということでしょうか?
だとしたら、view.phpを同じフォルダに別ファイルで作成して
$this->inc()で対応できないでしょうか?