korshunov писал(а):Подобные вопросы я уже ставил, можно посмотреть, например, в теме
viewtopic.php?f=9&t=1508&p=6937#p6937
Вот некотрые моменты из ответов от разработчиков:
1. Модули нужны, чтобы потом было легче обновляться.
2. Конечный пользователь системы (менеджер магазина) не должен разрабатывать модули. Менеджер может установить модуль, сделанный разработчиком. Еще менеджер может сделать что-то по рекомендации разработчиков из форума, но здесь если менеджер вообще не знает азов программирования, я думаю будет сложно что-то пояснить (хотя при желании возможно).
3. Если модуль для третьего окая выложить в маркетплейс, его будет гораздо легче поддерживать чем аналогичный модуль для второго окая.
Из чего можно сделать выводы:
1. В Вашем случае, когда пишется модуль для себя, это, конечно совсем не актуально и никаких преимуществ не дает.
2. Запланирован уровень сложности такой, что таким, как мы с Вами, не рекомендуется разрабатывать модули. Значит, надо обращаться к спецам. А таковых на форуме, которые хоть чуть разбираются в версии 3, практически нет, кроме самих разработчиков. Да и те зачастую, видимо, сами не могут дать точный ответ на простой вопрос, а вместо того пускаются в глубокое теоретизирование.
3. С этим пунктом ситуация похожая на многие другие моменты - теоретически выглядит очень верно и очень заманчиво. Но смотрим на практике: версии 3 вышла четыре с лишним месяца назад, но что-то на маркетплейсе не видно пока ни одного модуля для OKAY 3. На тех, которые я видел, висит предупреждение Совместим только с OkayCMS 2. Если я упустил, ткните носом, пожалуйста...
На форуме время от времени задают вопросы, как для Okay 3 сделать то или иное изменение, которое хорошо известно для Okay 2. В основном ответов нет. Вот некоторые примеры:
viewtopic.php?f=9&t=1573 - дали способ, но по старинке, без использования модульности.
viewtopic.php?f=10&t=530 - без ответа
viewtopic.php?f=10&t=376&start=20 - без ответа
Вот и решайте, стоит ли Вам дальше продолжать добиваться своего...
OkayCMS писал(а):korshunov, я просто поражаюсь как вы из наших ответом можете делать такие выводы.
seo-deluxe.ru писал(а):Спасибо.
Хоть что то.
Все прочитал, ни черта не понял. Для чего создавать отдельный модуль нужно? Все равно мне придется лезть в код и вставлять шоркод в нужное место.
Если мне нужно создать доп поле с городом, мне все равно нужно залазить в базу данных создавать доп столбец, залазить в админку добавлять новые строки для отображения, залазить в шаблон добавлять новые строки, добавлять в письмо доп строки, заходить в JS ставить проверку (мб что то упустил). Весь мозг сломал в оконцове так и не понял как мне поступить, толи писать модуль, на который уйдет масса времени и не понятно вообще будет ли он работать или просто тупо переписать внутренности.
seo-deluxe.ru писал(а): залазить в базу данных создавать доп столбец, залазить в админку добавлять новые строки для отображения, залазить в шаблон добавлять новые строки, добавлять в письмо доп строки, заходить в JS ставить проверку (мб что то упустил).
OkayCMS писал(а):seo-deluxe.ru писал(а):Спасибо.
Также есть ещё один момент о котором мы не думали, но о котором нам написали. Когда делаешь модуль, не страшно что сайт сломаешь и нужно будет разбираться в чужом коде. Максимум что может не работать - это твой модуль. Поэтому если он не работает, то можно его выключить, посидеть ещё на локалке, попробовать доделать, а затем заново закачать и включить. В случае работы прямо во внутренностях так делать проблемнее.
Бред конечно делать ошибки парсинга )) но ладно, если модуль выключить, то фронт продолжает работать, бек конечно ложится, т.к. там по прежнему из выключенных модулей выполняется небольшой кусок. Это нужно. Здесь же больше имелось ввиду не сломается логика работы сайта, конечно если публиковать модуль с синтаксическими ошибками PHP на production, то что сайт "лёг", это норма, не норма вообще такое делать.1. Очередная красивая сказочка про модульность, увы, совершенно не соответствует действительности. Нет такого преимущества.
Ну модуль это часть системы, конечно он должен инициализироваться, а как иначе?? Есть идеи?Пример показывает пробелы в организации CMS. Использовать модуль Розетки надо только по спец адресу, для обычной работы посетителя с сайтом вызывать его совсем не нужно. А он вызывается при каждом чихе. Имеем, как минимум, нерациональность, которая крадет у сервера просто так лишние ресурсы. Можно лишь спорить о том, большие ресурсы крадет или маленькие.
Видимо, дело обстоит так: CMS всегда инициализирует ВСЕ установленные модули. А если народ начнет массово устанавливать много модулей, то эти лишние затраты будут возрастать. Имеем существенные риски возникновения тормозов, особенно если модули имеют свои нерациональности.
А зачем же сидеть на локалке, если можно отладку вести на самом сайте?
zyxer писал(а):Бред конечно делать ошибки парсинга ))
zyxer писал(а):Здесь же больше имелось ввиду не сломается логика работы сайта...
zyxer писал(а):Ну модуль это часть системы, конечно он должен инициализироваться, а как иначе?? Есть идеи?
zyxer писал(а):Это недочёт мира нашего (что код жрёт ресурсы)
zyxer писал(а):Вообще вся разработка должна вестись на локалке, затем заливаться на dev сервер
Вывести количество товаров в категориях.zyxer писал(а):А что за задача? Зачем вмешиваться в код построения категорий?
Подскажите, где в документации описано, как это сделать при создании модуля. Там говорится, что "Классы-расширители нужны чтобы расширять функциональность стандартных хелперов и реквестов."zyxer писал(а):Ну вы можете либо на Okay\Entities\CategoriesEntity::getCategoriesTree() навесить экстендер
Код: Выделить всё
return ExtenderFacade::execute(__METHOD__, $order, func_get_args());
Код: Выделить всё
return ExtenderFacade::execute(__METHOD__, $order, func_get_args());
Код: Выделить всё
$this->registerQueueExtension(
['class' => CartRequest::class, 'method' => 'postOrder'],
['class' => FrontExtender::class, 'method' => 'myMethod']
);
Код: Выделить всё
return ExtenderFacade::execute(__METHOD__, $order, func_get_args());
Код: Выделить всё
A($a, $b) {
// abstract
return ExtenderFacade::execute(__METHOD__, $c, func_get_args());
}
На днях была на сайте проблема, пошел выключать по очереди модули, и сразу вычислил какой из них создаёт проблему. Как минимум проблемное место нашлось быстро, при том, этот модуль можно вообще в данный момент выключить и когда он будет исправлен уже обновить на сайте. Но сейчас работать с этим модулем нельзя, ломается (в очень специфических условиях) важный функционал. Такие действия в экстренных условиях может сделать даже админ магазина. Мне кажется это преимущество...korshunov писал(а):Провожу простенький эксперимент. В модуле розетки Okay/Modules/OkayCMS/Rozetka/Init/Init.php делаю ошибку в PHP-коде, например, удаляю первую в тексте точку с запятой. Все - витрина сайта не работает, белый экран...
Из этого можно заключить:
1. Очередная красивая сказочка про модульность, увы, совершенно не соответствует действительности. Нет такого преимущества.
Вернуться в «Вопросы по работе с OkayCMS»
Сейчас этот раздел просматривают: 85 гостей