CakePHP(1.2.1.8004)で携帯サイト用のページングメモ。
PaginatorHelperが出力するリンクには、session.use_trans_sidがオンでも、セッションIDが付加されませんでした。
PaginatorHelperクラスを継承して、セッションIDを付加するヘルパーを作成することにします。
MyPaginatorHelperを作成し、docomo端末用にURLにセッションIDを付加する処理を加えます。
app/views/helpers/my_paginator.php
PHP:
-
<?php
-
App::import('Helper','Paginator');
-
-
class MyPaginatorHelper extends PaginatorHelper
-
{
-
-
$pattern = '/href\s*=\s*"(.*)"/';
-
$replacement = 'my_replace_link';
-
}
-
return $link;
-
}
-
}
-
-
function my_replace_link($matches)
-
{
-
return $matches[0];
-
}
-
return '';
-
}
-
$href = $matches[1];
-
return 'href="' . $href . '/?' . session_name() . '=' . htmlspecialchars(session_id(),ENT_QUOTES) . '"';
-
}
-
else {
-
return 'href="' . $href . '&' . session_name() . '=' . htmlspecialchars(session_id(),ENT_QUOTES) . '"';
-
}
-
}
MyPaginatorHelperを使って、セッションIDが付加されたことを確認したのは、次のメソッドです。
- sort()
- prev()
- next()
- numbers()