Benutzer:Joomdesign/Programmierung/J16/Plugins/System
Aus Joomla! Dokumentation
Dieser Artikel zeigt wie "system"-Plugins erstellt werden!
Inhaltsverzeichnis |
[Bearbeiten] Vorwort
ToDo --ein paar grundsätzliche Sachen zu Plugins, Events und deren Ausführung.
[Bearbeiten] Beispiel-Plugin: Nafu Toggle Header
Ziel dieses Plugin ist es:
- die Kopfzeile im Admin-Bereiches auf Klick zu verstecken oder anzuzeigen
- Funktion durch hinzufügen einer CSS-Klasse durch Mootools realieren
- der Status wird dabei in einem Cookie gespeichert
[Bearbeiten] Plugin-Dateien
[Bearbeiten] nafu_toogle_header.php
<?php defined('_JEXEC') or die; // no direct access jimport('joomla.plugin.plugin'); /** | Nafu Toggle Header 1.0 | Kopfzeile in Administration anzeigen/verstecken | 15:33 05.02.2011 jd */ class plgSystemNafu_Toogle_Header extends JPlugin {
Die Plugin-Klasse plgSystemNafu_Toogle_Header erweitert die globale JPlugin-Klasse.
php __construct()
function plgSystemNafu_Toogle_Header(& $subject, $config) { parent::__construct($subject, $config); }
onAfterInitialise()
function onAfterInitialise() { if ( !JFactory::getApplication()->isAdmin() OR JRequest::getCmd('option') == 'com_config' OR JRequest::getCmd('tmpl') == 'component' ) return;
Sollte der Aufruf nicht aus dem Backend erfolgen wird das Plugin nicht ausgeführt!
Dasselbe gilt für Modal-"Fenster" und die Globale Konfiguration.
Hier wird die Ausführung aufrund eines JavaScript-Konfliktes ebenfalls unterbunden.
Dasselbe gilt für Modal-"Fenster" und die Globale Konfiguration.
Hier wird die Ausführung aufrund eines JavaScript-Konfliktes ebenfalls unterbunden.
JavaScript-Funktion mit Hilfe von Mootools erstellen
- Cookie auslesen:
- Element suchen
- Klasse der Kopfzeile setzen
- "click"-Event hinzufügen:
- Element suchen
- Klasse der Kopfzeile setzen
- Status in Cookie schreiben
// JavaScript-Funktion erstellen $script = " window.addEvent('domready', function() { if ( Cookie.read('headerstate') == 'h_hide' ) { $('border-top').getFirst('div').addClass('h_hide'); $$('input.combobox').setStyle('margin-top', '-48px'); } $('border-top').setProperty('title', 'Click to switch Header').addEvent('click', function() { var HeadWrapper = this.getFirst('div'); var HeadBox = HeadWrapper.getFirst('div'); HeadWrapper.toggleClass('h_hide'); var OldClass = HeadWrapper.getProperty('class'); var H_status = ( OldClass == '' ) ? 'h' : 'h_hide'; if ( H_status == 'h_hide' ) { $$('input.combobox').setStyle('margin-top', '-48px'); } else { $$('input.combobox').setStyle('margin-top', '0'); } Cookie.write('headerstate', H_status, {duration: 365}); return; }); }); ";
JHTML::_('behavior.framework', true); wird nicht benötigt, weil das Mootools-Framework im Backend automatisch eingebunden ist.
[Bearbeiten] nafu_toogle_header.xml
<?xml version="1.0" encoding="utf-8"?> <extension version="1.6" type="plugin" group="system"> <name>PLG_EDITORSXTD_NAFU_TOOGLE_HEADER</name> <author>wiki.joomla-nafu.de</author> <creationDate>03-2011</creationDate> <copyright>(C) All rights reserved.</copyright> <license>http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL</license> <authorEmail>info@example.com</authorEmail> <authorUrl>http://wiki.joomla-nafu.de</authorUrl> <version>1.0</version> <description>PLG_EDITORSXTD_NAFU_BUTTON_XML_DESCRIPTION</description> <files> <filename plugin="nafu_toogle_header">nafu_toogle_header.php</filename> <filename>index.html</filename> </files> </extension>
- Zu Beachten ist die Angabe des Typs und der Gruppe:
<extension version="1.6" type="plugin" group="system">
- Es ist weiterhin nötig - die Datei, die beim Ansprechen des Plugins aufgerufen werden soll - anzugeben.
<filename plugin="nafu_toogle_header">nafu_toogle_header.php</filename>
- Weitere Informationen: Joomla!_Programmierung/Programmierung/XML_Parameter_Elemente/Standardparameter
[Bearbeiten] Download als Paket
ToDo -- Alle Plugins dieser Anleitung können auch als Installations-Paket bei Sourceforge heruntergeladen werden.
[Bearbeiten] Hinweise / weitere Information
Dieser Artikel befindet sich in Bearbeitung - bitte nicht ändern !
Joomdesign 02:08, 2. Mär. 2011 (CET)
