FC2ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

【cakephp】 携帯サイトとPCサイトを振り分ける

cakephp1.2

1.app_controller.phpを携帯サイト用とPCサイト用に切り分ける。

2.追加の環境設定が必要な場合には、ブートストラップファイル(/app/config/bootstrap.php)を用いる。ここに携帯電話からのアクセスかどうかの判定文を書き、携帯電話からのアクセスならば環境設定をする。

3.携帯電話からのアクセスかどうかをユーザーエージェントから判別するため、pearを利用する。また、携帯からのアクセスはURLに/m/が自動で付くようにし、携帯サイトを表示させる。

携帯からのアクセスは/m/controller/action
PCからのアクセスは/controller/action

4.ルーティングについてはこちらを参考に。


次に詳しく書く。
app/app_controller.php

/**
* PC/携帯共通
*/
class AppController extends Controller {

function __construct(){
parent::__construct();
}
}

/**
 * AppControllerを携帯とPCで振り分け
 */
if (Configure::read('mobile'))
class ModuleController extends MobileAppController{}
else
class ModuleController extends PcAppController{}


/**
* 携帯用AppController
*/
class MobileAppController extends AppController{}

/**
* PC用AppController
*/
class PcAppController extends AppController{}



app/config/bootstrap.php


//pearの読み込み
App::import('Vendor', 'pear_ini');
App::import('Vendor', 'Net_UserAgent_Mobile', array('file' => 'Net' . DS . 'UserAgent' . DS . 'Mobile.php'));


//携帯電話からのアクセスならば、mobileに1をセットする
$this->agent = &Net_UserAgent_Mobile::factory();
if (!$this->agent->isNonMobile()) {
Configure::write('mobile', 1);
}



app/config/routes.php

//mobile_action をm/contlloer/action にルーティングする
Router::connect('/m/:controller/:action/*', array('prefix' => 'mobile', 'mobile'=>true));



各コントローラーでは、今までappControllerをextendしていたが、
ModuleControllerをextendしないと、appControllerでのPCサイトと携帯サイトの振り分けが適用されない。

class hogehogeController extends AppController{}


↓変更後

class hogehogeController extends ModuleController{}



参考サイト
CakePHPのブートストラップ
[CakePHP] 携帯とPC振り分け&別Controller Class使用
スポンサーサイト

トラックバック


この記事にトラックバックする(FC2ブログユーザー)

コメントの投稿

Private :

カウンター
   
プロフィール

glasses

Author:glasses
物事をすぐ忘れる自分のためのブログ。

カテゴリ
カレンダー(月別)
11 ≪│2018/12│≫ 01
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 - - - - -
最新記事
最新コメント
検索フォーム
リンク
サービス
track feed track あわせて読みたいブログパーツ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。