Новости Joomla

Модификация WT JShopping products anywhere - Uikit макетИтак, дано: музыкальный журнал, в котором...

Модификация WT JShopping products anywhere - Uikit макетИтак, дано: музыкальный журнал, в котором...

Модификация WT JShopping products anywhere - Uikit макетИтак, дано: музыкальный журнал, в котором представлены новости, интервью, рецензии и есть небольшой магазин на JoomShopping. Возникла необходимость внутри Joomla статей вставлять упоминание релиза и кнопочку «добавить в корзину». Я взял плагин WT JShopping products anywhere Сергея Толкачева (@webtolkru). Плагин отображает название товара и ссылку. При помощи напильника, ИИ и навыков вёрстки появился

Uikit макет для шаблонов на базе Yootheme Pro.Учитываается мобильная версия - телефоны и ipad.Кнопка добавления в корзину работает по Ajax и появляется всплывающее окно (Notification Bar от Uikit) с информацией.Пока это базовый вариант, требующий доведения до лоска, однако он уже работает и его можно применять на проектах.Взять макет можно здесь.А плагин вставки товаров в материалы можно забрать здесь.Приветствуется доведение до ума и оформление в виде PR.

WT Content Image Gallery v.1.2.3 - плагин галереи изображений для Joomla

WT Content Image Gallery v.1.2.3 - плагин галереи изображений для Joomla

👩‍💻 WT Content Image Gallery v.1.2.3 - плагин галереи изображений для Joomla.Пакет плагинов галереи изображений и видео для вставки в материалы и модули Joomla, а так же везде, где работают плагины группы

content. Поддержка собственных макетов вывода для галерей. Смешанные фото+видео галереи. Плагин создан как замена Simple Image Gallery и поддерживает синтаксис
{gallery}{/gallery}.👩‍💻 v.1.2.3. Что нового?- Обработка вступительного и полного текста для материалов Joomla. Добавлена обработка шорткодов в полном и вступительном текстах материалов Joomla.- Системные требования. Повышены минимальные требования до Joomla 5 и PHP 8.1.- Мелкие правки. Исправлена ошибка работы макета по умолчанию в плагине контента.- Joomla 6. Пакет плагинов успешно протестирован на Joomla 6.
Страница расширения.GitHub расширенияJoomla Extensions Directory@joomlafeed#joomla #расширения

Совет по Joomla: несколько значений по умолчанию в XML-формах для стандартных полей типа list

👩‍💻 Совет по Joomla: несколько значений по умолчанию в XML-формах для стандартных полей типа list.При работе над плагином возникла необходимость указать стандартный набор из нескольких элементов стандартного поля списка. И хотелось указать их в стандартном же атрибуте
default для полей. Когда это нужно?Когда Ваши пользователи устанавливают плагин и НЕ заходят в настройки - в коде вы можете использовать значения по умолчанию с помощью класса
Registry (
писал об этом ранее) и всегда быть уверенным, что хоть какие-то жизненно необходимые параметры к вам придут всегда. 🧐 Но как сделать то же самое для интерфейса админки?Пользователя нужно направлять, предлагать очевидный работоспособный сценарий для начала, а дальше он уже сам разберется. Когда человек заходит в параметры свежеустановленного плагина в
Form ещё нет данных и параметры по умолчанию выставляются из атрибутов
default в xml-полях.
<field name="showdesc" type="radio"                       label="PLG_CFI_PARAM_SHOWDESC"                       class="btn-group btn-group-yesno"                       default="1">                    <option value="0">JNO</option>                    <option value="1">JYES</option>                </field>
Здесь по умолчанию будет включено "Да". И если пользователь не переключит параметр, то при сохранении мы ожидаемо получим "да" в
params плагина.Для поля списков
type=&quot;list&quot; можно указать значение по умолчанию и многие знают, что его можно указать только одно.
<field type="list"                       name="article_fields"                       label="article_fields"                       description="article_fields_desc"                       layout="joomla.form.field.list-fancy-select"                       multiple="true"                       default="id"                >                    <option value="id">id</option>                    <option value="title">title</option>                    <option value="alias">alias</option>                    <option value="introtext">introtext</option>                    <option value="fulltext">fulltext</option>                    <option value="state">state</option></field>
Но у нас поле с множественным выбором (атрибут
multiple) и хотелось бы указать несколько значений по умолчанию...Оказывается, так можно сделать. Для этого в атрибуте
default нужно указать json с нужными параметрами в виде
{int}key : {string} value.Например, default='{"0":"id","1":"title"}'.
<field type="list"                       name="article_fields"                       label="article_fields"                       description="article_fields_desc"                       layout="joomla.form.field.list-fancy-select"                       multiple="true"                       default='{"0":"id","1":"title"}'                >                    <option value="id">id</option>                    <option value="title">title</option>                    <option value="alias">alias</option>                    <option value="introtext">introtext</option>                    <option value="fulltext">fulltext</option>                    <option value="state">state</option></field>
⚠️ Обратите внимание на кавычки! Поскольку
json_decode не понимает одинарные кавычки собственно
json нужно писать с двойными, а значение для атрибута
default писать в одинарные.🙏 За подсказанное решение огромное спасибо участникам нашего сообщества - разработчикам Дмитрию Васюкову (@fictionlabs) и Игорю Бердичевскому (@septdir).@joomlafeed#joomla #разработка #webdev #development

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

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&amp;format=json&amp;tmpl=component&q=авто
возвращает пустое значение { "suggestions": [] }

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

b2z

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

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

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

b2z

  • Глобальный модератор
  • 7287
  • 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

  • Живу я здесь
  • 2593
  • 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

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