Desarrollo de una componente para Joomla 4

Introducción Edicion

Los archivos

Jomla 4 ha cambiado el concepto en el desarrollo de una componente con respcecto a la versión 3.x. Ha simplificado la cadena de procesos que tienen lugar hasta llegar a la página objeto de la componente.
Por ejemplo, ahora parece que el punto de arranque es la función display(), definida en la clase DisplayController, que se encuentra en el archivo com_readmdb/site/Controller/DisplayController.php, que deriva de la BaseController y cuyo archivo lleva el mismo nombre que la clase.

He tomado como referencia para lo que aquí se expone el tutorial Mywalks Parte 1 y de Parte 2.

A la hora de escribir esta miniguía, la versión era Joomla 4 beta 7, donde al no haber encontrado documentación, algunas cosas las he adivinado analizando el código fuente de la distribución, por lo que habrá código superfluo y código con la no eficacia apropidada.

Joomla 4 utililiza el Bootstrap 5, y antes el Bootstrap 4.

El botón   se ha tomado de Font Awesome Icons, cuya documentación se puede ver en Bootstrap 5 Icons
La figura a continuación muesta el login a la página del administrador o backend

login

Service router, registro de las vistas (views): com_readmdb/site/Service/Router.php

Como se sabe, Joomla es un sistema CMS (Content Management Syistem) basadp em en el método MVC Model, View, Controller

El archivo com_readmdb/site/Service/Router.php registra las vistas (views). Es fundamental registrar las views aquí, cuyo constructor deriva de la clase: RouterView, que llama a la función: RouterViewConfiguration , cuyo namespace es Joomla\CMS\Component\Router\RouterViewConfiguration;
La clase; class Router extends RouterView en el archivo com_readmdb/site/Service/Router.php muestra el constructor y las configuraciones de La clase se muestra en la lista a continuación

router view 00

El constructor de la clase regisatra las variables:

servicerouter 01

Descripción de la componente

La componente com_readmdb lee tablas de bancos de datos externos distintos del que contiene la componente. La configuración de los menús desde la parte del administrador tienen como parámetros:

defaultitems 00

Los archivos

A continuación se muestra la lista de archivos que utiliza la componente

  • com_readmdb/readmdb.xml
  • com_readmdb/site/Table/NotaTable.php
  • com_readmdb/site/Table/DesglosekTable.php
  • com_readmdb/site/Table/PasswdTable.php
  • com_readmdb/site/Table/ProduktTable.php
  • com_readmdb/site/Table/BehandlungTable.php
  • com_readmdb/site/Table/PatientTable.php
  • com_readmdb/site/Table/KrankenkTable.php
  • com_readmdb/site/Table/RechnungTable.php
  • com_readmdb/site/Table/M_notasTable.php
  • com_readmdb/site/Table/AdressenTable.php
  • com_readmdb/site/Table/RechnungpTable.php
  • com_readmdb/site/Table/ActividadTable.php
  • com_readmdb/site/Table/FacturakTable.php
  • com_readmdb/site/Table/BestellungTable.php
  • com_readmdb/site/language/en-GB/en-GB.com_readmdb.ini
  • com_readmdb/site/assets/index.html
  • com_readmdb/site/assets/js/validator.js
  • com_readmdb/site/assets/js/mdb.js~
  • com_readmdb/site/assets/js/mdb.js
  • com_readmdb/site/assets/css/style.css
  • com_readmdb/site/forms/index.html
  • com_readmdb/site/forms/mydrkam/drkam.xml
  • com_readmdb/site/forms/mydrkam/desglosek.xml
  • com_readmdb/site/forms/mydrkam/patient.xml
  • com_readmdb/site/forms/mydrkam/rechnungp.xml
  • com_readmdb/site/forms/mydrkam/krankenk.xml
  • com_readmdb/site/forms/mydrkam/facturak.xml
  • com_readmdb/site/forms/mydrkam/behandlung.xml
  • com_readmdb/site/forms/m_db/nota.xml
  • com_readmdb/site/forms/m_db/index.html
  • com_readmdb/site/forms/m_db/adressen.xml
  • com_readmdb/site/forms/m_db/testform.xml
  • com_readmdb/site/forms/m_db/produkt.xml
  • com_readmdb/site/forms/m_db/m_notas.xml
  • com_readmdb/site/forms/m_db/bestellung.xml
  • com_readmdb/site/forms/m_db/actividad.xml
  • com_readmdb/site/forms/m_db/passwd.xml
  • com_readmdb/site/View/Editor/HtmlView.php~
  • com_readmdb/site/View/Editor/HtmlView.php
  • com_readmdb/site/View/Editor/EditorView.php
  • com_readmdb/site/View/Editor/EditorView.php~
  • com_readmdb/site/View/Mdb/HtmlView.php
  • com_readmdb/site/View/Covid/HtmlView.php
  • com_readmdb/site/View/Constants/HtmlView.php
  • com_readmdb/site/tmpl/covid/default.php
  • com_readmdb/site/tmpl/covid/default_graficos.php
  • com_readmdb/site/tmpl/covid/default_graficos_todos.php
  • com_readmdb/site/tmpl/covid/default_corona.php
  • com_readmdb/site/tmpl/covid/print.php
  • com_readmdb/site/tmpl/covid/default.xml
  • com_readmdb/site/tmpl/editor/editor.php
  • com_readmdb/site/tmpl/mdb/establecimientos.php
  • com_readmdb/site/tmpl/mdb/default.php
  • com_readmdb/site/tmpl/mdb/default_items.php
  • com_readmdb/site/tmpl/mdb/default_graficos.php
  • com_readmdb/site/tmpl/mdb/print.php
  • com_readmdb/site/tmpl/mdb/default.xml
  • com_readmdb/site/tmpl/constants/default.php
  • com_readmdb/site/tmpl/constants/default.xml
  • com_readmdb/site/Field/index.html
  • com_readmdb/site/Field/KrankenkasselistField.php
  • com_readmdb/site/Field/BestelleremailField.php
  • com_readmdb/site/Field/FacturakidField.php
  • com_readmdb/site/Field/AdresselistField.php
  • com_readmdb/site/Field/PatientidField.php
  • com_readmdb/site/Field/BestellungidField.php
  • com_readmdb/site/Field/BehandlunglistField.php
  • com_readmdb/site/Field/ActividadlistField.php
  • com_readmdb/site/Field/BestellernameField.php
  • com_readmdb/site/Service/ReadmdbNomenuRules.php
  • com_readmdb/site/Service/Router.php
  • com_readmdb/site/Controller/EditorController.php
  • com_readmdb/site/Controller/DisplayController.php
  • com_readmdb/site/Model/MdbModel.php
  • com_readmdb/site/Model/CovidModel.php
  • com_readmdb/site/Model/EditorModel.php
  • com_readmdb/site/Helper/RouteHelper.php
  • com_readmdb/site/Helper/MdbHelpers.php
  • com_readmdb/site/Helper/MdbRouteHelper.php
  • com_readmdb/site/router.php

  • com_readmdb/admin/language/en-GB/en-GB.com_readmdb.sys.ini
  • com_readmdb/admin/language/en-GB/en-GB.com_readmdb.ini
  • com_readmdb/admin/access.xml
  • com_readmdb/admin/config.xml
  • com_readmdb/admin/View/Corona/HtmlView.php
  • com_readmdb/admin/View/Blanca/HtmlView.php
  • com_readmdb/admin/View/Constants/HtmlView.php
  • com_readmdb/admin/tmpl/corona/default.php
  • com_readmdb/admin/tmpl/constants/default.php
  • com_readmdb/admin/tmpl/blanca/default.php
  • com_readmdb/admin/services/provider.php
  • com_readmdb/admin/Controller/DisplayController.php
  • com_readmdb/admin/Model/BlancaModel.php
  • com_readmdb/admin/Extension/ReadmdbComponent.php