class Mobile_Detect

Правила раздела: faq.php?mode=okay
Модератор: Модераторы

korshunov
korshunov
Репутация: 148
Сообщения: 1859
Зарегистрирован: 03.12.2015
С нами: 8 лет 4 месяца
Skype

Сообщение #1 korshunov » 01.05.2017, 14:01

Класс Mobile_Detect как-то своеобразно используется. Он подключается в Design.php через
require_once 'Mobile_Detect.php';
требует дополнительную переменную и дополнительное действие:
$this->detect = new Mobile_Detect();

Непонятно, почему не использован стандартный механизм, как в аналогичных случаях для прочих классов. У меня работает так:
1. в Okay.php добавить строку
'detect' => 'Mobile_Detect',
2. И потом можно использовать в разных местах
$is_mobile = $this->detect->isMobile();
$is_tablet = $this->detect->isTablet();
Вместо этого сейчас имеем изобретенный велосипед с дополнительными строками, который делает то же самое, только хуже...

Зачем?

makki M
makki M
Репутация: 199
Сообщения: 697
Зарегистрирован: 12.08.2016
С нами: 7 лет 8 месяцев
Откуда: Киев
Сайт

Сообщение #2 makki » 01.05.2017, 19:00

Видимо разработчики посчитали, что класс Mobile_Detect будет вызываться только один раз, чтобы через smarty передать в пользовательский шаблон $is_mobile и $is_tablet
Cоздание и расширение функционала интернет-магазина на платформе OkayCMS 2 (с 3-й и 4-й версией не работаю)

korshunov
korshunov
Репутация: 148
Сообщения: 1859
Зарегистрирован: 03.12.2015
С нами: 8 лет 4 месяца
Skype

Сообщение #3 korshunov » 02.05.2017, 05:47

Видимо, так.
Только возникает вопрос - а ЗАЧЕМ они так посчитали? Неужто не знают основы того, как устроена система и не знают, как работают классы сейчас? Классы и функции для того и придуманы, чтобы можно было свободно вызывать их в любых местах в нужных случаях. И искусственно ограничивать это совсем ни к чему.

m1hasik M
Аватара
m1hasik M
Возраст: 32
Репутация: 31
Сообщения: 200
Зарегистрирован: 12.11.2015
С нами: 8 лет 5 месяцев
Откуда: Днепр
Skype

Сообщение #4 m1hasik » 03.05.2017, 07:12

А вы не ну думали, что это сделали специально, что бы как раз таки функции не вызывали где угодно. Может это специально для верстальщиков только делали.

korshunov
korshunov
Репутация: 148
Сообщения: 1859
Зарегистрирован: 03.12.2015
С нами: 8 лет 4 месяца
Skype

Сообщение #5 korshunov » 03.05.2017, 07:26

Скорее похоже совсем на другое - они не задумывались о том, почему и зачем и как лучше, а просто делали по аналогии.
Например, в api/Design.php увидели подключение стороннего файла
require_once(dirname(dirname(__FILE__)).'/Smarty/libs/Smarty.class.php');
и рядом приписали свое
require_once 'Mobile_Detect.php';
И далее аналогично.

m1hasik M
Аватара
m1hasik M
Возраст: 32
Репутация: 31
Сообщения: 200
Зарегистрирован: 12.11.2015
С нами: 8 лет 5 месяцев
Откуда: Днепр
Skype

Сообщение #6 m1hasik » 03.05.2017, 07:53

ну это по коду то видно, ну мало ли, вдруг реально предполагали что файл нужен только для того, что бы передать в шаблон эти переменные.

Согласен что программно это ограничивает. Но с другой стороны, чисто для верстки пока хватает.
И то, я если честно, ими пользовался раза два всего

korshunov
korshunov
Репутация: 148
Сообщения: 1859
Зарегистрирован: 03.12.2015
С нами: 8 лет 4 месяца
Skype

Сообщение #7 korshunov » 03.05.2017, 09:53

Я думаю, что если бы у них действительно были стоящие причины, они бы тут написали...


Название раздела: Вопросы по работе с OkayCMS
Правила раздела: faq.php?mode=okay

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения

   

Вернуться в «Вопросы по работе с OkayCMS»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 20 гостей