Difference between revisions of "Developing an MVC Component/Adding a menu type to the site part"
From Joomla! Documentation
< J3.x:Developing an MVC Component
Scionescire (talk | contribs) |
Scionescire (talk | contribs) m (→Adding a menu item type: added highlight) |
||
(2 intermediate revisions by the same user not shown) | |||
Line 26: | Line 26: | ||
<metadata> | <metadata> | ||
<layout title="COM_HELLOWORLD_HELLOWORLD_VIEW_DEFAULT_TITLE"> | <layout title="COM_HELLOWORLD_HELLOWORLD_VIEW_DEFAULT_TITLE"> | ||
− | <message> | + | <message>COM_HELLOWORLD_HELLOWORLD_VIEW_DEFAULT_DESC</message> |
− | |||
− | |||
</layout> | </layout> | ||
</metadata> | </metadata> | ||
Line 39: | Line 37: | ||
<span id="helloworld.xml"> | <span id="helloworld.xml"> | ||
''helloworld.xml'' | ''helloworld.xml'' | ||
− | <source lang="xml"> | + | <source lang="xml" highlight="13"> |
<?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | ||
− | <extension type="component" version="3.2" method="upgrade"> | + | <extension type="component" version="3.2.0" method="upgrade"> |
<name>Hello World!</name> | <name>Hello World!</name> | ||
Line 75: | Line 73: | ||
<administration> | <administration> | ||
<!-- Administration Menu Section --> | <!-- Administration Menu Section --> | ||
− | <menu>Hello World!</menu> | + | <menu link='index.php?option=com_helloworld'>Hello World!</menu> |
<!-- Administration Main File Copy Section --> | <!-- Administration Main File Copy Section --> | ||
<!-- Note the folder attribute: This attribute describes the folder | <!-- Note the folder attribute: This attribute describes the folder | ||
Line 112: | Line 110: | ||
* ''[[J3.2:Developing_a_MVC_Component/Developing_a_Basic_Component#index.html|admin/sql/updates/mysql/index.html]]'' | * ''[[J3.2:Developing_a_MVC_Component/Developing_a_Basic_Component#index.html|admin/sql/updates/mysql/index.html]]'' | ||
* ''[[J3.2:Developing_a_MVC_Component/Developing_a_Basic_Component#admin/sql/updates/mysql/0.0.1.sql|admin/sql/updates/mysql/0.0.1.sql]]'' | * ''[[J3.2:Developing_a_MVC_Component/Developing_a_Basic_Component#admin/sql/updates/mysql/0.0.1.sql|admin/sql/updates/mysql/0.0.1.sql]]'' | ||
− | [[File:Com_helloworld_v3-0.0.3.png|thumb|right|400px|Selecting the Menu Item Type]] Create a compressed file of this directory or directly download the [https://github.com/ | + | [[File:Com_helloworld_v3-0.0.3.png|thumb|right|400px|Selecting the Menu Item Type]] Create a compressed file of this directory or directly download the [https://github.com/scionescire/Joomla-3.2-Hello-World-Component/archive/step-3-adding-a-site-menu.zip archive] and install it using the extension manager of Joomla. You can add a menu item of this component using the menu manager in the backend. To do so select "Add New Menu Item" from the one of the menus in the "Menus" menu; then you can select COM_HELLOWORLD_HELLOWORLD_VIEW_DEFAULT_TITLE for Menu Item Type. Once selected you can see the Link information is populated with the URL for the view. |
<br style="clear: both" /> | <br style="clear: both" /> | ||
Revision as of 07:31, 18 February 2015
{{Chunk:Developing a Model-View-Controller (MVC) Component for Joomla!3.1 - Contents/<translate> en</translate>}} <translate> This is a multiple-article series of tutorials on how to develop a Model-View-Controller Component for Joomla! Version.</translate>
<translate> Begin with the Introduction, and navigate the articles in this series by using the navigation button at the bottom or the box to the right (the Articles in This series).</translate>
Introduction[edit]
This tutorial is part of the Developing a MVC Component for Joomla!3.2 tutorial. You are encouraged to read the previous parts of the tutorial before reading this.
Abstract[edit]
Generally speaking, this article describes how to get a link on your joomla page to open a specific page of your component. This gets simply done by adding an xml file to your specific page into your view folder.
E.g.
site/views/helloworld/tmpl/
Contains your view page default.php that we want to open.
A file default.xml is placed next to this file with some xml. This makes joomla able to recognize the view file default.php as a menu item.
[edit]
In the Joomla framework, components are executed using menu items. If you go in the menu manager of your Joomla installation a HelloWorld menu item type does not yet exist. Adding this functionality is easy in Joomla. Simply put a site/views/helloworld/tmpl/default.xml file containing:
site/views/helloworld/tmpl/default.xml
<?xml version="1.0" encoding="utf-8"?>
<metadata>
<layout title="COM_HELLOWORLD_HELLOWORLD_VIEW_DEFAULT_TITLE">
<message>COM_HELLOWORLD_HELLOWORLD_VIEW_DEFAULT_DESC</message>
</layout>
</metadata>
For the moment the strings won't be translated in the administrator interface. We will see in a later article how translation is performed.
Also modify your helloworld.xml file to indicate a new version:
helloworld.xml
<?xml version="1.0" encoding="utf-8"?>
<extension type="component" version="3.2.0" method="upgrade">
<name>Hello World!</name>
<!-- The following elements are optional and free of formatting constraints -->
<creationDate>January 2014</creationDate>
<author>John Doe</author>
<authorEmail>john.doe@example.org</authorEmail>
<authorUrl>http://www.example.org</authorUrl>
<copyright>Copyright Info</copyright>
<license>License Info</license>
<!-- The version string is recorded in the components table -->
<version>0.0.3</version>
<!-- The description is optional and defaults to the name -->
<description>Description of the Hello World component ...</description>
<update> <!-- Runs on update; New since J2.5 -->
<schemas>
<schemapath type="mysql">sql/updates/mysql</schemapath>
</schemas>
</update>
<!-- Site Main File Copy Section -->
<!-- Note the folder attribute: This attribute describes the folder
to copy FROM in the package to install therefore files copied
in this section are copied from /site/ in the package -->
<files folder="site">
<filename>index.html</filename>
<filename>helloworld.php</filename>
<filename>controller.php</filename>
<folder>views</folder>
</files>
<administration>
<!-- Administration Menu Section -->
<menu link='index.php?option=com_helloworld'>Hello World!</menu>
<!-- Administration Main File Copy Section -->
<!-- Note the folder attribute: This attribute describes the folder
to copy FROM in the package to install therefore files copied
in this section are copied from /admin/ in the package -->
<files folder="admin">
<!-- Admin Main File Copy Section -->
<filename>index.html</filename>
<filename>helloworld.php</filename>
<!-- SQL files section -->
<folder>sql</folder>
</files>
</administration>
</extension>
Packaging the component[edit]
Content of your code directory
- helloworld.xml
- site/helloworld.php
- site/index.html
- site/controller.php
- site/views/index.html
- site/views/helloworld/index.html
- site/views/helloworld/view.html.php
- site/views/helloworld/tmpl/index.html
- site/views/helloworld/tmpl/default.xml
- site/views/helloworld/tmpl/default.php
- admin/index.html
- admin/helloworld.php
- admin/sql/index.html
- admin/sql/updates/index.html
- admin/sql/updates/mysql/index.html
- admin/sql/updates/mysql/0.0.1.sql
Create a compressed file of this directory or directly download the archive and install it using the extension manager of Joomla. You can add a menu item of this component using the menu manager in the backend. To do so select "Add New Menu Item" from the one of the menus in the "Menus" menu; then you can select COM_HELLOWORLD_HELLOWORLD_VIEW_DEFAULT_TITLE for Menu Item Type. Once selected you can see the Link information is populated with the URL for the view.
Please create a pull request or issue at https://github.com/joomla/Joomla-3.2-Hello-World-Component for any code descprepancies or if editing any of the source code on this page.
J3.x:Developing a MVC Component/Navigate