Ethna で PATH_INFO を使う

| | コメント(0) |


{project_basedir}/app/filter/ に Sample_Filter_PathInfo.php
を置く。

{project_basedir}/app/{project_id}_Contrller.php に以下を追加


var $filter = array(
+ 'Sample_Filter_PathInfo',


{project_basedir}/etc/{project_id}-ini.php に以下を追加

$config = array(
+       'url_type'    => 'PATH',
+       'url_divider' => '/',
+       'url_equals'  => '=',
url_divider と url_equalsは好きな値に変更可。

以下のようなURLでアクセスできる。
http://example.com/index.php/key1=val1/key2=val2/
ちょっとSEOっぽい感じ。

フォーム値も


$key1 = $this->af->get('key1');

のように取得できる。


リンクやリダイレクトする時にURLをベタで書くと区切り文字を変更したい時
などにめんどうなので、
こんな感じ(agaviからのパクリ)
の関数を {project_basedir}/app/{project_id}_Contrller.php に追加しておいて、


Sample_Controller::redirect(Sample_Controller::genUrl(null, $params));

みたいにすると良いかも。

さらに、


function smarty_function_ethna_uri($params, &$smarty) {
return Sample_Controller::genURL(NULL, $params);
}

みたいな Smartyプラグインを置いておけば、


<a href="{ ethna_uri action_user_view=true user_id=$user_id}"> 表示</a>

のようにテンプレートに書ける。


カテゴリ

 

コメントする