Компонент Joomla не появляется в меню типы элементов


Я просто следовал учебникам joomla о том, как создать "идеальный" компонент MVC joomla. Однако моя проблема заключается в том, что я еще не знаю, как назначить его в меню. Я думал, что мой компонент будет просто отображаться, когда я выберу "тип элемента меню", но мой компонент отсутствует в этом списке. Я провел некоторые исследования в Google, но не могу найти ответ... Мне нужно создать метаданные.xml-файл или что-то подобное ? Заранее спасибо за ваши ответы !!

5 5

5 ответов:

Чтобы создать "представления" для вашего компонента, вы должны создать несколько xml-файлов. Внутри папки templates в интерфейсной части вашего компонента (обычно что-то вроде /components/com_yourcomponent/views/someview/tmpl), Если у вас есть шаблон с именем "default.php " и " форма.php", вы можете создать " default.xml-файл и форма "а".xml " файл, чтобы сделать эти пункты меню доступными от администратора. Вы можете взглянуть на другие компоненты, чтобы увидеть структуру этих xml-файлов, но что вы должны положить внутрь это:

1) имя и описание для четырех видов 2) параметры, которые пользователь сможет изменить у администратора (это работает как модуль / плагин params) 3) вы также можете установить "скрытые" переменные запроса для этого пункта меню. Это означает, что эти VAR будут добавлены к запросу в этом конкретном пункте меню, но пользователь не сможет изменить его значение.

Вот полный пример для компонента (Joomla 1.7):

<?xml version="1.0" encoding="utf-8"?>
<metadata>
    <layout title="COM_AGMTAGS_TAG_VIEW_DEFAULT_TITLE">
       <message>COM_AGMTAGS_TAG_VIEW_DEFAULT_DESC</message>
    </layout>
<fields name="request" addfieldpath="/administrator/components/com_agmtags/models/fields">
    <fieldset name="request">
       <field name="tag_id" type="agmtag"
        label="COM_AGMTAGS_TAG_FIELD_NAME_LABEL"
        description="COM_AGMTAGS_TAG_FIELD_NAME_DESC"
       />
    </fieldset>
</fields>
<fields name="params">
    <fieldset name="basic" label="COM_AGMTAGS_TAG_OPTIONS">
       <field name="layout_type" type="hidden" default="blog" />
   <field name="show_tag_name" type="list"
        label="COM_AGMTAGS_SHOW_TAG_NAME"
        description="COM_AGMTAGS_SHOW_TAG_NAME_DESC"
       >
          <option value="">JGLOBAL_USE_GLOBAL</option>
          <option value="0">JHIDE</option>
          <option value="1">JSHOW</option>
       </field>
       <field name="show_tag_description" type="list"
        description="COM_AGMTAGS_SHOW_TAG_DESCRIPTION_DESC"
        label="COM_AGMTAGS_SHOW_TAG_DESCRIPTION_LABEL"
       >
          <option value="">JGLOBAL_USE_GLOBAL</option>
          <option value="0">JHIDE</option>
          <option value="1">JSHOW</option>
       </field>
       <field name="items_per_page" type="text" default="" />
       <field name="container_class" type="text" default="agmtags-list" />
    </fieldset>
</fields>
</metadata>

Надеюсь, это помогло!

Если вы просто хотите добавить ссылку на представление в список, создайте xml-файл с именем default.xml внутри com_yourcomponent / views/yourviewname / tmpl /

Приведенный ниже xml-код содержит две языковые строки, используемые для отображения ссылки на пункт меню в списке

<?xml version="1.0" encoding="utf-8"?>
<metadata>
    <layout title="COM_YOURCOMPONENT_FRONPAGE_TITLE">
       <message>COM_YOURCOMPONENT_FRONPAGE_MSG</message>
    </layout>
</metadata>

Сохраните файл, и ссылка появится в списке пунктов меню

По-видимому, вам также нужны теги меню администрирования в вашем установочном XML-файле. http://forum.joomla.org/viewtopic.php?p=706714

Это сработало для меня

<administration>
    <menu>COM_COMPONET</menu>
    <submenu>
              etc...
    </submenu>

Думаю, это то, что Панайотис пытался сказать

Кроме того, есть еще одна загвоздка. В установочном XML-файле компонента, в разделе теги должны быть присутствуйте, даже если вам не нужно меню.

Если они отсутствуют, то вам никогда не дадут возможность добавления этого компонента в пункт меню, потому что типа там не будет: -)

Кроме того, имена файлов альтернативного представления не должны быть записаны с подчеркиванием.

table_catalog.xml
table_catalog.php
table_catalog_item.php

Не сработало - в списке "Тип элемента меню" не было новой опции. Но

tablecatalog.xml
tablecatalog.php
tablecatalog_item.php

Имена файлов работают идеально. Я потерял целый час, раскрывая проблему.