Новости Joomla

Вышли релизы Joomla 6.1 и Joomla 5.4.5: новые возможности и стабильность

Релиз Joomla 6.1.0

Проект Joomla! объявил о доступности Joomla 6.1 [Nyota] — новой минорной версии шестой серии, а также о выпуске релиза исправлений ошибок Joomla 5.4.5. Релиз 6.1 приносит ряд долгожданных функций, повышающих удобство управления контентом и защиту от спама.

👩‍💻 Компонент "CS Афиши" для Joomla.

👩‍💻 Компонент "CS Афиши" для Joomla.

Расширение "CS Афиши" позволяет выводить список мероприятий, фильтровать их по датам, поиск по заголовкам и описанию.

В состав пакета расширений входят:
- Компонент "CS Афиши"
- Модуль "Календарь событий"
- Модуль "Предстоящие события"
- Библиотека "ImgResize"

Расширение "CS Афиши" позволяет выводить список мероприятий, фильтровать их по датам, поиск по заголовкам и описанию.

Модуль "Календарь событий" отображает предстоящие и прошедшие мероприятие на календаре, с отображением мероприятий на конкретную дату во всплывающем окне.

Модуль "Предстоящие события" показывает список предстоящий событий по порядку их наступления.

P.S. Расширение платное, но плата символическая, чисто для отработки приема платежей. Ключи без ограничения по времени, купившие сейчас - смогут обновляться без ограничений.

Разработчик - участник нашего сообщества Дмитрий Денисов (@codersite).

Страница расширения
Демо

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

Avalon

  • Осваиваюсь на форуме
  • 34
  • 8 / 0
Баг в ajax умном поиске
« : 27.11.2020, 23:52:06 »
в версии Joomla 3.9.22 работали AJAX подсказки умного поиска, но после обновления на Joomla 3.9.23 перестало AJAX работать.

проблема в файле /public_html/components/com_finder/models/suggestions.php из обновления Joomla 3.9.23
если заменить версию файла suggestions.php из Joomla 3.9.22 вместо 3.9.23 то все работает!

В файле Joomla 3.9.23 /public_html/components/com_finder/models/suggestions.php
внесли изменения в запрос AJAX умного поиска, и AJAX запрос вида
/component/finder/?task=suggestions.suggest&format=json&tmpl=component&q=авто
возвращает пустое значение { "suggestions": [] }

Создание нового индекса поиска не исправляет проблему, пока заменил файл из версии 3.9.22
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Re: Баг в ajax умном поиске
« Ответ #1 : 28.11.2020, 00:09:09 »
В 3.9.23 исправляли уязвимость:

Низкий приоритет - Ядро - Компонент com_finder игнорирует уровни доступа в списках автоподстановки

Возможно не хватает прав пользователя на что-то.
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Re: Баг в ajax умном поиске
« Ответ #2 : 28.11.2020, 00:12:05 »
https://github.com/joomla/joomla-cms/commit/435d780d9a87504267256033c5f6fb984f713ff9#diff-14a2966722be708322f2d1831afe62532a612bb533292ada5910192e1b3dc065


Вот правка файла. Я сильно не вникал, но видно, что в запрос добавили проверку уровней доступа пользователей.
*

Avalon

  • Осваиваюсь на форуме
  • 34
  • 8 / 0
Re: Баг в ajax умном поиске
« Ответ #3 : 28.11.2020, 09:21:14 »
В 3.9.23 исправляли уязвимость:
Низкий приоритет - Ядро - Компонент com_finder игнорирует уровни доступа в списках автоподстановки.
Возможно не хватает прав пользователя на что-то.
Если они добавили проверку прав, то надо было им указать: какие права нужны и где!  *ОХ-Х-Х*
Права на что-то... где-то... не устраивает. Работало, после обновления перестало работать.
Пока заменил файлом suggestions.php из версии joomla 3.9.22 всё работает.
Цитировать
игнорирует уровни доступа в списках автоподстановки
Как Guru Joomla! подскажите, где находятся эти "права списков авподстановки" и что в них менять? что игнорирует и где непонятно, создаю и даю все права доступа модулю "умный поиск" не работает!  *POPCORN*
« Последнее редактирование: 28.11.2020, 09:37:09 от Avalon »
*

Avalon

  • Осваиваюсь на форуме
  • 34
  • 8 / 0
Re: Баг в ajax умном поиске
« Ответ #4 : 28.11.2020, 23:09:29 »
проверил на новой установке Joomla 3.9.23 умный поиск с AJAX работает только английскими словами  *ОХ-Х-Х*
« Последнее редактирование: 29.11.2020, 12:22:08 от Avalon »
*

Avalon

  • Осваиваюсь на форуме
  • 34
  • 8 / 0
Re: Баг в ajax умном поиске
« Ответ #5 : 29.11.2020, 03:25:18 »
Вот правка файла. Я сильно не вникал, но видно, что в запрос добавили проверку уровней доступа пользователей.

AJAX умного поиска работает только на Английских словах, на русских не работает. Это не связано с правами доступа.
Не смог найти в чём причина бага. На новой установке работает только с английскими словами, на русских не работает.
У Вас нет такого бага, можете у себя проверить?
« Последнее редактирование: 29.11.2020, 13:10:47 от Avalon »
*

Avalon

  • Осваиваюсь на форуме
  • 34
  • 8 / 0
Re: Баг в ajax умном поиске
« Ответ #6 : 29.11.2020, 12:42:45 »
Итак нашел причину покопавшись дебаггером, почему не работает AJAX умного поиска с Русскими словами, а только с Английскими
Интересно то, что русские слова на букву Е работают, а остальные нет!

В файле Joomla 3.9.23 /public_html/components/com_finder/models/suggestions.php
создаётся суффикс таблицы базы "#__finder_links_terms+СУФФИКС", в таблице базы в которой надо искать нужное Русское слово
Код
// Determine the relevant mapping table suffix by inverting the logic from drivers
$mappingTableSuffix = substr(md5(substr($this->getState('input'), 0, 1)), 0, 1);
...

// Join mapping table for term <-> link relation
$mappingTable = $db->quoteName('#__finder_links_terms' . $mappingTableSuffix);

затем создаётся запрос вида
Код
SELECT DISTINCT(t.term)
FROM j_finder_terms AS t
INNER JOIN j_finder_links_terms8 AS tm ON tm.term_id = t.term_id
INNER JOIN j_finder_links AS l ON (tm.link_id = l.link_id)
WHERE t.term_id IN (7765,8329,8331,8328,8576,8324,8320,8330,8327,8326,8319,8322,8575,8323,8321,8325)
AND l.access IN (1,1,2,3,6)
AND l.state = 1
AND l.published = 1
ORDER BY t.links DESC, t.weight DESC
где:
8 - суффикс таблицы базы, в которой надо искать слово (j_finder_links_terms8)
-------------------------------------
Но в этой таблице нет этих слов! Слова находятся в соседней таблице с суффиксом c (j_finder_links_termsc) поэтому SQL запрос выдаёт пустое значение и AJAX поиск пустой!
Проблема связана с неправильным формированием суффикса таблицы где лежат русские слова! Если перенести нужные значение русских слов в таблицу с суффиксом 8, то AJAX запрос умного поиска начинает работать с русским словами!
Русские слова на букву Е помещаются изначально в нужную таблицу- поэтому корректно работает только с буквой Е
Как правильно сформировать суффикс не знаю. Пока откатил на файл версии Joomla 3.9.22 с ним работает, так как SQL запрос проще.
« Последнее редактирование: 30.11.2020, 13:18:55 от Avalon »
*

Avalon

  • Осваиваюсь на форуме
  • 34
  • 8 / 0
Re: Баг в ajax умном поиске
« Ответ #7 : 29.11.2020, 12:56:30 »
del
*

sivers

  • Живу я здесь
  • 2610
  • 363 / 0
Re: Баг в ajax умном поиске
« Ответ #8 : 29.11.2020, 16:01:24 »
Как правильно сформировать суффикс не знаю.
А в старой версии он как-то не так формируется? Попробуйте заменить функцию substr на mb_substr в этой строке:
Код
$mappingTableSuffix = substr(md5(substr($this->getState('input'), 0, 1)), 0, 1);
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

Avalon

  • Осваиваюсь на форуме
  • 34
  • 8 / 0
Re: Баг в ajax умном поиске
« Ответ #9 : 29.11.2020, 21:46:31 »
А в старой версии он как-то не так формируется? Попробуйте заменить функцию substr на mb_substr в этой строке:
Код
$mappingTableSuffix = substr(md5(substr($this->getState('input'), 0, 1)), 0, 1);

Спасибо, Ваш способ решает проблему с заменой substr на mb_substr но нашёл другой способ из другого файла joomla

В старой вообще не формировался, а в соседнем файле components\com_finder\models\search.php формируется через функцию utf8_substr в функции StringHelper::substr

Решение как в файле search.php
В файле components\com_finder\models\suggestions.php меняем на
Код
// подключаем в начале файла класс сразу после defined('_JEXEC') or die;
use Joomla\String\StringHelper;

//заменяем багованый файл на исправный
//$mappingTableSuffix = substr(md5(substr($this->getState('input'), 0, 1)), 0, 1);
$mappingTableSuffix = StringHelper::substr(md5(StringHelper::substr($this->getState('input'), 0, 1)), 0, 1);
После исправления AJAX умного поиска кириллицы работает исправно!
« Последнее редактирование: 03.12.2020, 18:22:17 от Avalon »
*

Avalon

  • Осваиваюсь на форуме
  • 34
  • 8 / 0
Re: Баг в ajax умном поиске
« Ответ #10 : 29.11.2020, 22:46:03 »
создал pull request на github с исправлением этой ошибки
Ошибка
https://github.com/joomla/joomla-cms/issues/31532

Изменения pull request
https://github.com/joomla/joomla-cms/pull/31533/files
*

Avalon

  • Осваиваюсь на форуме
  • 34
  • 8 / 0
Re: Баг в ajax умном поиске
« Ответ #11 : 30.11.2020, 13:00:31 »
Исправление проверили и приняли к версии joomla! 3.9.24
https://github.com/joomla/joomla-cms/pull/31533
« Последнее редактирование: 30.11.2020, 13:13:03 от Avalon »
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться