<?php
/** 
 * サンプルクラス
 *
 * 2. セッションの使用 
 *
 * @package   SyL
 * @author    k.watanabe <k.watanabe@syl.jp>
 * @copyright 2006 k.watanabe
 * @license   http://www.opensource.org/licenses/lgpl-license.php
 * @version   CVS: $Id: index.php,v 1.1 2007/01/03 11:16:50 seasonstream Exp $
 * @link      http://www.syl.jp/
 */
class Example2_Index
{
    var $parameter1;
    var $parameter2;
    var $parameter3;

    /**
     * コンストラクタ
     *
     * @access public
     */
    function Example2_Index()
    {
        // アクションの初期処理が記述できます。
        // /examples.php/example2/ にアクセスした場合は、アクションメソッドを定義していないので、
        // この処理で終了し、$template_dir/example2/index.html テンプレートが読み出されます。
    }

    /**
     * アクションパラメータがsession1の場合のアクションメソッド
     *
     * @access public
     * @param object リクエストオブジェクト
     * @param object データ管理オブジェクト
     */
    function executeSession1(&$request, &$dm)
    {
        // セッションパラメータをセット
        $request->setSession('parameter1', 'セッションページ1です');
        // ビューに渡すパラメータをセット
        $this->parameter1 = $request->getSession('parameter1');

        // $template_dir/example2/session1.html テンプレートへ遷移
        $dm->setTemplateFile('example2/session1.html');
    }
  
    /**
     * アクションパラメータがsession2の場合のアクションメソッド
     *
     * @access public
     * @param object リクエストオブジェクト
     * @param object データ管理オブジェクト
     */
    function executeSession2(&$request, &$dm)
    {
        // セッションパラメータをセット
        $request->setSession('parameter2', 'セッションページ2です');
        // ビューに渡すパラメータをセット
        $this->parameter1 = $request->getSession('parameter1');
        $this->parameter2 = $request->getSession('parameter2');

        // $template_dir/example2/session2.html テンプレートへ遷移
        $dm->setTemplateFile('example2/session2.html');
    }

    /**
     * アクションパラメータがsession3の場合のアクションメソッド
     *
     * @access public
     * @param object リクエストオブジェクト
     * @param object データ管理オブジェクト
     */
    function executeSession3(&$request, &$dm)
    {
        // セッションパラメータをセット
        $request->setSession('parameter3', 'セッションページ3です');
        // ビューに渡すパラメータをセット
        $this->parameter1 = $request->getSession('parameter1');
        $this->parameter2 = $request->getSession('parameter2');
        $this->parameter3 = $request->getSession('parameter3');

        // $template_dir/example2/session3.html テンプレートへ遷移
        $dm->setTemplateFile('example2/session3.html');
    }

    /**
     * アクションパラメータがsession4の場合のアクションメソッド
     *
     * @access public
     * @param object リクエストオブジェクト
     * @param object データ管理オブジェクト
     */
    function executeSession4(&$request, &$dm)
    {
        // 全セッションパラメータを削除
        $session =& $request->getSessionObject();
        $session->deleteParameterAll();

        // ビューに渡すパラメータをセット（削除されたか確認）
        $this->parameter1 = $session->getParameter('parameter1');
        $this->parameter2 = $session->getParameter('parameter2');
        $this->parameter3 = $session->getParameter('parameter3');

        // $template_dir/example2/session4.html テンプレートへ遷移
        $dm->setTemplateFile('example2/session4.html');
    }
}

?>
