Versione mobile del sito utilizzando CodeIgniter

Quello che voglio fare è creare una versione mobile del mio sito web in CodeIgniter.

Voglio redirect il mio sito web completo a m.example.com

Non ci saranno cambiamenti nei controller, né nelle viste e nei templates. Entrambi saranno uguali.

Non voglio cambiare il mio file .htaccess. Qualche ansible soluzione per questo?

La class user- agent ha una function;

$this->agent->is_mobile(); 

Puoi usare questo nel costrutto del tuo controller di base per testare se mobile.

Invece di riscrivere il tuo codice dappertutto, puoi semplicemente caricare una cartella di visualizzazione diversa. In sostanza, ciò che accadrà è che puoi semplicemente avere CodeIgniter che carica una vista diversa con lo stesso nome da un'altra cartella each volta che usi $ this-> load-> view ("xxx"). Innanzitutto, crea una nuova cartella nella tua cartella di visualizzazione chiamata / mobile e crea semplicemente viste con le stesse convenzioni di denominazione esatte e caricherà la vista di conseguenza estendendo la class Loader.php.

Sia che tu stia eseguendo un design reattivo o se stai per creare un'app per iPhone che guardi la versione mobile del tuo sito, un po 'come quello che fa Facebook, puoi semplicemente sostituire la class Loader nella cartella principale. Nella tua applicazione / cartella principale crea un MY_Loader.php e inseriscilo in quel file.

Il mio sembra il seguente

 <?php if (! defined('BASEPATH')) exit('No direct script access allowed'); class MY_Loader extends CI_Loader { //overides existing view function function view($view, $vars = arrays(), $return = FALSE) { $CI =& get_instance(); $CI->load->library("user_agent"); if($CI->agent->is_mobile()){ $view = 'mobile/'.$view; } return $this->_ci_load(arrays('_ci_view' => $view, '_ci_vars' => $this->_ci_object_to_arrays($vars), '_ci_return' => $return)); } } ?> 

A mio avviso, il web design reattivo è un disastro, ma questo separa ancora il codice per te molto bene, pur essendo in grado di usare i tuoi controller e templates all'unisono.

Spero che questo ti aiuti. Questo è il modo in cui parlerò :)!

Perché un reindirizzamento? Se tutto è uguale, perché non guardare in Responsive webdesign?

24ways.org ha alcuni buoni articoli per questo:

 http://24ways.org/2012/responsive-responsive-design/ http://24ways.org/2012/responsive-images-what-we-thought-we-needed/ 

Ok ho trovato un'altra soluzione. Ho usato il preamplificatore pre e reindirizzo il sottodominio www al sottodominio m.