J2.5:Developing a MVC Component/Adding a menu type to the site part
(→Adding a menu type) |
m (Removed external link.) |
||
| (46 intermediate revisions by 13 users not shown) | |||
| Line 1: | Line 1: | ||
| − | {{ | + | {{version/tutor|2.5}} |
| − | + | {{Chunk:Developing a Model-View-Controller (MVC) Component for Joomla!2.5 - Contents}} | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | == | + | == Introduction == |
| − | This tutorial is part of the [[Developing a Model-View-Controller (MVC) Component for Joomla! | + | This tutorial is part of the [[Developing a Model-View-Controller (MVC) Component for Joomla!2.5]] tutorial. You are encouraged to read the previous parts of the tutorial before reading this. |
| − | == Adding a menu type == | + | == Adding a menu item type == |
| − | In the Joomla | + | 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: |
<span id="site/views/helloworld/tmpl/default.xml"> | <span id="site/views/helloworld/tmpl/default.xml"> | ||
''site/views/helloworld/tmpl/default.xml'' | ''site/views/helloworld/tmpl/default.xml'' | ||
<source lang="xml"> | <source lang="xml"> | ||
| − | <?xml version="1.0" encoding="utf-8" ?> | + | <?xml version="1.0" encoding="utf-8"?> |
<metadata> | <metadata> | ||
| − | <layout title=" | + | <layout title="COM_HELLOWORLD_HELLOWORLD_VIEW_DEFAULT_TITLE"> |
| − | <message> | + | <message> |
| + | <![CDATA[COM_HELLOWORLD_HELLOWORLD_VIEW_DEFAULT_DESC]]> | ||
| + | </message> | ||
</layout> | </layout> | ||
</metadata> | </metadata> | ||
</source> | </source> | ||
</span> | </span> | ||
| − | For the moment the strings won't be translated in the administrator interface. We will see in a | + | 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: | Also modify your ''helloworld.xml'' file to indicate a new version: | ||
| Line 33: | Line 28: | ||
''helloworld.xml'' | ''helloworld.xml'' | ||
<source lang="xml"> | <source lang="xml"> | ||
| − | + | <extension type="component" version="2.5.0" method="upgrade"> | |
| − | <extension type="component" version=" | + | |
<name>Hello World!</name> | <name>Hello World!</name> | ||
| + | <!-- The following elements are optional and free of formatting constraints --> | ||
<creationDate>November 2009</creationDate> | <creationDate>November 2009</creationDate> | ||
<author>John Doe</author> | <author>John Doe</author> | ||
| Line 42: | Line 38: | ||
<copyright>Copyright Info</copyright> | <copyright>Copyright Info</copyright> | ||
<license>License Info</license> | <license>License Info</license> | ||
| + | <!-- The version string is recorded in the components table --> | ||
<version>0.0.3</version> | <version>0.0.3</version> | ||
| + | <!-- The description is optional and defaults to the name --> | ||
<description>Description of the Hello World component ...</description> | <description>Description of the Hello World component ...</description> | ||
| + | |||
| + | <update> <!-- Runs on update; New in 2.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"> | <files folder="site"> | ||
<filename>index.html</filename> | <filename>index.html</filename> | ||
| Line 50: | Line 59: | ||
<folder>views</folder> | <folder>views</folder> | ||
</files> | </files> | ||
| + | |||
<administration> | <administration> | ||
| + | <!-- Administration Menu Section --> | ||
<menu>Hello World!</menu> | <menu>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"> | <files folder="admin"> | ||
| + | <!-- Admin Main File Copy Section --> | ||
<filename>index.html</filename> | <filename>index.html</filename> | ||
<filename>helloworld.php</filename> | <filename>helloworld.php</filename> | ||
| + | <!-- SQL files section --> | ||
| + | <folder>sql</folder> | ||
</files> | </files> | ||
</administration> | </administration> | ||
| + | |||
</extension> | </extension> | ||
</source> | </source> | ||
| Line 65: | Line 84: | ||
Content of your code directory | Content of your code directory | ||
* ''[[#helloworld.xml|helloworld.xml]]'' | * ''[[#helloworld.xml|helloworld.xml]]'' | ||
| − | * ''[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla! | + | * ''[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_01#index.html|site/index.html]]'' |
| − | * ''[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla! | + | * ''[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_02#site/helloworld.php|site/helloworld.php]]'' |
| − | * ''[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla! | + | * ''[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_02#site/controller.php|site/controller.php]]'' |
| − | * ''[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla! | + | * ''[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_01#index.html|site/views/index.html]]'' |
| − | * ''[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla! | + | * ''[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_01#index.html|site/views/helloworld/index.html]]'' |
| − | * ''[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla! | + | * ''[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_02#site/views/helloworld/view.html.php|site/views/helloworld/view.html.php]]'' |
| + | * ''[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_01#index.html|site/views/helloworld/tmpl/index.html]]'' | ||
* ''[[#site/views/helloworld/tmpl/default.xml|site/views/helloworld/tmpl/default.xml]]'' | * ''[[#site/views/helloworld/tmpl/default.xml|site/views/helloworld/tmpl/default.xml]]'' | ||
| − | * ''[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla! | + | * ''[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_02#site/views/helloworld/tmpl/default.php|site/views/helloworld/tmpl/default.php]]'' |
| − | * ''[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla! | + | * ''[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_01#index.html|admin/index.html]]'' |
| − | * ''[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla! | + | * ''[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_01#admin/helloworld.php|admin/helloworld.php]]'' |
| + | * ''[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_01#index.html|admin/sql/index.html]]'' | ||
| + | * ''[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_01#index.html|admin/sql/updates/index.html]]'' | ||
| + | * ''[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_01#index.html|admin/sql/updates/mysql/index.html]]'' | ||
| + | * ''[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_01#admin/sql/updates/mysql/0.0.1.sql|admin/sql/updates/mysql/0.0.1.sql]]'' | ||
| + | |||
| + | [[File:Com_helloworld-0.0.3.png|thumb|right|Selecting the Menu Item Type]] Create a compressed file of this directory or directly download the [http://joomlacode.org/gf/download/frsrelease/11394/58227/com_helloworld-1.6-part03.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" /> | ||
| + | |||
| + | == Navigate == | ||
| − | + | [[Developing a Model-View-Controller (MVC) Component for Joomla!2.5 - Part 02|Prev: Adding a view to the site part]] | |
| + | [[Developing a Model-View-Controller (MVC) Component for Joomla!2.5 - Part 04|Next: Adding a model to the site part]] | ||
== Contributors == | == Contributors == | ||
*[[User:cdemko|Christophe Demko]] | *[[User:cdemko|Christophe Demko]] | ||
| + | *[[User:oaksu|Ozgur Aksu]] | ||
[[Category:Development]] | [[Category:Development]] | ||
| − | [[ | + | [[Category:Joomla! 1.6]] |
| − | [[ | + | [[Category:Joomla! 1.7]] |
| + | [[Category:Joomla! 2.5]] | ||
Revision as of 18:05, 30 September 2012
Contents |
Introduction
This tutorial is part of the Developing a Model-View-Controller (MVC) Component for Joomla!2.5 tutorial. You are encouraged to read the previous parts of the tutorial before reading this.
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> <![CDATA[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
<extension type="component" version="2.5.0" method="upgrade"> <name>Hello World!</name> <!-- The following elements are optional and free of formatting constraints --> <creationDate>November 2009</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 in 2.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>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
Content of your code directory
- helloworld.xml
- site/index.html
- site/helloworld.php
- 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
Prev: Adding a view to the site part Next: Adding a model to the site part
