Мне нужен компонент для конкретного каталога, поэтому я заплатил за него одному фрилансеру. Как оказалось, он не очень хорош в своей работе, и мне дали компонент, который работает только частично. Самые большие проблемы — маршрутизатор, хлебные крошки и массив json для родительских категорий.
в настоящее время он показывает только domain.com/menuitem/viewname?id=X. Есть 4 разных вида, которые выглядят так, как будто они не связаны вообще. в db каждое представление имеет свою собственную таблицу, как было запрошено, важными полями являются следующие:
Main Categories (root):
id, name, alias
General Categories:
id, name, alias, root_id
General Subcategories:
id, name, alias, cat_id
Detail:
id, name, alias, subcat_id[json array]
Я хотел бы, чтобы URL-адреса SEF выглядели так: domain.com/menuitem/root_alias/category_alias/subcategory_alias/detail_alias, но мне сказали, что это невозможно сделать таким образом. Я проверил документацию SEF на портале Joomla, но я не могу понять это (если это вообще возможно, а если нет, то какой будет хороший подход к SEO).
Может быть, это вызвано маршрутизатором и отдельными представлениями, но они всегда показывают Home> Menuitem, но в mainmenu это только / alias, а в хлебных крошках это / alias / mainview. Я нашел, как добавить пользовательские хлебные крошки в путь на портале Joomla, но я не могу понять, как получить родительские элементы. Если бы было решение с SQL, я мог бы использовать его, было бы достаточно.
Я хотел бы изменить его на целочисленное значение и добавить новую таблицу subcategory_detail_xref, чтобы я мог легко находить элементы. Единственный способ сделать это сейчас — это использовать регулярные выражения в SQL, что я не считаю хорошей идеей. Я проверил учебники на портале Joomla, но это выглядит слишком сложно.
Любые идеи, ссылки на примеры или учебные пособия, которые могут помочь или решения высоко ценятся.
PS: Мой сайт работает на последней версии Joomla (3.5), поэтому, если есть решения, доступные только для 3.5+, это нормально, я не собираюсь понижать рейтинг
За исходным кодом маршрутизатора вы можете обратиться к com_content, он аналогичен вашему, в версии 3.5 маршрутизатор должен реализовывать интерфейс.
На сайте разработчиков Joomla нет подробного документа, com_content — это именно то, что вы можете узнать, чтобы получить его.
Хлебные крошки вы должны разработать аналог логики маршрутизатора
Таблица категорий должна расширять JNestedTable для многоуровневой древовидной структуры
Других решений пока нет …