CakePHP2 生まれて初めてHelper作ってみるの〜♬
CakePHP2 生まれて初めて~Helper作ってみるの〜♬
ごめんなさい、全然生まれて初めてじゃないです。
CakePHPのhelperは言わずもがな、View側の共通処理を記載します。(Controllerの共通処理はComponentsですね)
CakePHPでUserAgentによる表示切り替えをHelperで実装してみる
よくある、スマホでアクセスしたらどうする、PCでアクセスがあればどうするといった UserAgentによる表示切り替えをHelperで実装してみます。
参考
UserAgentによる切り替えのサンプルはこちらが参考になりそうなので、これをCakePHPのHelper化したいと思います。
STEP:1 View/HelperディレクトリにUserAgentHelper.phpを作る
HelperディレクトリにHelperファイルを作ります。
ファイル名は必ず○○Helper.php
STEP2:Helperの中身を書く
class ○○Helper extends AppHelper の書き出しです。
App::uses('AppHelper', 'View/Helper'); class UserAgentHelper extends AppHelper { private $ua; private $device; public function deviceCheck(){ //ユーザーエージェント取得 $this->ua = $_SERVER['HTTP_USER_AGENT']; if(strpos($this->ua,'iPhone') !== false){ //iPhone $this->device = 'iphone'; } elseif(strpos($this->ua,'iPad') !== false){ //iPad $this->device = 'ipad'; } elseif((strpos($this->ua,'Android') !== false) && (strpos($this->ua, 'Mobile') !== false)){ //Android $this->device = 'android_m'; } elseif(strpos($this->ua,'Android') !== false){ //Android $this->device = 'android_t'; } else{ $this->device = 'pc'; } return $this->device; } }
STEP3:Controllerから作ったHelperを呼び出し
public $helpers = [‘UserAgent’];
App::uses('AppController', 'Controller'); class ExampleController extends AppController { public $helpers = ['UserAgent']; //以下省略
STEP4:後はViewで良きほどに使う!
$this->UserAgent->deviceCheck();
以上!おしまい!