前回はapp/core.phpの
Configure::write('Routing.admin', 'admin');
をコメントアウトすることでページネートのリンクを押した時にリンクエラーになるのを防ぎました。
じゃあ、「公開」「公開(携帯)」「管理」のように3つサイトを分ける時にはどうするの?ということで調べてみました。
まず、app/core.phpの
// Configure::write('Routing.admin', 'admin');
はコメントアウトのままで、
app/routes.phpに下記を追加します。
// 公開(携帯) Router::connect( '/m/:controller/:action/*', array( 'prefix' => 'm', 'm' => true ) ); // 管理 Router::connect( '/admin/:controller/:action/*', array( 'prefix' => 'admin', 'admin' => true ) );
これで、
domain.jp/controller/action →公開側
domain.jp/m/controller/action →公開側(携帯)
domain.jp/admin/controller/action →管理側
になります。
それから、各viewの作る時にページネートの部分をヘルパーで書きますが、
if(!empty($prefix)) { $paginator->options(array('url' => array($prefix => true))); } echo $paginator->counter(array('format' => "%start%件?%end%件 (全 %count%件)")); echo ' '; echo $paginator->first('最初',array('after'=>' ' )); echo $paginator->prev('前へ'); echo $paginator->numbers(array('before' => ' ','after'=>' ', 'modulus' => 9)); echo $paginator->next('次へ'); echo $paginator->last('最後',array('before'=>' ' ) );
というように$paginator->optionsでurlにprefix名を与えてあげてください。
$prefixはcontrollerで$this->prefixをviewにセットした内容が入っています。
公開側(携帯)は「m」、管理側は「admin」が入っています。