Desarrollando un componente MVC: Añadiendo un tipo de menu al frontend
[extoc]
Abstracción
Generalmente hablando, este artículo describe cómo conseguir un enlace en tu página Joomla que abra una página específica de tu componente. Esto se realiza de manera sencilla añadiendo un fichero xml a la página específica en el directorio view.
Ej: site/views/helloworld/tmpl/
Este directorio contiene la página de vista default.php que queremos abrir.
El archivo default.xml se coloca junto al archivo php con algo de xml. Esto capacita a Joomla a reconocer la vista default.php como un elemento de menú.
Añadiendo un tipo de menú
En el framework de Joomla, los componentes se ejecutan mediante elementos de menú. Si vas al administrador de menú de tu instalación Joomla comprobarás que todavía no existe un tipo de menú HelloWorld. Añadir esta funcionalidad es sencillo en Joomla, simplemente crea el archivo site/views/helloworld/tmpl/default.xml file con el siguiente contenido:
site/views/helloworld/tmpl/default.xml
De momento las cadenas de texto no se traducirán en el interfaz de administración. En un articulo posterior veremos cómo se realizan las traducciones.
También modifica tu fichero helloworld.xml para indicar una nueva versión:
helloworld.xml
Hello World!
November 2009
John Doe
john.doe@example.org
http://www.example.org
Copyright Info
License Info
0.0.3</version>
<-- The description is optional and defaults to the name -->
Description of the Hello World component ...
sql/updates/mysql
index.html
helloworld.php
controller.php
views
index.html
helloworld.php
sql
Empaquetando el componente
Contenido del directorio:
- 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
Ahora comprime este directorio o directamente descargalo el archivo e instalalo utilizando la “Administración de extensiones” (Extension Manager) de Joomla. Puedes añadir un elemento de menú mediante el gestor de menús. Para hacerlo, selecciona «Añadir nuevo elemento de menú» del menú Menu (valga la redundancia), después selecciona COM_HELLOWORLD_HELLOWORLD_VIEW_DEFAULT_TITLE para el tipo de menú (posteriormente veremos cómo traducir esta cadena). Una vez seleccionado se puede ver que la información de enlace se rellena automáticamente con la url para la vista (View).