PEAR::Pager使った。でPEARのドキュメントにそってPagerを使ったわけですが、デフォルトの状態だと、GETのクエリをわたしてページを指定するようになってます。うちのサイトは今までPATH_INFOでわたしてきたので、PATH_INFOにしたい所だったのですが、urlVarにはGETの名前しか渡せないのでこれをいじるにはoverrideしかないかな。とあきらめていた所、IRCで

ryerw ちなみに
ryerw コンストラクタでpathに/を入れるとfileNameにフルパスを入れることができるので
ryerw /TestApp/index.php/page=%d/action=Hoge/module=Site とかできるぞ♪

と教えていただく。ありがとうらいあたん!

早速やってみたらできた。コードはこんな感じ。(一部だけ)

$params = array(
‘mode’ => ‘sliding’\,
‘perPage’ => 5\,
‘delta’ => 5\,
‘currentPage’ => $page\,
‘path’ => $Config->get(‘base_url’) . ‘anubis/blog_index’\,
‘fileName’ => ‘/%d’\,
‘append’ => false\,
‘spacesBeforeSeparator’ => 1\,
‘spacesAfterSeparator’ => 1\,
‘totalItems’ => $DB->getTotalArticleCount()
);

具体的に言うと、リンクの基本となるpathを指定。(http://project-p.jp/halt/とか)

次にfileNameを指定。(index.php/%dとか)%dと書いた部分に、ページ番号が挿入される。

で、appendをfalseに。

これでできたように見えるんだけど、GETからPATH_INFOにした都合でurlVarがなくなってしまい、PEAR::Pagerが現在のページ位置を取得できないので、currentPageに現在のページ番号を指定する。

いやはやたったこれだけでPATH_INFO対応できるとは最近のライブラリはすごいのぅ

カテゴリー:

One thought on “PEAR::PagerのリンクにPATH_INFOを利用する

  1. ピンバック: 三浦仮想研究所

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ねこ認証:9つのパネルの中からねこを3匹選んでください