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 &copy; 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.

Weiterführende Links: