Разработка дополнения смена шаблона вторая ветка

 
Посетитель
small user social cms
Медаль
Сообщений: 114
Есть 2 шаблона, один обычный, второй мобильный.
Нужно разработать дополнение, чтобы при заходе на сайт делалась проверка, если это мобильный или планшет происходила смена шаблона, и также чтобы была возможность обратно перейти на обычный шаблон.
Пишите в личку свои предложения

Важно
Редактировалось: 1 раз (Последний: 19 июля 2015 в 09:44)
Посетитель
small user social cms
Медаль
Сообщений: 128
Kokshetimes:

Есть 2 шаблона, один обычный, второй мобильный.
Нужно разработать дополнение, чтобы при заходе на сайт делалась проверка, если это мобильный или планшет происходила смена шаблона, и также чтобы была возможность обратно перейти на обычный шаблон.
Пишите в личку свои предложения

[spoiler=Важно]про адаптивные шаблоны можете не писать smile [/spoiler]

как решили?
Интерес один - http://kznmed.ru
Проверенный хостинг под Instant http://goo.gl/6W6WV
Монетизирую сайт тут http://goo.gl/vux68
Реклама
cms
Посетитель
small user social cms
Медаль
Сообщений: 145
ivanish:

Kokshetimes:

Есть 2 шаблона, один обычный, второй мобильный.
Нужно разработать дополнение, чтобы при заходе на сайт делалась проверка, если это мобильный или планшет происходила смена шаблона, и также чтобы была возможность обратно перейти на обычный шаблон.
Пишите в личку свои предложения

[spoiler=Важно]про адаптивные шаблоны можете не писать smile [/spoiler]

как решили?

Думаю подключение Mobile_Detect.php может без проблем это решить
Посетитель
small user social cms
Медаль
Сообщений: 128
DELLитант:

ivanish:

Kokshetimes:

Есть 2 шаблона, один обычный, второй мобильный.
Нужно разработать дополнение, чтобы при заходе на сайт делалась проверка, если это мобильный или планшет происходила смена шаблона, и также чтобы была возможность обратно перейти на обычный шаблон.
Пишите в личку свои предложения

[spoiler=Важно]про адаптивные шаблоны можете не писать smile [/spoiler]

как решили?

Думаю подключение Mobile_Detect.php может без проблем это решить

Не силен в программировании, тему с мобдидектом прочел. ОПределив, что у нас мобильник - как ему подсунуть другой шаблон. Важен именно шаблон, потому как при использовании @media скрипты и прочее ненужное никуда не девается.
Интерес один - http://kznmed.ru
Проверенный хостинг под Instant http://goo.gl/6W6WV
Монетизирую сайт тут http://goo.gl/vux68
Посетитель
small user social cms
Медаль
Сообщений: 114
ivanish:
как решили?
Еще пока в разработке
Посетитель
no avatar
Сообщений: 62
Очень просто решается этот вопрос.

С этого сайта http://mobiledetect.net/ берём последнюю версию класса (он же в архиве). Переименовываем файл в mobiledetect.php. Открывает его и даём имя классу cmsMobileDetect (для того, чтобы он подгружался автоматически). Закидываем файл в /system/core/

Далее остаётся только добавить пару строк в файл bootstrap.php

Полное содержание файла
Код PHP:
  1.  
  2. // Определяем корень
  3. define('PATH', dirname(__FILE__));
  4. define('ROOT', $_SERVER['DOCUMENT_ROOT']);
  5.  
  6. // Устанавливаем кодировку
  7.  
  8. // Подключаем автозагрузчик классов
  9. require_once PATH . '/system/config/autoload.php';
  10.  
  11. // Устанавливаем обработчик автозагрузки классов
  12. spl_autoload_register('autoLoadCoreClass');
  13.  
  14. // Инициализируем конфиг
  15. $config = cmsConfig::getInstance();
  16.  
  17. // Создаём экземпляр класса cmsMobileDetect (Mobile_Detect)
  18. $detect = new cmsMobileDetect();
  19.  
  20. // Меняем шаблон на мобильный
  21. if ($detect->isMobile()) {
  22. $config->set('template', 'mobile'); // Вместо mobile указать реальное название каталога с мобильным шаблоном
  23. }
  24.  
  25. // Загружаем локализацию
  26. cmsCore::loadLanguage();
  27.  
  28. // Устанавливаем часовую зону
  29. date_default_timezone_set( $config->time_zone );
  30.  
  31. // Подключаем все необходимые классы и библиотеки
  32. cmsCore::loadLib('html.helper');
  33. cmsCore::loadLib('strings.helper');
  34. cmsCore::loadLib('files.helper');
  35.  
  36. // Инициализируем ядро
  37. $core = cmsCore::getInstance();
  38.  
  39. // Подключаем базу
  40. $core->connectDB();
  41.  
Добавленные строчки
Код PHP:
  1. // Создаём экземпляр класса cmsMobileDetect (Mobile_Detect)
  2. $detect = new cmsMobileDetect();
  3.  
  4. // Меняем шаблон на мобильный
  5. if ($detect->isMobile()) {
  6. $config->set('template', 'mobile'); // Вместо mobile указать реальное название каталога с мобильным шаблоном
  7. }
В нашем случае имеем 2 шаблона desktop и mobile.

Разработка дополнения смена шаблона вторая ветка


Разработка дополнения смена шаблона вторая ветка
Прикрепленные файлы:
files_ec7mp.zip | 25.9 Кб | Скачали: 302
Посетитель
small user social cms
Медаль
Сообщений: 767
Ребята,а можно этим методом воспользоватся - что бы при заходе через мобильные открывался не другой шаблон,а другой сайт,стоит который на поддомене?
Рекомендую хостинг 30 дней бесплатно - Ссылка
Посетитель
no avatar
Сообщений: 62
vsemkrot:

Ребята,а можно этим методом воспользоватся - что бы при заходе через мобильные открывался не другой шаблон,а другой сайт,стоит который на поддомене?

Можно.
Содержание файла bootstrap.php
Код PHP:
  1.  
  2.  
  3. // Определяем корень
  4. define('PATH', dirname(__FILE__));
  5. define('ROOT', $_SERVER['DOCUMENT_ROOT']);
  6.  
  7.  
  8.  
  9. // Устанавливаем кодировку
  10.  
  11. // Подключаем автозагрузчик классов
  12. require_once PATH . '/system/config/autoload.php';
  13.  
  14. // Устанавливаем обработчик автозагрузки классов
  15. spl_autoload_register('autoLoadCoreClass');
  16.  
  17. // Инициализируем конфиг
  18. $config = cmsConfig::getInstance();
  19.  
  20. // Создаём экземпляр класса cmsMobileDetect (Mobile_Detect)
  21. $detect = cmsMobileDetect::getInstance();
  22.  
  23. if ($detect->isMobile()) {
  24. // Устанавливаем конфигурацию для мобильного сайта
  25. $config->set('template', 'mobile'); // Меняем шаблон на мобильный, если нужно
  26. $config->set('host', 'http://mobile.instant2.net');
  27. $config->set('upload_host', 'http://mobile.instant2.net/upload');
  28. // Проверяем домен
  29. if($_SERVER['HTTP_HOST'] != 'mobile.instant2.net'){
  30. // Перенаправляем
  31. header('Location: http://mobile.instant2.net');
  32. }
  33. } else {
  34. // Иначе устанавливаем конфигурацию обычного сайта
  35. $config->set('template', 'desktop'); // Меняем шаблон на обычный, если нужно
  36. $config->set('host', 'http://instant2.net');
  37. $config->set('upload_host', 'http://instant2.net/upload');
  38. }
  39.  
  40. // Загружаем локализацию
  41. cmsCore::loadLanguage();
  42.  
  43. // Устанавливаем часовую зону
  44. date_default_timezone_set( $config->time_zone );
  45.  
  46. // Подключаем все необходимые классы и библиотеки
  47. cmsCore::loadLib('html.helper');
  48. cmsCore::loadLib('strings.helper');
  49. cmsCore::loadLib('files.helper');
  50.  
  51. // Инициализируем ядро
  52. $core = cmsCore::getInstance();
  53.  
  54. // Подключаем базу
  55. $core->connectDB();
  56.  
  57.  
P.S В класс добавлен метод getInstance (синглтон) на всякий случай. В архиве выше его нет, так что в файл /system/core/mobiledetect.php нужно его добавить.
В самом начале после открывающей фигурной скобки
Код PHP:
  1. private static $instance;
Перед public function __construct
Код PHP:
  1.  
  2. public static function getInstance() {
  3. if (self::$instance === null) {
  4. self::$instance = new self;
  5. }
  6. return self::$instance;
  7. }
  8.  
Редактировалось: 2 раз (Последний: 6 октября 2015 в 10:22)
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.