mod_auto.php
15.3 Module
Verfasst von Hagen Graf am 1. January 2008 - 16:53Ein Modul ist von der Idee her sehr viel einfacher. Module haben meist keine echte Administrationsoberfläche, sondern hin und wieder Parameter. Es geht immer um die Darstellung auf Ihrer Website und die Einbindung in Ihr Template. Module setzen meist auf vorhandenen Komponenten auf. Sie können also davon ausgehen, dass bestimmte Tabellen und ihre Inhalte bereits vorhanden sind und gepflegt werden können.
Um selbst ein Modul zu programmieren, benötigen Sie zwei Dateien. Eine Datei für die Logik und die Darstellung und eine XML-Datei für den Joomla!-Installer. Beide Dateien beginnen mit der Kennzeichnung mod_.
15.3.1 Quellcode
Schauen wir uns gleich die Quellcodes der Dateien an. Auch hier werden wieder Templates benutzt. Sie haben die Dateien
- mod_auto.php
- helper.php
- tmpl/default.php
- mod_auto.xml
Schauen wir uns auch diese Dateien an.
Einstiegspunkt (mod_auto.php)
Die Datei mod_auto.php dient als Steuerdatei für das Modul (Listing 15.22).
<?php
defined('_JEXEC')
or die('Restricted access');
require_once (dirname(__FILE__).DS.'helper.php');
$auto = modAutoHelper::getAuto($params);
require(JModuleHelper::getLayoutPath('mod_auto'));
?>
Listing 15.22: mod_auto.php
Hier wird kein Basis-Controller, sondern eine Helper-Klasse eingebunden.
Helper-Klasse (helper.php)
Die Helper-Klasse kombiniert den Controller und das Model (Listing 15.23).
<?php
defined('_JEXEC')
or die( 'Restricted access' );
class modAutoHelper{
function getAuto(&$params){
global $mainframe;
$db = &JFactory::getDBO();
$query = "SELECT *"
. "\n FROM #__auto"
. "\n WHERE published = 1"
. "\n LIMIT 0,5"
;
$db->setQuery( $query );
$rows = $db->loadObjectList();;
$auto = "<ul>\n";
if ($rows) {
foreach ($rows as $row){
$auto .= "<li>".$row->text."</li>\n";
}
}
$auto .= "</ul>\n";
return $auto;
}
}
?>
Listing 15.23: helper.php
In der Helper-Klasse findet nacheinander die Abfrage der Daten auf die Aufbereitung in einer for-Schleife statt.
Template (tmpl/default.php)
In diesem ganz einfachen Konstrukt wird die Variable $auto aus der Helper-Klasse einfach nur ausgegeben. Sie könnten genauso gut die for-Schleife aus der Helper-Klasse hier durchführen und damit mehr Einfluss auf den auszugebenden HTML-Code nehmen und einem Template-Designer ermöglichen, den Quellcode zu überschreiben (Listing 15.24).
defined('_JEXEC')
or die( 'Restricted access' ); ?>
<?php
echo $auto;
?> Listing 15.24: tmpl/default.php
mod_auto.xml
Um das Modul installieren zu können, benötigen Sie wie bei der Komponente alle für den Joomla!-Installer relevanten Daten in einer XML-Datei (Listing 15.25).
<?xml version="1.0" encoding="utf-8"?>
<install type="module" version="1.5.0">
<name>Auto</name>
<author>Hagen Graf</author>
<creationDate>November 2007</creationDate>
<copyright>(C) 2007 cocoate.com All rights reserved.</copyright>
<license>GNU/GPL</license>
<authorEmail>hagen.graf@gmail.com</authorEmail>
<authorUrl>www.cocoate.com</authorUrl>
<version>0.1</version>
<description>Auto Modul</description>
<files>
<filename module="mod_auto">mod_auto.php</filename>
<filename>index.html</filename>
<filename>helper.php</filename>
<filename>tmpl/default.php</filename>
<filename>tmpl/index.html</filename>
</files>
</install>
Listing 15.25: mod_auto.xml
15.3.2 Installation
Kopieren Sie alle Dateien in ein Unterverzeichnis und verpacken Sie dieses Verzeichnis in einem zip-Paket mit dem Namen mod_auto.zip. Die zip-Datei können Sie jetzt mit dem Joomla!-Installer wie gewohnt installieren und, wenn Sie wollen, zum Download für andere Benutzer bereitstellen. Bevor Sie das in Ihrer eigenen Installation tun, müssen Sie die per Hand erstellte Variante über den Joomla!-Installer deinstallieren. Klicken Sie dazu auf Erweiterungen - Installieren/Deinstallieren, markieren Sie Ihre Komponente und klicken Sie auf das Icon Deinstallieren.
Nach der Installation müssen Sie das Modul im Menü Erweiterungen - Module aktivieren.
15.3.3 Ansicht auf der Website
Auf Ihrer Website sehen Sie jetzt an der ausgewählten Position die Einträge aus der Tabelle jos_auto (Abbildung 15.17).
- 21750 Aufrufe
French

Neueste Kommentare
vor 2 Tage 9 Stunden
vor 2 Wochen 5 Tage
vor 3 Wochen 3 Tage
vor 3 Wochen 18 Stunden
vor 7 Wochen 5 Tage
vor 7 Wochen 5 Tage
vor 7 Wochen 5 Tage
vor 7 Wochen 6 Tage
vor 7 Wochen 6 Tage
vor 8 Wochen 5 Minuten