Module
CMS-Module mit PHP
Innerhalb von aitsu ist ein Modul für die Ein- und Ausgabe-Logik des Content-Management-Systems verantwortlich. Bei Eingaben von CMS-Inhalten durch Redakteure sowie bei der Ausgaben der Inhalte sitzen Module an der Schnittstelle zur Datenbank-Abstraktionsschicht.
- Eingabe von Inhalten
- Ausgabe von Inhalten
- Benutzerdefinierte Konfigurationen
- Objektorientiert
- Trennung von Geschäftslogik und Darstellungslogik
- Zend Framework
- YAML, jQuery, jQueryUI
- Klassen-Autoload
Programmieren mit PHP
Bei aitsu werden Module mit PHP programmiert. Dabei unterstützt aitsu Zend Framework und damit Klassen-Autoload. Mit dem Einsatz von Zend Framework sorgt aitsu dafür, das auch Entwickler einfach schneller ans Ziel kommen.
<?php echo 'Hallo Welt!'; ?>
Das Navigations-Modul als Beispiel
Dieses Modul-Beispiel zeigt den generellen Aufbau von Modulen.
<?php /** * @author Andreas Kummer, w3concepts AG * @copyright Copyright © 2010, w3concepts AG */ class Module_Navigation_Class extends Aitsu_Ee_Module_Abstract { protected $type = 'navigation'; public static function about() { return (object) array ( 'name' => 'Navigation', 'description' => Aitsu_Translate :: translate('Returns a navigation menu based on the specified template.'), 'type' => 'Navigation', 'author' => (object) array ( 'name' => 'Andreas Kummer', 'copyright' => 'w3concepts AG' ), 'version' => '1.0.0', 'status' => 'stable', 'url' => null, 'id' => '4cec07bf-5e60-43f2-a44d-10e87f000101' ); } public static function init($context) { Aitsu_Content_Edit :: noEdit('Navigation', true); $instance = new self(); $index = empty ($context['index']) ? 'noindex' : $context['index']; $params = Aitsu_Util :: parseSimpleIni($context['params']); $output = ''; if ($instance->_get('Navigation_' . preg_replace('/[^a-zA-Z_0-9]/', '', $index), $output)) { return $output; } $view = $instance->_getView(); $view->nav = Aitsu_Persistence_View_Category :: nav($params->idcat); $template = isset ($params->template) ? $params->template : 'index'; $output = $view->render($template . '.phtml'); $instance->_save($output, 'eternal'); return $output; } }
Klassenname
class Module_Navigation_Class extends Aitsu_Ee_Module_Abstract {
Der Klassenname gibt Aufschluss darüber, wo sich die PHP-Datei befindet und unter welchem Namen Sie als Shortcode-Modul oder als Skript-Block angesprochen werden kann. Dabei ist es Ihnen überlassen, wo Sie Ihre Module ablegen.
Speicherorte für Module
| Klassenname des Modules | Speicherort des Modules |
|---|---|
| Aitsu_Ee_Module_Modulname_Class | /library/Aitsu/Ee/Module/Modulname/ |
| Local_Module_Modulname_Class | /library/Local/Module/Modulname/ |
| Module_Modulname_Class | /application/modules/Modulename/ |
| Skin_Module_Modulname_Class | /application/skins/Skinname/Module/Modulname/ |
Dabei überschreiben Skin-Module App-Module, App-Module Local-Module und Local-Module wiederum AitsuEE-Module.
Die Modul-Beschreibung
public static function about() { return (object) array ( 'name' => 'Navigation', 'description' => Aitsu_Translate :: translate('Returns a navigation menu based on the specified template.'), 'type' => 'Navigation', 'author' => (object) array ( 'name' => 'Andreas Kummer', 'copyright' => 'w3concepts AG' ), 'version' => '1.0.0', 'status' => 'stable', 'url' => null, 'id' => '4cec07bf-5e60-43f2-a44d-10e87f000101' ); }
Die Modul-Beschreibung hilft, das Modul zuzuordnen. Die hier eingetragenen Informationen werden z.B. unter dem Menüpunkt Plugins > System > Modules angezeigt.
Die Modul-Initialisierung
public static function init($context) { Aitsu_Content_Edit :: noEdit('Navigation', true); $instance = new self(); $index = empty ($context['index']) ? 'noindex' : $context['index']; $params = Aitsu_Util :: parseSimpleIni($context['params']); $output = ''; if ($instance->_get('Navigation_' . preg_replace('/[^a-zA-Z_0-9]/', '', $index), $output)) { return $output; } $view = $instance->_getView(); $view->nav = Aitsu_Persistence_View_Category :: nav($params->idcat); $template = isset ($params->template) ? $params->template : 'index'; $output = $view->render($template . '.phtml'); $instance->_save($output, 'eternal'); return $output; }
Die eigentliche Logik des Modules findet hier statt. Bei Modul-Besprechungen werden wir uns ausschließlich auf diesen Bereich beschränken.
Mehr über PHP erfahren
Die Open Source-Software PHP wurde 1995 erstmalig veröffentlich. Seither trägt PHP dazu bei, viele hervorragende Internetprogramme für eine breite Masse Anwender verfügbar zu machen. PHP ist einfach zu erlernen und wird von den meisten Internet-Hostern angeboten.