Почитать другие заметки или статьи

Заканчивается первая неделя совместного использования Joomla 5 и Virtuemart. Начинают проявляться первые ошибки в работе знаменитого компонента интернет-магазина. Написал, я эту заметку, чтобы разобрать первую из них. Однако, всё, что буду обнаруживать впоследствии, буду также добавлять в эту статью.

Joomla\CMS\HTML\HTMLHelper Select not found

Ошибка появляется в административной панели при редактировании товара, категории и всего того, где присутствуют выпадающие списки. То, что в HTML именуется тегом SELECT.

Формирование таких списков в Virtuemart происходит,как правило, файле:

administrator/components/com_virtuemart/helpers/shopfunctions.php

Впрочем, встречаются они и в других местах. Чтобы выяснить все такие места, в общих настройках Joomla рекомендую включить режим отладки.

Ниже я опишу принцип исправления ошибки. А места в коде придется найти самостоятельно.

Решение ошибки

Если посмотреть код, отвечающий за вывод списков, то можно увидеть нечто вроде:

$listHTML = JHtml::_ ('Select.genericlist', $lu_list, $name, '', $name, 'text', $selected);

Хочется заметить, что класс JHtml лучше заменить на HTMLHelper, чтобы получилось вот так:

$listHTML = HTMLHelper::_ ('Select.genericlist', $lu_list, $name, '', $name, 'text', $selected);

При этом, в начале документа необходимо подключить этот класс командой USE:

use Joomla\CMS\HTML\HTMLHelper;

Всё это приблизит наш код к требованиям Joomla 5, однако не исправит ошибку.

А ошибка заключается в том, что первое значение отправляемое в класс JHtml (или HTMLHelper) написано разработчиками Virtuemart по неизвестной причине с заглавной буквы.

Написано так:

'Select.genericlist'

Должно быть так:

'select.genericlist'

Поэтому исправляем.

Наш окончательный вариант будет следующим:

$listHTML = HTMLHelper::_ ('select.genericlist', $lu_list, $name, '', $name, 'text', $selected);

Сохраняем требуемые файлы и наслаждаемся корректной работой админ панели Virtuemart.

Если у вас остались вопросы и предложения, милости прошу в мою группу VK.COM:

https://vk.com/sitogon

С уважением, Владимир Егоров