CI-маршрутизация $ this- & gt; agent-> is_mobile ()

Есть ли способ в файле маршрутизации CI, который я могу узнать, использует ли представление мобильный телефон?

а если так повернуть их на другую страницу?

У меня есть два набора контроллеров, один для мобильных и один для настольных компьютеров, но я бы хотел, чтобы URL всегда были одинаковыми.

Я попытался добавить следующий код в файл конфигурации маршрутов, но я получаю сообщение об ошибке …

Я думаю об этом совершенно неправильно?

 $this->load->library('user_agent');

if ($this->agent->is_browser())
{
$route['default_controller'] = "index";
} elseif ($this->agent->is_mobile())
{
$route['default_controller'] = "m/index";
}

Я получаю ошибку: неопределенное свойство: CI_Router :: $ load

0

Решение

Из рассмотрения системных файлов CI видно, что класс Loader загружается после класса Router, поэтому $ this-> load еще не существует.

Проверьте CI Hooks, хотя: https://ellislab.com/codeigniter/user-guide/general/hooks.html

Кроме того, вы можете попробовать использовать head.js (http://headjs.com/) и определение ширины экрана для адаптивного дизайна. Это позволяет вам создать веб-сайт и изменить CSS, чтобы изменить страницу в зависимости от ширины браузера. Если вы не нацелены на мобильную связь / десктоп из-за функциональности, размер экрана является основной причиной, по которой мы заботимся о том, на чем они работают, верно? Так что, если это размер экрана, я думаю, что система head.js — путь. Тогда у вас есть только одна база кода на стороне сервера, о которой стоит беспокоиться.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]