Filterの作り方


maple

maple.iniから設定値を取り出す(参考)

$attributes = $this->getAttributes();
  • Var_Dump($attributes);
    array(7) {
      table => string(4) user
      user => string(8) login_id
      passwd => string(6) passwd
      level => string(10) user_level
      id => string(7) user_id
      login => string(14) auth/form.html
      auth_level => string(1) 3
    }

Filter内でリクエストパラメータを捕まえたい時

$container =& DIContainerFactory::getContainer();
$request =& $container->getComponent("Request");
$params = $request->getParameters();
  • Var_Dump($params);
    array(4) {
      action => string(11) upload_form
      userID => string(12) test@a.co.jp
      password => string(4) test
      submit_of_input => string(1) 
    }

Filter内からDIコンテナにオブジェクトを登録する時(例:FileUploadオブジェクトを"FileUpload"という名前でDIに登録)

$container =& DIContainerFactory::getContainer();
$fileUpload =& new FileUpload;
$container->register($fileUpload, "FileUpload");

Filter内から他のFilterがセットされているか調べたい時(例:[View]を取得)

$container =& DIContainerFactory::getContainer();
$filterChain =& $container->getComponent("FilterChain");
$filter_view = $filterChain->getFilterByName("View");
  • Var_Dump($filter_view); [View]がmaple.iniに設定されている場合
    object(filter_view)(1) {
      _attributes => array(1) {
        success => string(16) upload/form.html
      }
    }

Filter内から他のFilterに設定値を送り込みたい時(例:[View]にauth_error = "auth/error.html" をセット)

$container =& DIContainerFactory::getContainer();
$filterChain =& $container->getComponent("FilterChain");
$viewType['auth_error'] = "auth/error.html";
$filterChain->setAttributes("View",$viewType);
  • Var_Dump($filterChain->getFilterByName("View"));
    object(filter_view)(1) {
      _attributes => array(2) {
        success => string(16) upload/form.html
        auth_error => string(15) auth/error.html
      }
    }

Filter内からテンプレートをコントロールしたい時(エラー処理を使う)

$container =& DIContainerFactory::getContainer();
$actionChain =& $container->getComponent("ActionChain");
$errorList =& $actionChain->getCurErrorList();
$errorList->setType("auth_error");
$errorList->add("auth",$actionChain->getCurActionName());
  • $errorList->setType()を使うことでActionクラスをパスして直接[View]で指定したテンプレートを表示させる事ができる。この例は[View]の"auth_error"で設定されたテンプレートへ直行する。
  • $errorList->add()を使うことでテンプレートに値を渡す事ができる。ちょっと反則技ではあるが、この例ではアクションクラス名をテンプレートに渡す為にエラーメッセージにaddしている。
  • テンプレート側での呼び出し記述
    {errorList->getMessages assign=messages}
    {$messages.0}

Filter内からテンプレートに値を渡す(正統的なやり方)参考

$renderer =& Smarty4Maple::getInstance();
$renderer->register_object($key, $component);

最新の20件

2017-09-25 2014-07-03 2009-06-06 2006-09-22 2006-01-05 2005-11-10 2005-11-04 2005-10-31 2005-10-07 2005-06-20 2005-06-19 2005-06-18 2005-06-16

  • counter: 3592
  • today: 1
  • yesterday: 1
  • online: 1