При переделке компонента для версии Joomla 2.5 столкнулся с небольшой проблемой. Все работает нормально. Но если попробовать добавить новый пункт в меню, то при выборе типа меню (Select a Menu Item Type) нет упоминаний компонента. Поискав по интернету как решить эту проблему ничего путного не нашел. Есть вариант с указанием внешней ссылки и вводом URL до компонента вручную (index.php?option=com_componentname), но это некрасиво. Немного покопав компонент меню нашел следующие решение:
Есть два способа задать эти пункты для типов меню. Один используется при создании компонента по модели MVC. И похоже что где-то внутри модели или контролера или view можно задать на какой тип оно все будет отзываться. Более подробно не изучал так как компонент у меня простой (возможно его еще и под 1.0 писали).
Поэтому сразу приступил ко второму более быстрому и простому варианту. Оказывается что некоторые данные берутся из файла metadata.xml, который может лежать в папке frontend компонента.
Таким образом я создал файл metadata.xml прямо в папке /components/com_componentname.
Содержимое файла было следующие:
<?xml version="1.0" encoding="utf-8"?> <metadata> <menu options="none" name="componentname" /> </metadata>
Аттрибут options и его значение none понадобились для того что-бы «пойти» по легкому пути. С настройками возможны вариации, но если честно ради академического интереса разбираться с ними было лень.
А так в результате при выборе типа пункта меню появился новый элемент. И если выбрать тип меню «componentname» то добавляется элемента, который по сути является ссылкой index.php?option=com_componentname