2010年3月18日木曜日

Controllerにアクション定義を追加します。具体的には、
app/Sample_Controller.phpを以下のように編集します。 
/**
  *  @var    array   forward定義
  */
 var $forward = array(
      /*
       *  TODO: ここにforward先を記述してください
       *
       *  記述例:
       *
       *  'index'         => array(
       *      'view_name' => 'Sample_View_Index',
       *  ),
       */
+    'login' => array(
+        'view_name' => 'Sample_View_Login',
+        'forward_path' => 'login.tpl'
    ),
 );
***********************
ですので、ここでは'login'というアクションに対応するファイル
を作成するので、app/action/Login.phpというファイルを以下の
ように作成すればよいことになります。
Ethna_ActionClassを継承した
perform() にメソッドの戻り値として遷移先の名前(後述)を返します 
 
<?php
class Sample_Action_Login extends Ethna_ActionClass
{
    function perform()
    {
        return 'login';
    }
}
?> 
************************
ですので、ここでは'login'という遷移名に対応するファイル
を作成するので、app/view/Login.phpというファイルを以下のように作
成します。 
<?php
class Sample_View_Login extends Ethna_ViewClass
{
    function preforward()
    {
        $this->af->setApp('now', strftime('%Y/%m/%d'));
    }
}
?> 
**********************
次に、テンプレートファイルを作成します。テンプレート
ディレクトリはtemplate/jaディレクトリで、(6)で'login.tpl'をテンプ
レートファイルに指定しているので、template/ja/login.tplを作成します。 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head></head>
<body>
Login View<br />
current time: {$app.now}
</body>
</html> 
******************
http://some.host/~foo/?action_login=trueにアクセスすると
 



0 件のコメント:

コメントを投稿