Umfangreiche Joomla Core-Erweiterungen verfügen über ein Dashboard, in dem zusammengehörige Funktionen angezeigt werden. Das ist benutzerfreundlich, weil es einen Überblick bietet. So kann sich sich ein Benutzer ohne viele Klicks in der Erweiterung orientieren. In diesem Teil erstellen wir ein solches Dashboard für unsere Beispielkomponente.
Für Ungeduldige: Sieh dir den geänderten Programmcode in der Diff-Ansicht[^codeberg.org/astrid/j4examplecode/compare/t27...t28] an und übernimm diese Änderungen in deine Entwicklungsversion.
Schritt für Schritt
Neue Dateien
administrator/components/com_foos/presets/foos.xml
In der Datei administrator/components/com_foos/presets/foos.xml
legen wir fest, was standardmäßig auf dem Dashboard angezeigt wird.
administrator/components/com_foos/presets/foos.xml
<!-- https://codeberg.org/astrid/j4examplecode/raw/branch/t28/src/administrator/components/com_foos/presets/foos.xml -->
<?xml version="1.0"?>
<menu
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="urn:joomla.org"
xsi:schemaLocation="urn:joomla.org menu.xsd"
>
<menuitem
title="COM_FOOS"
type="heading"
icon="comment"
class="class:comment"
>
<menuitem
title="COM_FOOS"
type="component"
element="com_foos"
link="index.php?option=com_foos"
quicktask="index.php?option=com_foos&view=foo&layout=edit"
quicktask-title="COM_FOOS"
/>
<menuitem
title="JCATEGORY"
type="component"
element="com_foos"
link="index.php?option=com_categories&extension=com_foos"
quicktask="index.php?option=com_categories&view=category&layout=edit&extension=com_foos"
quicktask-title="JCATEGORY"
/>
</menuitem>
</menu>
Geänderte Dateien
administrator/components/com_foos/foos.xml
Wir passen das XML-Manifest an, damit die Seitenleiste im Joomla Administrationstemplate weiß, das und wie es das Dashboard verlinkt.
administrator/components/com_foos/foos.xml
</media>
<!-- Back-end files -->
<administration>
<!-- Menu entries -->
<menu view="foos">COM_FOOS</menu>
<menu img="class:comment">
COM_FOOS
<params>
<dashboard>foos</dashboard>
</params>
</menu>
<submenu>
<menu link="option=com_foos">
COM_FOOS
<params>
<menu-quicktask-title>COM_FOOS</menu-quicktask-title>
<menu-quicktask>index.php?option=com_foos&view=foo&layout=edit</menu-quicktask>
</params>
</menu>
<menu link="option=com_foos">COM_FOOS</menu>
<menu link="option=com_categories&extension=com_foos">JCATEGORY</menu>
<menu link="option=com_categories&extension=com_foos">
JCATEGORY
<params>
<menu-quicktask-title>JCATEGORY</menu-quicktask-title>
<menu-quicktask>index.php?option=com_categories&view=category&layout=edit&extension=com_foos</menu-quicktask>
</params>
</menu>
<menu link="option=com_fields&context=com_foos.foo">JGLOBAL_FIELDS</menu>
<menu link="option=com_fields&view=groups&context=com_foos.foo">JGLOBAL_FIELD_GROUPS</menu>
</submenu>
<filename>foos.xml</filename>
<filename>config.xml</filename>
<folder>forms</folder>
<folder>presets</folder>
<folder>language</folder>
<folder>services</folder>
<folder>sql</folder>
administrator/components/com_foos/script.php
Im Installationsskript fügen wir den Aufruf hinzu. Damit rufen wir eine Joomla-eigene Funktion auf, die unsere Dashboard im CMS bekannt macht.
administrator/components/com_foos/script.php
use Joomla\CMS\Language\Text;
use Joomla\CMS\Log\Log;
use Joomla\CMS\Table\Table;
use Joomla\CMS\Installer\InstallerScript;
/**
* Script file of Foo Component
*
* @since __BUMP_VERSION__
*/
class Com_FoosInstallerScript
class Com_FoosInstallerScript extends InstallerScript
{
/**
* Minimum Joomla version to check
public function install($parent): bool
return false;
}
$this->addDashboardMenu('foos', 'foos');
return true;
}
public function update($parent): bool
{
echo Text::_('COM_FOOS_INSTALLERSCRIPT_UPDATE');
$this->addDashboardMenu('foo', 'foo');
return true;
}
Teste deine Joomla-Komponente
- Installiere deine Komponente in Joomla Version 4, um sie zu testen:
Kopiere die Dateien im administrator
Ordner in den administrator
Ordner deiner Joomla 4 Installation.
Installiere deine Komponente wie in Teil eins beschrieben, nachdem du alle Dateien kopiert hast. Joomla aktualisiert bei der Installation die Namespaces für dich. Da eine neue Datei hinzugekommen ist, ist dies erforderlich. Außerdem haben wir Anweisung im Installationsskript ergänzt.
- Nutze im Backend das Dashboard.
Links
Komponenten von Drittanbietern das Erstellen eines Dashboards gestatten[^github.com/joomla/joomla-cms/pull/28027]
Joomla Manual[^manual.joomla.org/docs/using-core-functions/Dashboard]
Webmentions