Т.е.? Что не так-то было? Вот почему изо всех ответы выуживать нужно? Ну если нашел решение - расскажи пожалуйста... мало ли... завтра у кого еще такая фигня вылезет и будет флудить... Ребята, давайте делиться опытом.
Это я смотрел проблему. Я же и отпишусь.
Сразу скажу, что очень странная конструкция внутренностей.
Например ....?option=com_virtuemart&view=product&task=edit&virtuemart_product_id=346&product_parent_id=
0 - здесь у товара в админке указана категория, а из анализа пути следует, что родительская категория этого товара: "0". А такой, как известно, не существует.
Вот другой товар в той же категории в админке: ....?option=com_virtuemart&view=product&task=edit&virtuemart_product_id=391&product_parent_id=
0У него в поле "Категории" пусто. И по какой-то причине в списке можно выбрать только категорию "Мобильная связь" и её дочернюю.
Это всё при том, что на фасаде товары показываются, как положено.
Генератор показывает товары только из категории "Мобильная связь", у остальных - только собственно имена категорий.
Забавы с публикацией-распубликацией категорий и товаров ничего не дали.
Но главное, что я выяснил - дело не в генераторе, он работает корректно, сообразно запросам в базу. Так что паника отменяется.
Скорее всего в разных частях базы указаны различные значения для одного и того же параметра товара. Как этого можно достичь - не знаю.
Теперь немного по самому генератору.
Какая-то нехороший человек вставила активацию всех категорий в функцию ResetAndUpdate. Зачем?
вполне допускаю, что где-то такой режим работы нужен, но он полностью отменяет работу её первой половины.
function ResetAndUpdate (){ // Функция-инициатор
$db = JFactory::getDBO();
$query = "UPDATE #__virtuemart_categories SET published = '0' "; //Делаем все папки неактивными. Так надо.
$db->setQuery($query);
$db->Query(); // Исполняем запрос.
Update(0); // Вызываем рекурсивную функцию Update (с начальным каталогом, которого не существует:).
$db = JFactory::getDBO();
$query = "UPDATE #__virtuemart_categories SET published = '1' "; //Делаем все папки активными. Так надо.
$db->setQuery($query);
$db->Query(); // Исполняем запрос.
}
Предлагаю "активаторную" часть функции выделить в отдельную и добавить для неё свою кнопку.
Ну и включить в эту функцию принудительную активацию всех товаров.
Да, и ещё: можно добавить в админку галочки для включения/выключения кнопок фасадной части модуля.