Новости Joomla

SW JProjects v.2.6.1 - компонент каталога расширений для веб-приложений

👩‍💻 SW JProjects v.2.6.1 - компонент каталога расширений для веб-приложений.

Компонент позволяет сделать свой мини-Joomla Extensions Directory - каталог расширений для CMS (не только для Joomla) или файлов. Есть возможность скачивания по лицензионным ключам создания кастомных схем данных для сервера обновлений.

v.2.6.1. Что нового?

  • Правки наследования схем серверов обновлений. Улучшена логика наследования схем серверов обновлений для проектов компонент - категория - проект.
  • Не стабильные релизы в сервере обновлений. Теперь в данные сервера обновлений попадают все версии (alpha, beta и т.д.), а не только stable.
  • Косметические изменения. В шаблоне по умолчанию сделаны замены некоторых CSS-классов, уточнено присвоение атрибутов loading=lazy и fetchpriority.
  • Рефакторинг и правки кода. Текущее обновление кодовой базы.
  • Исправление ошибок.

Больше спасибо за помощь в тестировании участникам нашего сообщества Александру Новикову (@pro_portal) и Александру Судьбинову (@alexrevo).

Событие Pizza, Bugs & Fun - 29-30 января 2026 года.

Событие Pizza, Bugs & Fun  - 29-30  января 2026 года.

Уже несколько лет в мире Joomla проводятся мероприятия "Pizza, Bugs & Fun" (#PBF), где каждый может посвятить несколько часов своего мозгового времени тому, чтобы наша любимая CMS стала ближе к идеалу.

Ссылки на видео и статьи из этого поста рассказывает об организационных вопросах, которые пригодятся для участия в PBF, а так же что и как делать.

В рамках события PBF все желающие могут собираться в общий онлайн чат, обсудить вопросы Joomla и приложить к их разрешению свою руку. Самый классный вариант, когда эта встреча происходит оффлайн: тогда организовывается пицца, напитки по вкусу и несколько часов совместного творчества.

Каждый помогает тем, что он умеет:

  • кто-то пишет недостающую документацию,
  • кто-то пишет код,
  • кто-то тестирует как исправлены ошибки или сделан новый функционал.

На сайте события есть карта, можно "захостить" свою локацию. Практически все движки в мире развиваются за счёт спонсирующих их компаний. Joomla одна из немногих, где развитие идёт только усилиями международного сообщества энтузиастов.

https://www.youtube.com/watch?v=a-FuVKXg_Uw 

На момент написания данного поста в репозитории Joomla 810 открытых Issue (как правило это баги) и 236 Pull request (PR, исправление багов и новый функционал). Все PR обязательно тестируются минимум двумя участниками сообщества, дабы в конечный код движка не проскочила ошибка.

Если каждый из участников только нашего сообщества сделает даже одно тестирование, то, боюсь, PR и Issue на всех не хватит 😀 И ничего не останется нашим коллегам из международных Joomla-чатов.

0 Пользователей и 1 Гость просматривают эту тему.
  • 21 Ответов
  • 1947 Просмотров
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Добрый день!

Непонятный вопрос вылез. Вроде постоянно пользовался я вот этим
Код
        $module = JModuleHelper::getModule('mod_sendmessage');
        $params = new JRegistry($module->params);
Но по каким-то причинам это не работает на боевом сайте, хотя на тестовом работает.
Модуль содержит AJAX функцию, которая запускается по средствам com_ajax
Вот функция в модуле:
Спойлер
[свернуть]

Данные туда отправляю js, в data есть еще данные
Спойлер
[свернуть]

В этой реализации есть одно но. Я понимаю что подгрузка модуля корректно работает если опубликован только 1 модуль на привязанной странице. (т.е. вызывается только по имени модуля и нет привязки по id) Тут помогает параметр itemId по которому JModuleHelper::getModule('mod_sendmessage'); берет именно модуль с привязкой по itemId. Пусть это останется за рамками обсуждения.

Еще различия между боевым и тестомым. На боевом php7.2 и https.
Параметр itemId на боевом приходит. Не работает именно JModuleHelper::getModule('mod_sendmessage');

Что не так?
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Подгрузить параметры модуля
« Ответ #1 : 16.11.2018, 12:58:06 »
а что в переменной $module после JModuleHelper::getModule('mod_sendmessage'); Вы смотрели?
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Подгрузить параметры модуля
« Ответ #2 : 16.11.2018, 13:14:03 »
а что в переменной $module после JModuleHelper::getModule('mod_sendmessage'); Вы смотрели?
да структура
Код
"module":{"id":0,"title":"","module":"mod_sendmessage","position":"","content":"","showtitle":0,"control":"","params":""}
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Подгрузить параметры модуля
« Ответ #3 : 16.11.2018, 13:18:53 »
На втором боевом (на этом же серваке) без https работает при условии что модуль присвоен ко всему. Если только к странице 1 то не работает
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Подгрузить параметры модуля
« Ответ #4 : 16.11.2018, 13:20:41 »
а если это: var url = '' + window.location.origin + '/index.php?option=com_ajax&module=sendmessage&method=send&format=raw';
заменить на это:
var url =  './index.php?option=com_ajax&module=sendmessage&method=send&format=raw';
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Подгрузить параметры модуля
« Ответ #5 : 16.11.2018, 13:28:24 »
данные то приходят. itemId присутствует.
Но проверил результата не дало. Рабочее работает, не рабочее не работает
На https работает при привязке ко всем страницам
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Подгрузить параметры модуля
« Ответ #6 : 16.11.2018, 13:47:08 »
а теперь попробуйте отправить не itemId, а Itemid
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Подгрузить параметры модуля
« Ответ #7 : 16.11.2018, 13:51:00 »
а теперь попробуйте отправить не itemId, а Itemid
+
Оно.
Почему вопрос конечно остался...
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Подгрузить параметры модуля
« Ответ #8 : 16.11.2018, 13:55:36 »
+
Оно.
Почему вопрос конечно остался...
Ну как бы потому что  unix системы регистрозависимы.. не тот регистр и все...
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Подгрузить параметры модуля
« Ответ #9 : 16.11.2018, 14:49:41 »
Ну как бы потому что  unix системы регистрозависимы.. не тот регистр и все...
Оба сервака на unix.
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Re: Подгрузить параметры модуля
« Ответ #10 : 16.11.2018, 19:38:40 »
данные то приходят. itemId присутствует.
itemId  не нужен, этой ереси нет с 3.8.7
Передавайте в модуль id модуля и тогда будут именно нужные. Потом запрос в базу.
Вот пример
https://github.com/Septdir/pkg_freelancehunt_modules/blob/master/mod_freelancehunt_portfolio/helper.php

Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Подгрузить параметры модуля
« Ответ #11 : 17.11.2018, 00:07:58 »
itemId  не нужен, этой ереси нет с 3.8.7
Передавайте в модуль id модуля и тогда будут именно нужные. Потом запрос в базу.
Вот пример
https://github.com/Septdir/pkg_freelancehunt_modules/blob/master/mod_freelancehunt_portfolio/helper.php

В смысле нет?
Joomla 3.9.0:
что это по вашему?!

А по вашему коду оригинально, делать лишний запрос в базу, притом забив на все настройки доступа модулей, языковые настройки, настройки публикации  и т.д.  и т.п. )
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Re: Подгрузить параметры модуля
« Ответ #12 : 17.11.2018, 01:39:53 »
Joomla 3.9.0:
В то что проверку на itemid(id пункта меню) для модуля, как и получение модуля по соседствам ModuleHelper в com_ajax я вырезал и передавать его теперь нет ни какой нужды, как и юзать ModuleHelper в com_ajax.
https://github.com/joomla/joomla-cms/pull/19818

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

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

Что же до самого запроса - это запрос на один модуль, а не как в  ModuleHelper::getModule где получаются все доступные модули, потом идет несколько циклов и в итоге получишь просто первое совпадение, а не конкретный модуль. Даже передать itemID не поможет если на одном пункте меню два модуля (а с формами обратной связи такое бывает очень часто)

Что же до количества запросов из-за того, что получение модуля и инициализация ModuleHelper в com_ajax удалены в Joomla 3.8.7(см. линк на PR выше) и до этого ModuleHelper ни где не инициализирется, то количество запросов одинаковое, а вот нагрузка создаваемая при получение одной конкретной строки/столбца или при выгрузке всех возможный строк и затем фильтрация по средствам циклов будет разная. И один запрос на конкретную строку/столбец будет предпочтительнее.


Итого:
Зачем каждый раз "выдергивать" из базы все возможные модули и в итоге получать первый попавшийся, если можно сразу получить нужны модуль или вовсе только параметры модуля?

А различные проверки на языки и уровень доступа, нужны далеко не всегда, более того иногда различные проверки делаются еще до каких либо запросов в базу данных.

Если же так принципиально использовать ModuleHelper то лучше будет использовать ModuleHelper::getModuleById - Это новая функция из 3.9
Если более старая версия Joomla то сделать как в ModuleHelper::load
Однако для использования ModuleHelper помимо id модуля надо свнова передавать itemID и снова получаем все модули, а затем "крутим" цикл(ы).

Вроде довольно подробно ответил.
« Последнее редактирование: 17.11.2018, 13:29:29 от Septdir »
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Подгрузить параметры модуля
« Ответ #13 : 17.11.2018, 12:03:53 »
Зачем каждый раз "выдергивать" из базы все возможные модули и в итоге получать первый попавшийся, если можно сразу получить нужны модуль или вовсе только параметры модуля?
Что за чушь?! Почему я дергая все возможные модули получаю нужный мне?!

В то что проверку на itemid(id пункта меню) для модуля, как и получение модуля по соседствам ModuleHelper в com_ajax я вырезал и передавать его теперь нет ни какой нужды, как и юзать ModuleHelper в com_ajax.
https://github.com/joomla/joomla-cms/pull/19818
Я не знаю что вы там удалили, в com_ajax но данные модуля через ModuleHelper без Itemid не получить!
« Последнее редактирование: 17.11.2018, 12:21:36 от Aleks.Denezh »
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Re: Подгрузить параметры модуля
« Ответ #14 : 17.11.2018, 13:17:19 »
Что за чушь?! Почему я дергая все возможные модули получаю нужный мне?!
Потому что вам везет предложенный вами вариант использует имя модуля(можно сказать что тип модуля), а не конкретный id.
На одной странице может быть 2 модуля с одни именем но разными id => разными параметрами, где гарантия что получите нужный?

Я не знаю что вы там удалили, в com_ajax но данные модуля через ModuleHelper без Itemid не получить!
Наверное вы плохо прочитали всю вторую часть.
Зачем ModuleHelper если нужен лишь один модуль? До 3.8.7 в этом был смысл потому, что ModuleHelper использовался в самом com_ajax для проверки наличия модуля(сейчас провертеться лишь наличие расширения), и чтобы не делать второй запрос разумнее было его и использовать в helper. Сейчас же ни какого смыла использовать ModuleHelper нет.
« Последнее редактирование: 17.11.2018, 13:27:48 от Septdir »
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Re: Подгрузить параметры модуля
« Ответ #15 : 17.11.2018, 13:53:46 »
@Aleks.Denezh ваш метод относительно верный, просто уже не актуальный.
Хотя в модулях форм и раньше редко пользовались getModule для получения параметров и проверки доступности ибо он работал аккурат до того момента пока два модуля одного типа, но с разными параметрами и правами публиковались на одной странице. А то бывало что письма уходили не туда или в модуле для public приходили настройки модуля register Кончено можно было и "заголовок" передавать, но и он не факт что будет уникальным. Однако само использование ModuleHelper было довольно верным (момент спорный что лучше один доп запрос или выгрузить 300 модулей и гонять их циклом) решением, чтобы не делать хоть и маленький но дополнительный запрос, но так было до версии 3.8.7.
« Последнее редактирование: 17.11.2018, 14:40:08 от Septdir »
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Подгрузить параметры модуля
« Ответ #16 : 17.11.2018, 14:37:49 »
@Septdir Ну справедливости ради я getModule никогда не юзаю, а юзаю getModuleList или как там его.. и  id модуля передаю.. но ничего страшного если там и Itemid  появится.. мне просто проще в одну строку получить модуль по id   ( даже без учета getModuleById чем писать лишний запрос.. а по поводу нагрузки через get modules лист..и отдельного запроса, то выигрышь будет неощутим.. у вас же не тысяча модулей на сайте...
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Re: Подгрузить параметры модуля
« Ответ #17 : 17.11.2018, 14:50:59 »
@Septdir Ну справедливости ради я getModule никогда не юзаю, а юзаю getModuleList или как там его
@Aleks.Denezh справедливость ради getModuleList не очень корректно работает с кешем все таки зачем по сто раз формировать запрос. Поэтому я и написал ,что если юзать helper то делать аналог `protected load`, ну или `getModuleById` если говорить о 3.9.

у вас же не тысяча модулей на сайте...
В моей практике сайты и с большим числом модулей попадались.

мне просто проще в одну строку получить модуль
А вот тут вы правы. и с новой функцией это еще удобнее писать. Вы же не виноваты, что сам хелпер написан малясь некорректно, хотя чего еще ожидать от хелпера который толком не правился еще с Joomla 1.5.
« Последнее редактирование: 17.11.2018, 15:21:41 от Septdir »
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Подгрузить параметры модуля
« Ответ #18 : 17.11.2018, 15:19:17 »
В моей практике сайты и с большим числом модулей попадались.
Это уже не сайт, это венегрет, тут уже ничего не поможет.. по моему даже хранение параметров модуля в отдельном файле не спасет...

А вот тут вы правы. и с новой функцией это еще удобнее писать. Вы же не виноваты, что сам хелпер написан малясь некорректно, хотя чего еще ожидать от хелпера который толком не правился еще с Joomla 1.5.
тут больше не понятно почему хелпер модулей вне фабрики, или не синглтон...
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Re: Подгрузить параметры модуля
« Ответ #19 : 17.11.2018, 15:36:42 »
тут больше не понятно почему хелпер модулей вне фабрики, или не синглтон...
Ну это же всего лишь хелпер.


Это уже не сайт, это венегрет, тут уже ничего не поможет.. по моему даже хранение параметров модуля в отдельном файле не спасет...
Обычное дело для крупных сайтов на J. Главное юзать что нибудь для удобства поиска модулей в админке.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Подгрузить параметры модуля
« Ответ #20 : 17.11.2018, 16:35:11 »
Обычное дело для крупных сайтов на J. Главное юзать что нибудь для удобства поиска модулей в админке.
уж простите не могу представить ни единого сайта на котором больше 50 модулей для фронта, притом прикидывая самые сложные сайты...
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Re: Подгрузить параметры модуля
« Ответ #21 : 17.11.2018, 17:06:11 »
уж простите не могу представить ни единого сайта на котором больше 50 модулей для фронта, притом прикидывая самые сложные сайты...
Сложный не значит крупный и подавно не значить что так привольно, просто такое бывает.
Вот элементарный пример. 200 категорий. на каждой из них нужно сбоку(в позиции модуля выводить свой текст). Как это сделать штатными средствами?
Вот и получаем 200 пунктов меню и 200 модулей.

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

Вот 1000 на одной странице не бывает. Хотя как-то раз модулей 50 я видел(правда для разный уровней доступа.)

Или вот еще пример был. Был на одном сайте модуль обычных html выводился на главной, а содержание менялось довольно часть. Так место того чтобы просто менять текст. Админ копировал каждый раз модуль.

А вообще к тебе это уже не относиться ибо по теме уже все обсудили.
« Последнее редактирование: 17.11.2018, 17:15:17 от Septdir »
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Счётчик полей в админке модуля

Автор zeus07

Ответов: 9
Просмотров: 1149
Последний ответ 28.06.2021, 13:40:31
от zeus07
Не занимать место под пустой вывод модуля

Автор platonische

Ответов: 11
Просмотров: 1041
Последний ответ 28.04.2020, 07:53:11
от sivers
Проблема вызова модели компонента из модуля

Автор platonische

Ответов: 1
Просмотров: 853
Последний ответ 24.04.2020, 18:32:32
от platonische
Pagination компонента и данные из формы модуля

Автор platonische

Ответов: 4
Просмотров: 1143
Последний ответ 29.01.2020, 11:32:43
от mardok
Доступ к переменной модели из модуля

Автор platonische

Ответов: 18
Просмотров: 2598
Последний ответ 11.01.2020, 22:21:42
от robert