2011-12-29 3 views
5

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

+0

Какой учебник вы придерживались? Какая версия Joomla? – Hanny

+0

Ну что ж, _official_ tutorials я думаю. Вот они: [link] (http://docs.joomla.org/Developing_a_Model-View-Controller_Component_-_Part_1)! Спасибо, что нашли время, чтобы ответить мне, но я нашел ответ ниже ... – ubi

ответ

5

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

1) Название и описание для четырех зрения 2) Титулы пользователь сможет для изменения от администратора (он работает как параметры модуля/плагина) 3) Вы также можете установить «скрытые» переменные запроса для этого пункта меню. Это означает, что эти vars будут добавлены к запросу в этом конкретном пункте меню, но пользователь не сможет изменить его значение.

Вот полный пример для компонента (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> 

Я надеюсь, что это помогло!

+0

Спасибо alghimo, это было все, что я пропустил, теперь это работает! – ubi

0

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

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

3

Если вы просто хотите, чтобы добавить мнение ссылка на список создать файл XML с именем default.xml внутри com_yourcomponent/просмотров/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> 

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

1

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

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

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

Думает, что это то, что Panayiotis пытается сказать

0

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

table_catalog.xml 
table_catalog.php 
table_catalog_item.php 

не работает - не было новой опции в списке «пункт меню».Но

tablecatalog.xml 
tablecatalog.php 
tablecatalog_item.php 

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

Смежные вопросы