Не поверите, но мне всё-таки удалось разобраться.
На поиск решения ушла неделя.
Вот детальное описание проблемы и схемы устранения.
ВВОДНЫЕ ЗНАНИЯ О КОМПОНЕНТАХПервое, что нужно знать:
компонент VitrueMart - мультиязычный, то есть способен работать с несколькими базами товаров на нескольких языках.
Его разработчики сознательно позаботились об этом, за что им безусловное спасибо.
В некоторых случаях это особенно удобно:
начиная от создания сайта для международной торговли
и заканчивая возможностью водить за нос налоговую инспекцию, скрывая ненужные товары всего в один клик.
Второе, что нужно знать:
компонент News Show Pro GK5 наделён возможностью работать с товарами VitrueMart чуть ли не с самой первой своей версии.
При этом, таблицу с перечнем категорий он подтягивает из базы данных по схеме:
стандартная структура таблиц VitrueMart + окончание, зависящее от настроек языка лицевой панели сайта.
Другими словами:
- если лицевая панель имеет найстройку "английский язык" - News Show Pro GK5 будет искать список категорий в virtuemart_categories_en_gb
- если лицевая панель имеет найстройку "русский язык" - News Show Pro GK5 будет искать список категорий в virtuemart_categories_ru_ru
- если лицевая панель имеет найстройку "сербский язык" - News Show Pro GK5 будет искать список категорий в virtuemart_categories_sr_rs
И так далее.
В ЧЁМ СУТЬВесь demo-контент из quickstart создан для английского языка, а соответственно записи VM сделаны в таблицах с окончанием en_gb, откуда их и берёт News Show Pro GK5.
При смене языка на русский
News Show Pro GK5 начинает искать данные в таблицах с окончанием ru_ru, которых просто не существует.
КОГДА ПРОЯВЛЯЕТСЯСтолкнуться с проблемой можно лишь при изменении языка quickstart соответствующей темы.
Если делать сборку сайта самостоятельно (Joomla + Русификация + VitrueMart + создание товаров + шаблон + компонент) - проблема ВООБЩЕ не проявится.
Всё потому, что при установке VM на чистую Joomla - его таблицы будут созданы в зависимости от языкового пакета, и они же будут использоваться News Show Pro GK5.
КАК РЕШИТЬ ПРОБЛЕМУЕсли по каким-то причинам, вы хотите сохранить demo-данные, то для вас существует два способа.
Самый простой - обновить компонент News Show Pro GK5.
Начиная с версии 1.4.1 разработчкики сообразили, что язык сайта может отличаться от языка базы товаров.
На этот редкий случай в группу настроек VirtueMart Additional Settings
ими было добавлено новое поле - VM language override, дающее возможность указать окончание веток БД.
Учитывая, что даже самые последнии версии шаблонов поставляются с quickstart, собранном на версии компонента 1.2.2 -
увидеть это поле без обновления вам просто не суждено.
Из минусов - указание языкового окончания позволяет решить лишь проблему показа товаров на страницах сайта,
при этом возможность выбора категории в настройках компонента по-прежнему будет недоступна.
Видимо, мозгов разработчикам хватило лишь на лицевую панель.
Второй способ - переименовать таблицы БД.
Все ветки с окончанием en_gb должны быть переименованы в ru_ru.
Сделать это легко и просто - с помощью редактора баз данных. Например, phpMyAdmin.
Этот способ решает обе проблемы - как лицевой, так и административной панели.
Если же demo-данные вам не нужны (для опытных пользователей они - не более, чем хлам) -
вам нужно создать в БД новые таблицы, соответствующие вашей локализации (ru_ru) и набивать товары уже туда.
Сделать это очень просто - достаточно в настройках VM добавить нужный язык.
После этого все созданные ранее товары
уже не будут иметь значения и перестанут отображаться.
Они попросту пропадут, дав вам возможность создать новые.
Кстати, именно в этом причина столь распространённого на форумах вопроса "Почему при смене языка лицевой панели у меня пропали все товары?!" -
ранние версии VM добавляли магазину новый язык автоматически.
Более правильный способ - вообще удалить все demo-таблицы VM и провести его переустановку.
Сложного в этом ничего нет - это делается его собственными, так сказать штатными, средствами.
НУ И САМЫЙ ПРАВИЛЬНЫЙ СПОСОБСАМЫЙ правильный способ - это конечно же собрать всё ручками.
То есть Joomla + Русификация + VitrueMart + создание товаров + шаблон + компонент.
Кстати, на официальном сайте VirtueMart есть возможность скачать специальную сборку Joomla, в которую магазин уже интегрирован.
Эта сборка изначально заточена под использование языковых пакетов, что немного облегчит жизнь пользователю:
1) при первом запуске и развёртывании VirtueMart, таблицы будут созданы в зависимости от языка, выбранного вами при установке,
даже если соответствующего языкового пакета ещё нет в системе.
2) после добавления языкового пакета все настройки интерфейса применятся автоматически.
Спасибо за внимание.