Sponsored Link

Ethna_Controller::_getActionName

Filed under: Ethna_Controller — admin @ 18:32:55

■呼び元
Ethna_Controller::_trigger_WWW


/**
* 実行するアクション名を返す
*
* @access private
* @param mixed $default_action_name 指定のアクション名
* @return string 実行するアクション名
*/
function _getActionName($default_action_name, $fallback_action_name)
{
// フォームから要求されたアクション名を取得する
$form_action_name = $this->_getActionName_Form();
$form_action_name = preg_replace(’/[^a-z0-9\-_]+/i’, ”, $form_action_name);
$this->logger->log(LOG_DEBUG, ‘form_action_name[%s]’, $form_action_name);
 
// Ethnaマネージャへのフォームからのリクエストは拒否
if ($form_action_name == “__ethna_info__” ||
$form_action_name == “__ethna_unittest__”) {
$form_action_name = “”;
}
 
// フォームからの指定が無い場合はエントリポイントに指定されたデフォルト値を利用する
if ($form_action_name == “” && count($default_action_name) > 0) {
$tmp = is_array($default_action_name) ? $default_action_name[0] : $default_action_name;
if ($tmp{strlen($tmp)-1} == ‘*’) {
$tmp = substr($tmp, 0, -1);
}
$this->logger->log(LOG_DEBUG, ‘-> default_action_name[%s]’, $tmp);
$action_name = $tmp;
} else {
$action_name = $form_action_name;
}
 
// エントリポイントに配列が指定されている場合は指定以外のアクション名は拒否する
if (is_array($default_action_name)) {
if ($this->_isAcceptableActionName($action_name, $default_action_name) == false) {
// 指定以外のアクション名で合った場合は$fallback_action_name(or デフォルト)
$tmp = $fallback_action_name != “” ? $fallback_action_name : $default_action_name[0];
if ($tmp{strlen($tmp)-1} == ‘*’) {
$tmp = substr($tmp, 0, -1);
}
$this->logger->log(LOG_DEBUG, ‘-> fallback_action_name[%s]’, $tmp);
$action_name = $tmp;
}
}
 
$this->logger->log(LOG_DEBUG, ‘< << action_name[%s] >>>’, $action_name);
 
return $action_name;
}

コメント (0) »

この記事にはまだコメントがついていません。

コメント RSS トラックバック URL

コメントをどうぞ