FuelPHP 1.5 スマホ用テンプレートに切り替える

 

■FuelPHPで保守性の高いマルチデバイス対応を考える

http://shiroyama.us/blog/2012/12/08/fuelphp%E3%81%A7%E4%BF%9D%E5%AE%88%E6%80%A7%E3%81%AE%E9%AB%98%E3%81%84%E3%83%9E%E3%83%AB%E3%83%81%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9%E5%AF%BE%E5%BF%9C%E3%82%92%E8%80%83%E3%81%88%E3%82%8B/

 

上記ブログの方を参考にさせていただきました。

 

■課題

・スマホの見た目にしたい

・テンプレートをわけるんだろうけど、どうやるかワカンネ

・ググったら上記ブログを発見。簡単に解決。最高っす。

 

■対応内容

①まずはbootstrapにviewを読むCoreファイルの読み込み先を記述

vi bootstrap.php

Autoloader::add_classes(array(
        // Add classes you want to override here
        'View' => APPPATH.'classes/view.php', // これを追加
));

 

 

②view.phpを追加

ガラケーとか考えるの面倒なので、全部モバイル扱いということで

 /mb配下にモバイルテンプレートを突っ込むこととした。

ipadはPC扱いにした。

 

cd classes

vi view.php

<?php
class View extends \Fuel\Core\View
{
    public function set_filename($file) {
        if (Agent::browser() != "iPad" && Agent::is_mobiledevice()){
            $file = 'mb/' . $file;
        }
        return parent::set_filename($file);
    }
}

 

 ③最後にviews配下にディレクトリを配置

cd views

mkdir mb

cp template.php mb/  ←tenplate.phpもmb配下を見に行くようになる。

 

以上でモバイル端末はmb配下のテンプレートを読むようになる!