トップページ⇒php
982コメント331KB

【PHPフレームワーク】Ethna【スケルトン自動作成】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2005/08/03(水) 21:00:39ID:TuHx69hT
国産フレームワーク、Ethnaでいい意味で手抜きなプログラミングライフを。

Ethna -PHPウェブアプリケーションフレームワーク-
http://ethna.jp/

SourceForge.jp: Project Info - Ethna
http://sourceforge.jp/projects/ethna/
0502nobodyさん2006/09/20(水) 14:30:41ID:Ni5iDH7a
デフォルトのテンプレートディレクトリをja以外にするにはどこに書くのが正しいですか?
0503nobodyさん2006/09/20(水) 14:55:50ID:???
>>502
App_Controller::getTemplatedir
0504nobodyさん2006/09/20(水) 16:30:50ID:???
>>494

間違えて、preforwardにコードを書いていません?
0505nobodyさん2006/09/20(水) 18:30:04ID:???
>>503
ありがとうございまっす
0506nobodyさん2006/09/20(水) 22:54:15ID:???
>>505
あんたopenPNEの人?
その語尾がキモイ。
0507nobodyさん2006/09/20(水) 23:13:16ID:???
>>506
すみませっん
0508nobodyさん2006/09/20(水) 23:29:08ID:???
>>507
どういたしましって
0509nobodyさん2006/09/20(水) 23:55:52ID:???
>>508
こっちらこそ
0510nobodyさん2006/09/21(木) 04:53:57ID:uR4E3gkh
ありがとうございまつw
0511sage2006/09/21(木) 19:25:16ID:amkCKdmG
>>500 >>504
ご指摘ありがとうございます! ご指摘どおりpreforward()をオーバライドしていました。

ですが、forward()に書き直して見ましたが、駄目でした。
メールアドレスにタイプしても、なにもエラーが表示されません。
onkeyup='alert("key Up");'なら動作するのでjavascript自体は問題なさそうです。

ためしに、Flare_View_Jsonのforward()でprint_r($json_object)と記述して、
送信ボタンをクリックすると意図したエラーが表示されるのですが、
上記を記述しないと、Web画面上は真っ白が表示されます。
 ※/etc/flare-ini.php で 'debug' => 'true'としてます。

う〜〜ん、ヘルプ プリーズ。
0512nobodyさん2006/09/21(木) 22:02:04ID:???
cli以外でスケルトン作成できんとですか?
phpeditor使いたいとです
0513nobodyさん2006/09/22(金) 00:20:14ID:???
cliでのスケルトン作成に何か不満が?
まぁスケルトン参考にして、必要な物を自分で用意すればいいじゃないか
0514nobodyさん2006/09/22(金) 13:12:23ID:???
フォーム画面->確認画面->処理

という流れのアクションが30個ほどあります。
確認処理が地味にうざいのですが、
確認画面の部分を30個分テンプレ用意する方法と、
確認画面の部分を変数に入れて1つのテンプレから動的に確認画面を表示
させる方法を思いつきました。

できれば後者で行こうと思いますが、
もっと良い方法やスマートな記述法があれば教えてください。

また、今回のような場合に使えるメソッドはないでしょうか?
0515nobodyさん2006/09/23(土) 13:04:01ID:???
なんでEthnaのテンプレートディレクトリはtemplate/ja なの? ja
0516nobodyさん2006/09/23(土) 13:42:38ID:???
ja がなければないで動くから、ja ディレクャgリ消してる。
0517nobodyさん2006/09/23(土) 14:00:20ID:???
どうしてjaってディレクトリを用意してあるのかが気になるんですが
0518nobodyさん2006/09/23(土) 14:34:34ID:???
全世界言語対応をにらんでる
0519nobodyさん2006/09/23(土) 17:47:51ID:???
CVSリポジトリに久々にコミットがあったぽいね。
preview3を待ち望んでる身としては嬉しい限りだけど
9月末に出てくれるかな。。。
0520nobodyさん2006/09/23(土) 23:15:08ID:???
画面からフォーム値を取得するのに、わざわざActionFormの中に記述するのが面倒なんですが
なんとかならないんでしょうか?
0521nobodyさん2006/09/23(土) 23:22:39ID:???
>>520
記述するのが面倒ならASP.NET+Visual Studio使ってみてはいかがでしょうか?
一考の価値はあるかと。

EthnaEditorってのもあるけど。
0522nobodyさん2006/09/24(日) 00:57:44ID:???
ASPはちょっと・・・・
コピペでがんばります。ありがとう
0523nobodyさん2006/09/24(日) 01:10:47ID:???
>>520
setFormVars()をオーバーライドするとか。
mod_rewriteでCoolURIにしてるんだけど、POSTだと$_POSTの内容しか
取得しないので、自分で追加してる。

$_REQUESTから全部取らないのってメモリ節約のため?
それとも指定以外のフォーム値は受け取らないというセキュリティへの配慮?
意図しないフォーム値は使わないだけだから、とりあえず全部格納しても
問題なさそうだけど、理由があるなら教えて偉い人。
0524nobodyさん2006/09/24(日) 02:35:31ID:???
session値をDBに格納したいんですが
>>290 よりスマートな方法ないでしょうか?
0525nobodyさん2006/09/24(日) 11:27:27ID:???
preview3では是非、?action_(アクション名)=trueを/(アクション名)という形式でアクセスしたいもんだ
0526nobodyさん2006/09/24(日) 22:00:35ID:???
>> 525
なんでそんなのを標準にしたいのかはわからんが、今でも
_getActionName_Form()の上書きでできるし、
CVSではUrlHandlerも追加されてるぞ?
0527nobodyさん2006/09/25(月) 00:12:30ID:???
>>525
その方法が標準になった場合って、サブミットボタンでアクションを振り分けるのって
できなくなるよね?あったら教えてください。

perform()
{
if ($this->af->get('submit_action_a'){
.........
} else if ($this->af->get('submit_action_b'){
.........
}
}

とかは無しね。もしかして、それでアクションチェーンがどうたらとか
言ってる奴らがいるのかな?
0528nobodyさん2006/09/25(月) 10:54:53ID:???
>>525
つmod_rewrite
0529nobodyさん2006/09/25(月) 15:06:44ID:???
まあスマートルータは流行りだから
そのうちEthnaにも取り入れられると思うよ
0530nobodyさん2006/09/26(火) 21:09:48ID:???
Ethnaのサンプルみたんですが、DBにアクセスするクラスは複数のActionから参照されるような
つくりをしていましたが、Action別にそれぞれ用意したほうが分かりやすくないですかね?

みなさんはどうやってますか?
0531nobodyさん2006/09/26(火) 21:15:44ID:???
>>530
そっちの方がありえないだろ
0532nobodyさん2006/09/26(火) 21:36:20ID:???
>>531 どっちほうがありえない?
0533nobodyさん2006/09/27(水) 09:47:21ID:???
Action別に作った場合に、単純に変更作業の時に
コードがばらけていて面倒とかはあると思いますよ。

オブジェクト指向の勉強とかするといいと思いますよ。
(語れる程詳しくは無いので、語らないですけどw)
0534nobodyさん2006/09/27(水) 13:42:42ID:???
Ethnaはオブジェクト指向を勉強するきっかけとしてはなかなかいいかもしれないね。
0535nobodyさん2006/09/28(木) 08:14:17ID:???
逆に、複数のActionで同じ処理が使われている場合、変更があったときに
すべての使用されているActionを見直さないといけないっていう問題がでると思うんですよね。

こういうのって画面単位で分担作業するものだから、お互いに変更時に支障がないように
作るものなんじゃないかなぁ。

0536nobodyさん2006/09/28(木) 09:36:33ID:???
「想定していなかった新機能を追加」とかでもやらない限りそんな大きな仕様変更はやらんでしょ
それがどんな作りなのかは分からんけど、どうしても回避出来ないよっぽどの理由がない限り共用にしとくのが無難
0537nobodyさん2006/09/28(木) 22:07:34ID:???
>>536

そうなのかぁ
ということはいろんな処理に使えるようにSQLはなるべくシンプルな処理にしておくのが無難なのかな
複数Joinとかして、1つの画面に必要なデータをいっぺんにとってくることもできるけど、
ほかの画面では不要なものが多すぎて使えないってこともあると思うし。

なんか微妙だけど、共通化(オブジェクト指向ではない)しようと思います。
ありがとうございました。
0538nobodyさん2006/09/29(金) 01:56:32ID:???
>>537
1年前の俺みたいだ。w
あと半年ほど使いまくってEthnaで10個くらい同じことやれば
「あー、この辺共有か」とか分かると思う。

自分はもうEthna使わないでPHPって書いてないからな。
0539nobodyさん2006/09/30(土) 18:02:23ID:???
他は満足してるんだけども
Ethna_AppObjectの検索部分が使いづらくてたまらない

$db->getall();//テーブル全レコード取得
$db->search($column_name,$value);//$column_nameが$valueのレコードを取得

俺の使い方だと、これだけで8割方、用が足りるんだが・・
0540nobodyさん2006/09/30(土) 23:20:58ID:???
>>539
全部レコード取得
$this->appmanager->getObjectPropList('AppObjectClassName');
$valueのレコード
$this->appmanager->getObjectPropList('AppObjectClassName', null, array($column_name) => new Ethna_SearchAppObject($value, OBJECT_CONDITION_EQ));

後者をラップするメソッドをAppObjectの基底クラスに作ってやれば、そんな面倒じゃないと思うけど。
0541nobodyさん2006/10/01(日) 00:53:21ID:???
ORMを作ろうとしたときinsert/update/delete は簡単にできるけど、
selectは様々なバリエーションがあってむずいな。
joinとかhavingとか、そのへんまでスマートにこなしてるORMってある?
RORのActive Record が一番ですか?
05425392006/10/02(月) 14:09:24ID:???
>>540 
ありがとうございます
楽になりました
0543nobodyさん2006/10/02(月) 16:34:53ID:???
複数DBの使用法がよく分かりません、

http://www.ethna.jp/ethna-document-dev_guide-db.html
上の例だと、
$this->backend->getDB('r');
した場合、
勝手に iniファイルの
'dsn_r' => 'mysql://user:pass@unix+localhost/dbname',
の設定を拾ってくるんでしょうか??

$this->backend->getDB('hoge');
なら
'dsn_hoge' => 'mysql://user:pass@unix+localhost/dbname',
でしょうか?
0544nobodyさん2006/10/02(月) 17:38:21ID:???
試してから聞け
0545nobodyさん2006/10/03(火) 16:07:08ID:???
>>544
上は試して動作したからハイOKという類の内容ではない気が。
0546nobodyさん2006/10/03(火) 23:18:59ID:???
なんで?
全く違うDSN書けば違いがわかると思うんだけど。
0547nobodyさん2006/10/04(水) 11:00:18ID:???
>>543
概ねあってるけど、Controllerの$dbにも書いておくべし
0548nobodyさん2006/10/05(木) 14:55:25ID:???
DBでsessionしたいわけなんですが、
普通に自分で関数カキカキしてactionディレクトリあたりに
入れればつかえる??
0549nobodyさん2006/10/06(金) 10:09:32ID:O2kp1NLj
ethnaの公式サイト見ると、
app/action 階層の下に
system1_hoge.php
system2_hoge.php
と設置する場合の手順が書いてありますが、
system1/hoge.php
system2/hoge.php
という風にアクションファイル自体を system1 とsystem2 で設置ディレクトリを分けたいと考えています。

この場合のアクション定義などが非常にこんがらがってしまったのですが、
どなたか助言おながいします。
0550nobodyさん2006/10/06(金) 11:36:19ID:???
Call to undefined function: getrow()
のエラーが出るんだけど、
PEARのDBクラス継承してるんですよね?
ほわい?
0551nobodyさん2006/10/06(金) 12:07:20ID:???
>>550
MLやフォーラムくらい嫁
0552nobodyさん2006/10/06(金) 12:35:34ID:???
>>551
サンクス

てか継承してないのかよ、表記修正してくれよ、
とおもいますた
0553nobodyさん2006/10/06(金) 13:47:06ID:???
アクションクラスで
$this->af->setApp('hairetu', $hairetu);
して
tplで下のようにしてみたんですが、機能しません。
{section name=cnt loop=$app.hairetu}
ほわい?
0554nobodyさん2006/10/06(金) 15:35:21ID:Ky3gzt1x
存在しないファイルをrequireしようとしたら
fatal Errorになったんですけど、こういう場合のエラー処理は
ethna上でのエラー処理に組み込むことはできないんでしょうか?
0555nobodyさん2006/10/06(金) 18:01:45ID:???
E_ERROR(FATAL)はエラーハンドラでも上書きできない
0556nobodyさん2006/10/06(金) 19:31:49ID:???
今更ながらEthna 2.3.0 Preview2リリースを入れてみたんだけど、
Ethna_ClassFactoryの変更部分で悩んでいます。

app/[project_id]_Controller.php の $class メンバに
'user' => 'Some_Foo_Bar',
と付け足すのは良いとして、
$user =& $this->backend->getObject('user');はどこに記述するのでしょうか?
Ethna_ActionFormでいちいち記述するのかな?

マニュアル直ってないし・・・
ttp://ethna.jp/ethna-document-dev_guide-appobj-manager.html
0557nobodyさん2006/10/07(土) 01:27:47ID:???
>>556
なんかねー、そのへん俺もよくわからんのだけど、とりあえず
class Hogeproject_User extends Ethna_AppObject
class Hogeproject_UserManager extends Ethna_AppManager
って作ったら、そのファイルをControllerでincludeして

$user =& $this->backend->getObject('User');
$user_manager =& $this->backend->getManager('User');

ってやってる。$classメンバには何も付け足してない。
なんつーか、以前より面倒になった気がするし。w
0558nobodyさん2006/10/07(土) 11:29:23ID:???
>>557
それは面倒ですなw
Ethna_Controllerの$classメンバに追加するのが標準的なやり方
見たいなのでもうちょっと簡易な方法があるといいのだけれど。

ウェブサイトには「(不評なら戻します@preview2)」って書いてあるけど
MLでは話題にすらなってないし、このまま定着するのかな?
とにかくサンプルかもうちょっと詳細なヘルプが欲しいです。
0559nobodyさん2006/10/07(土) 13:48:08ID:???
繰り返し部分を別ファイル(hoge.inc.php)にして require() して使いたいのですが、
どうすればいいでしょうか?

require("絶対パス/hoge.inc.php");
しか思いつきませんでした。
0560nobodyさん2006/10/07(土) 15:26:26ID:???
>>559
>>556-558の話がまさにそう。

最新版の話でなかったら、>>566のURLに詳しく載ってる。
0561nobodyさん2006/10/07(土) 18:33:16ID:???
ClassFactoryからgetManager()するならContollerでのincludeも
$classへの追加も不要でしょ。
多少面倒な気もしてるけど、俺はActionClassで毎回
$hoge_manager =& $this->backend->class_factory->getManager('Hoge');
$hoge_manager->getHogeList();
とかやってる。もしかして間違ってる?
05625572006/10/08(日) 00:31:43ID:???
>>561
いや、君が正解だと思う。
おいら、$this->backend->class_factoryプロパティを知らなかったよ。THX.

しかし、Ethnaって「多少面倒な気も」というのにいまいち合致しないよね。イメージ的に。
というのは、$this-->appmanager->って、PHPの
「メソッドを追加できないくせにプロパティはE_NOTICEも吐かずにガンガン追加可能」
っていう特徴を活かしてるなって思ったから。その辺がEthnaの「絶妙に妥協」というのに
共感を覚えてたところでもあって。

というか、シングルトンでAppObject/AppManager/ActionClass/ViewClassで
Managerオブジェクト(ActionFormオブジェクトもだけど)を持ち回ししてるところに
「すげー」って思ったのだ。最初。それが無くなったのは残念。

あと、PHP5なら
$this->backend->getManager('Hoge')->hogeManagerMethod();
ができるよね。だから
$this->gm('Hoge')->hogeManagerMethod();
くらいまで簡略化できるなら従来の
$this->hoge->hogeManagerMethod();
と同等と思える。
0563nobodyさん2006/10/08(日) 13:29:42ID:???
App_ActionClassのコンストラクタで

parent::Ethna_ActionClass($backend);

$c =& $backend->getController();
$manager_list = $c->getManagerList();
foreach ($manager_list as $k => $v) {
$this->$k =& $backend->getManager($v);
}

こうしてやれば、従来どおりなわけだが
05645632006/10/08(日) 13:34:23ID:???
http://www.itt-web.net/modules/bwiki/index.php?Ethna2.3%A4%C7AppManager%A4%CE%A5%D5%A5%A9%A5%ED%A1%BC
こことか参考にしてみたらいいと思う。
0565nobodyさん2006/10/09(月) 10:51:17ID:???
フォーム値の検証とフィルタについてなんですが、
フィルタをフォーム値検証の前に実施する方法は無いでしょうか?

ある変数を半角英数字しか受け付けないように設定、
かつ全角で受け付けたときには自動的に半角にするようフィルタを設定
しているのですが、
全角で入力してしまうと、validate()が0にならないためです。
0566nobodyさん2006/10/09(月) 13:02:01ID:???
実際のところ、クラスのメンバ変数として何が定義されているかわからないのに
Controllerの$managerに追加された名前で$this->hogeとアクセスできてしまうのは
問題ありまくりだし、気持ち悪かった。

AppManagerの呼び出し方にワンクッション追加されただけだから、個人的にはそこまで
面倒は感じてないし、記述が長いならメソッドひとつ仲介させれば済む話だと思う。

562氏の言うとおり、ActionFormやAppManagerがAction/Viewを問わずリクエスト内で
自由に使えるのは他のフレームワーク(symfonyとかZend Frameworkとか)には無い考え方で
自分がEthnaを気に入った理由のひとつだけど、そのメリットは無くなってないんじゃないかな?
0567nobodyさん2006/10/09(月) 18:37:23ID:NhVn4oaT
毎回全てのAppManagerを読み込む従来どおりより新方式のほうがいいなー。
05685622006/10/09(月) 19:52:52ID:???
>>566
>問題ありまくりだし、気持ち悪かった。
実際に問題と言うと
・DB接続しなけりゃ使えない
・Manager全てnewしてるから(シングルトン使ってるとはいえ)重い
くらいかな?他に何かある?Managerって作ってもせいぜい20くらいだったから
重いとは思わなかったけど。

キモイのは確かに気持ち悪かったけど、「PHPだしいいじゃん」という気にもさせてくれる。
その辺が「絶妙に妥協」なのかなと。

で、気持ち悪さを払拭しようとすると、Action/View/AppManager/AppObjectそれぞれを
ラップしたクラスでoverloadを使って、プロパティへのアクセス方法を定義してやれば
ちょっとは気持ち悪くなくなると思う・・・。
http://jp2.php.net/overload

自分的には「前のが便利、だけど(きっとメリット色々ありそうだから)新方式に従います」
って感じ。
05695662006/10/09(月) 20:38:58ID:???
んーと、ActionClassのコンストラクタとかでチェックもせずに
上書きしてるから、メンバ変数が破壊されるってことです。

既存のもので言うと、試しにControllerの$managerに
$manager = array( 'af' = > 'AirFrance' );
とか入れてみるとActionFormが使えなくなるのが解ると思う。
($this->af はActionForm じゃなくて AirFrance になったからね)

$managerに設定する値についての注意事項も書いていないし、使う側が
注意していればいい、というには危険な仕様じゃないかな。
05705622006/10/09(月) 21:02:06ID:???
>>569
>んーと、ActionClassのコンストラクタとかでチェックもせずに
>上書きしてるから、メンバ変数が破壊されるってことです。
あぁ、なるほど。すっごい盲点でした。
managerが増えすぎていった場合、ハマりポイントになりそうですね。
0571nobodyさん2006/10/10(火) 07:39:28ID:???
PHPだし。
厳格なのがよければにしとけば。
0572nobodyさん2006/10/10(火) 07:40:00ID:???
抜けた。
Javaにしとけば。
0573nobodyさん2006/10/12(木) 12:29:20ID:???
ttp://ethna.jp/pipermail/users/2006-June/000380.html
これと同じエラー(mysql_close)起きてるんですが、
ethna本体とか弄らないと厳しいんでしょうか・・・・
他に解決方法きぼんぬ
0574nobodyさん2006/10/12(木) 17:17:50ID:???
本体を自分でいじりたくないなら、2.3.0pr1以降か、CVS版をつっこむくらいしか。
あとは、継承してそこにパッチを当てておけば、後ほどバージョンアップしても気にならずに済むかも。
stableの保守も考えてほしいよね。
0575nobodyさん2006/10/16(月) 16:19:02ID:???
関数ぱっと作ってperform()内で使いたい場合、
function kansuu()をperform()内に書いて
$this->kansuu で呼び出すだけでOK?
0576nobodyさん2006/10/16(月) 20:51:20ID:???
>>575
素で言ってるならPHPのマニュアル100回読み直してこい
0577nobodyさん2006/10/16(月) 22:29:35ID:???
PHPっつーか、オブジェクト指向の本読んだほうがいいね。
0578nobodyさん2006/10/17(火) 13:52:04ID:???
ethna から pear 使用するためにはどうすればよかとでしょうか。
0579nobodyさん2006/10/17(火) 15:06:57ID:???
>>578
作ったプロジェクトにあるlibフォルダに解凍する。
05805782006/10/20(金) 11:47:43ID:???
>>579
サンクスです、申し訳ないついでに
呼び出しの方法もきぼんぬ
0581nobodyさん2006/10/20(金) 13:43:30ID:???
>>580
579じゃないけど
Controllerでincludeするのが一般的だと思う。
使うときは普通に使いたいところで使えばいい
0582nobodyさん2006/10/21(土) 09:57:55ID:???
smartyフィルタってsmartyのプラグインディレクトリに置くんですよね?
フィルタが見つからないって言われる…
05835822006/10/21(土) 11:27:38ID:???
自己レスです。
コントローラーで、requireしなきゃいけなかったんですね。
なんかめんどくさいような。
0584nobodyさん2006/10/21(土) 12:28:34ID:???
>>581-583
まとめて間違いだ。
0585nobodyさん2006/10/21(土) 20:49:07ID:???
>>584
>>582は間違いだと思うが、他は何がおかしいの?
俺も同じようにしてるんだけど、何か違う方法でもあるの?
0586nobodyさん2006/10/22(日) 21:38:10ID:bEm1HQtN
とあるページにGETとかで送られてきた値を、ActionFormのチェック機能で、
customで関数を作って値をチェックしたいとします。
で、それは送られてきた値がDBに該当のレコードがあるかどうかっていう感じ
のことをしたいのですが、チェックするメソッド自体はManagerに実装してます。
それでActionFormクラス内にcheck_valueというメソッドを作り、そっからManager
クラスを呼びたかったんですが、呼べませんでした。
公式サイトには、「上の3以外のクラスで使いたい場合は*2、Ethna_BackendのgetManager([manager_name])で取得できます。」
って記述があったんですが、ActionFormはbackendも持ってないみたいで取得できず…。

こういう使い方は想定してないんでしょうか?
それとも俺のやり方がクソなんでしょうか。

まぁprepare関数内でやればいい話なんでしょうけど…。
せっかくなんでActionForm内でチェックしたいです。

何かいい方法あれば教えてください。
0587nobodyさん2006/10/22(日) 21:46:29ID:???
>>585
_smartyプラグインは登録もしないとダメだよね。
_PEARってControllerで全部includeしないでしょ。使うところでincludeしてるだけで。
0588nobodyさん2006/10/22(日) 23:30:44ID:???
>>586
backendじゃなくてcontrollerとれ
0589nobodyさん2006/10/23(月) 00:30:27ID:???
smartyのプラグインは、コントローラの$directory['plugins']に任意のディレクトリを指定しておけば
そこをsmartyの$plugins_dirに登録してくれるからそれでいいんでない?
0590nobodyさん2006/10/23(月) 12:53:41ID:iU9TDYVm
>>588
すみません。どうやってとればいいんでしょうか?
ActionFormクラスのコンストラクタは確かにcontroller持ってるみたいですが、
メンバ変数には入ってないぽいのでEthnaのソースいぢるしか方法思いつきません…。
0591nobodyさん2006/10/23(月) 13:41:47ID:???
>>590
試してないけど、
 $ccc =& Ethna_Controller::getInstance();
ではだめかな?
0592nobodyさん2006/10/23(月) 15:33:36ID:???
>>587
>>585の言いたいところはそこじゃないと思われ
05935822006/10/23(月) 15:53:14ID:???
>>589
pluginディレクトリを指定するところがあったんですね。
見落としていました。勉強になります。
個人的には解決です。ありがとうございました。
0594nobodyさん2006/10/24(火) 14:00:42ID:???
VIEWのpreforward内で、
アクションクラスで使った変数を取得するには
どうすればいいんでしょうか?

作成中のソフトで
データベースの status というフィールドを 1〜5 に割り当ててるんですが、
表示させるときには 1->普通 2->駄目 3->最悪
という感じで数字ではなく日本語で表示させたいと思ってます。
よくわからんのですが、
この1を普通と表示させるようなことは
ビューでするというのが一般的なポリシーになるんでしょうか。
0595nobodyさん2006/10/24(火) 22:19:26ID:???
どこまで汎用的にするかによると思うけど、viewかtemplateでいいんじゃね?
0596nobodyさん2006/10/25(水) 01:46:10ID:???
>>594
基底のViewクラス作ってstatusを全部のViewで有効にするか(その場合Viewは省略しないこと)
全てのstatusを継ぎたいViewClassでextends ViewWhatStatusDefined して
そのpreforwardメソッドでド頭に
parent::preforwardを全部させておけ。
0597nobodyさん2006/10/25(水) 04:26:17ID:QhoBwbI3
>>469

おれは、
/index.php?action_static=true&file=page1
/index.php?action_static=true&file=page2
/index.php?action_static=true&file=page3

ってな感じで、

function preform() {
return $this->af->get('file');
}

ってやってるよ。

# かなり古い記事に反応していまった自分が痛い(汗)
0598nobodyさん2006/10/25(水) 20:28:02ID:???
痛いね
473でほぼ同じの出てるし
0599nobodyさん2006/10/26(木) 23:33:48ID:???
ウェブサイトの左側部分を動的なプルタウンメニューを置いてます。
右側がメニューで選択した内容を表示させる部分としてます。

この場合、左側部分はどのアクションでも常に同じ内容を表示しているわけで、
できれば include とかすると楽なんですが、
ethnaでincludeのが適切なのか良く分かりません。
(actionクラスでincludeかつtplでinclude??)
またincludeする場合も相対パスでどうやって記述すればいいのか、
が分かりません。
(よく本体は設置場所を動かすので、影響を受けないように相対パスで
指定したいと考えています。)

助言おながいします
0600nobodyさん2006/10/27(金) 01:36:41ID:???
>>599
http://www.itt-web.net/modules/bwiki/index.php
の
「テンプレートからEthnaのActionを起動」
とかどう?
06015992006/10/27(金) 13:23:57ID:???
>>600
レスサンクスです
「SmartyPluginに下記の関数を用意」のところなんですが、
直接smarty自体を弄る必要が出ますよね?
ここなんとかならんでしょうか?
■ このスレッドは過去ログ倉庫に格納されています