Benutzer:Joomdesign/Programmierung/J16/Plugins/System

Aus Joomla! Dokumentation
Wechseln zu: Navigation, Suche

24px-Tip.png Dieser Artikel zeigt wie "system"-Plugins erstellt werden!

Dieser Artikel benötigt Kenntnisse in: CSSCSS und CSS

Es wird Joomla 1.6 benötigt!

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
Header on


Header off



[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
{
Info.png

Die Plugin-Klasse plgSystemNafu_Toogle_Header erweitert die globale JPlugin-Klasse.

Klassennamen für System Plugins müssen immer nach dem Schema plgSystem<NAME> benannt werden.

php __construct()

	function plgSystemNafu_Toogle_Header(& $subject, $config)
	{
		parent::__construct($subject, $config);
	}
Info.png
Hier werden der aktuelle Kontext $subject und die Parameter des Plugins $config übergeben.

onAfterInitialise()

	function onAfterInitialise()
	{
		if ( !JFactory::getApplication()->isAdmin() 
			OR JRequest::getCmd('option') == 'com_config' 
			OR JRequest::getCmd('tmpl') == 'component' ) return;
Info.png
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.

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

Info.png
Dieses XML-Manifest wird zur Installation des Plugins in Joomla! benötigt

Hinweis.png Die komplette Datei:

<?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

In arbeit.png

Dieser Artikel befindet sich in Bearbeitung - bitte nicht ändern !

Joomdesign 02:08, 2. Mär. 2011 (CET)

Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Sonstiges
Team Navigation
Werkzeuge