FuelPHPでスマホからアクセスがあったときにviewを切り替える設定

FuelPHPでスマホからアクセスがあったときにviewを切り替える設定について、メモしておきます。

FuelPHPのAgentクラスと拡張 – BTT’s blog

↑こちらを参考にしています。

1.ユーザエージェントを判定するクラスを追加

APPPATH/classes/agent.php

<?php
class Agent extends Fuel\Core\Agent
{
    public static function _init()
    {
        parent::_init();

        $sp_list = array(
                       'iPhone',
                       'iPod',
                       'Android',
                       'IEMobile',
                       'dream',
                       'CUPCAKE',
                       'blackberry9500',
                       'blackberry9530',
                       'blackberry9520',
                       'blackberry9550',
                       'blackberry9800',
                       'webOS',
                       'incognito',
                       'webmate'
                   );

        $pattern = '/'.implode('|', $sp_list).'/i';
        static::$properties['x_issmartphone'] = preg_match($pattern, static::$user_agent) ? true : false;
    }

    public static function is_smartphone()
    {
        return static::$properties['x_issmartphone'];
    }
}

2.bootstrap.phpに、Agentクラス追加

APPPATH/bootstrap.php

Autoloader::add_classes(array(
        // Add classes you want to override here
        // Example: 'View' => APPPATH.'classes/view.php',
        'Agent' => APPPATH.'classes/agent.php'
));

3.controllerで、viewを切り換え

APPPATH/classes/controller/index.php

		if (Agent::is_smartphone()) { //スマホからアクセスのとき、スマホ用テンプレを呼ぶ
			$view = View::forge('sp/index');
		}else{ //スマホ以外のとき
			$view = View::forge('index');
		}

参考

FuelPHPのAgentクラスと拡張 – BTT’s blog

スポンサーリンク

シェアする

フォローして更新を受け取る

スポンサーリンク