Sie befinden sich hier: Dokumentation > JYAML für Joomla! 1.5 > Template-Plugins > Template-Plugins

Template-Plugins

Das YAML-Joomla!-Template besitzt eine eigene Pluginverwaltung für spezielle Erweiterungen. Alle Template-Plugins können global sowie in jedem einzelnen Design konfiguriert werden.

Die Steuerung der Plugins übernimmt das JYAML-System.Plugin für Joomla!.

Wenn man PHP-Kenntnisse besitzt, können sogar eigene Plugins entwickelt und hinzugefügt werden.

Core-Plugins

Ein paar Plugins sind auch schon dabei. Folgend eine Auflistung:

  • IE PNG Fix: Ermöglicht transparente PNG Bilder im Internet Explorer 5.5 und 6,
  • IE min/max Expressions: Simuliert min-/max width und height im Internet Explorer 5 und 6,
  • CSS Optimizer: Reduzierung und Bereinigung der CSS Dateien zur Reduzierung von Traffic und Anfragen.

Eigene Plugins entwickeln

Alle Template-Plugins liegen im Verzeichnis /templates/[YAML Template]/plugins/. Folgend ein Beispiel zum Erstellen eines eigenen Plugins. Legen Sie einen Ordner im Plugin-Verzeichnis mit dem gewünschten Namen des Plugins an. Als Name wird in diesem Beispiel "my_yaml_plugin" verwendet.

Schritt 1:

Im Pluginordner müssen nun folgende Dateien angelegt werden. Diese sind auch mindestens erforderlich.

  • my_plugin.xml (Parameter-Datei. Ist aufgebaut nach der Joomla!1.5 XML-Referenz).
  • my_plugin.php (Ausführbare PHP-Datei zur Steuerung des Plugins).
  • config.xml (Hier werden später die Konfiguration-Werte abgespeichert).

Schritt 2:

Anlegen des Inhalts der my_plugin.xml.

<?xml version="1.0" encoding="utf-8"?>
<jyaml_plugin>
  <name>my_plugin</name>
  <author>Mein Name</author>
  <creationDate>Erstelldatum</creationDate>
  <copyright>(C) Mein Name</copyright>
  <license>Creative Commons Lizenz</license>
  <authorEmail>myEmail[AT]domain.tld</authorEmail>
  <authorUrl>www.myDomain.tld</authorUrl>
  <version>1.0</version>
  <description>Beschreibung</description>

  <!-- Ab hier wird die Joomla! Parameter XML-Referenz benutzt  -->
  <params>    
    <!-- 
    Der Wert 'published' mit '0' und '1' ist mindestens erforderlich, 
    da man sonst das Plugin nicht einschalten kann. 
    -->

    <param name="published" type="radio" default="0" label="Aktiviert?">
      <option value="0">Nein</option>
      <option value="1">Ja</option>
    </param>
    <param name="text" type="text" default="" label="Text" />
    <!-- *** -->
  </params>
</jyaml_plugin>

Für weitere Möglichkeiten der Parameter ("param") durchsuchen Sie die Joomla!1.5 XML-Referenz Liste.

Schritt 3:

Anlegen des Inhalts der my_plugin.php.

// kein direkter Zugriff auf die PHP Datei
defined('_JEXEC') or die('Restricted access');

//  Diese PHP-Klasse wird direkt zur Laufzeit des YAML-System Plugins ausgeführt
class my_plugin extends JYAML {

var $JYAML = array(); // can overwrite share $jyaml object
var $JYAMLc = array(); // can overwrite share of $jyaml->config object

  function my_plugin($params, $jyaml) {
    $document=& JFactory::getDocument();    
    if($document->getType() != 'html') {
      return;
    }  
    
    // Fügt ein Javascript in den HEAD des Dokuments
    $jyaml->addScript( JYAML_PATH_REL.'/plugins/my_plugin/example.js' );
    
    /* 
       ... 
       usw. 
       ...
    */
  }
/*
Diese Klasse (mit Zusatz _afterRender) wird ausgeführt wenn das gesamte
Dokument bereits fertig für die Ausgabe aufbereitet ist, aber noch
nicht von Joomla! ausgegeben wurde. Somit sind spezielle Anpassungen am
Dokument möglich
*/
class my_plugin_afterRender extends YAML {

  function my_plugin_afterRender($params, $jyaml) {
    $document=& JFactory::getDocument();    
    if($document->getType() != 'html') {
      return;
    }

    // Lese Parameter Konfiguration
    $text= $params->get( 'text', 'kein Text vorhanden' );    
        
    // Dokument Body auslesen
    $body = JResponse::getBody();
   
    // Den Body modifizieren
    // Als Beispiel wird ein Absatz direkt hinter <body> hinzugefügt.
    $body = str_replace('<body>', '<body><p>'.$text.'</p>', $body);     

    // Den neuen Body Inhalt übergeben    
    JResponse::setBody($body);
  }

}

In den Template-Plugins können alle Joomla!-Funktionen benutzt werden. Lesen Sie hierzu das Joomla Dokumentation Wiki. Außerdem steht Ihnen zusätzlich das $jyaml PHP-Objekt und deren Methoden zu Verfügung.

Schritt 4: Aktivieren des eigenen Plugins

Wenn nun alle erforderlichen Dateien erstellt sind, können Sie Ihr eigenes Template-Plugin im Backend der JYAML-Komponente sehen. Es kann jetzt aktiviert werden, wenn der mindestens erforderliche Parameter 'published' in der my_plugin.xml vorhanden ist.

Schritt 5: Mitmachen 

Falls Sie eigene Plugins entwickeln oder nur eine Idee haben, dann lassen Sie es mich doch einfach wissen und nehmen kurz Kontakt mit mir auf.