Новости Joomla

Вышел плагин CFI v.2.0.0 - экспорт/импорт материалов Joomla в таблицы.

Вышел плагин CFI v.2.0.0 - экспорт/импорт материалов Joomla в таблицы.

Плагин позволяет делать экспорт материалов Joomla в CSV файл, после чего вы можете отредактировать данные в табличном редакторе (например, Excel или OpenOffice Calc) и затем загрузить файл обратно. В некоторых случаях это удобнее и быстрее.

Плагин позволяет выгружать ID тегов, а также работать с пользовательскими полями материалов Joomla и обычно нередактируемыми свойствами материалов: просмотры, дата изменения и т.д.

Первые версии плагина CFI создал разработчик AlekVolsk для Joomline. Он разработал версии 1.0.0–1.0.16 для Joomla 3. Затем, в 2026 году, плагин был передан компании WebTolk для дальнейшего развития.

CFI v.2.0.0 — Что нового?

  1. Рефакторинг. Плагин полностью переписан заново.
  2. Новый интерфейс импорта/экспорта. Экспорт и импорт открываются в модальном окне. Появилась возможность выбора свойств материала, тегов и пользовательских полей для экспорта непосредственно перед началом экспорта.
  3. Фильтрация материалов при экспорте. Вы можете отфильтровать нужные материалы с помощью стандартных параметров поиска в панели администратора и экспортировать только их: избранные, опубликованные, материалы из определённых категорий, с заданным тегом и т.д.
  4. Импорт и экспорт всех данных материала. Ранее плагин позволял экспортировать только часть данных. Теперь можно изменять все данные материала, доступные в форме редактирования, включая нередактируемые (просмотры, дата изменения и др.). Это позволяет быстро обновлять meta-description или только данные пользовательских полей.
  5. Импорт только пользовательских полей. Обязательным полем для импорта остаётся только articleid. Это позволяет импортировать исключительно данные пользовательских полей без изменения основного содержимого материала.
  6. Joomla 6. Плагин переписан в соответствии с актуальной архитектурой Joomla 4+ и успешно протестирован на Joomla 6.
  7. Для разработчиков: предобработка плагинами. Возможна обработка данных собственными плагинами группы cfi непосредственно перед импортом или экспортом. Доступные события:
    • onExportPrepareData($event)
    • onImportPrepareArticleData($event)

Системные требования

  • Joomla 4.3+
  • PHP 8.1+

Для обновления со старых версий выпущен релиз 1.0.16, в котором добавлен новый сервер обновлений.

Ссылки

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

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

  • Живу я здесь
  • 2599
  • 360 / 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
  • Разраблю понемногу
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться