Joomla! Programmierung/Programmierung/XML Parameter Elemente/Eigene Parameter/Nafusize
Inhaltsverzeichnis |
[Bearbeiten] Beschreibung
Dieses Element kann genutzt werden, um zum Beispiel Dimensionen für Bilder (Höhe und Breite) anzugeben. Die Felder werden dabei übersichtlich nebeneinander angezeigt, und in einem einzelnen Parameter gespeichert. In der Anwendung stehen sie dann später als Array zur Verfügung.
[Bearbeiten] Speicherort der Datei
An welchem Ort sie die Datei Ihres Parameterelements speichern bleibt weitestgehend Ihnen überlassen. Voraussetzung ist natürlich, dass das Joomla! Framework auf die Datei zugreifen kann.
Wir nehmen an, dass wir unser Parameterelement für eine Komponente benötigen. Möglich sind natürlich auch alle anderen Typen von Joomla! Erweiterungen wie Module, Plugins und Templates.
Wir wollen die Datei in einem Unterverzeichnis Ihrer Komponente im Joomla! Administratorbereich speichern wie in Abb. 1.1.1 zu sehen.
[Bearbeiten] Änderungen an der XML Datei
Fügen Sie dem Tag <params> ein addPath Attribut hinzu und geben Sie dort den Pfad zu Ihrem Parameterelement an.
Sie können jetzt das neue Parameterelement benutzen.
... <params addPath="/administrator/components/com_KOMPONENTE/assets/elements"> ... <param name="tmb_size" type="nafusize" label="Thumbnail Size" unit="px" description="The size that Thumbnails will be displayed (width X height)" /> ... </params> ...
[Bearbeiten] PHP Code
Hier definieren wir die Input elemente.
<?php /** * Renders two input fields * * @package Joomla-Nafu.de * @subpackage Demos */ class JElementNafusize extends JElement { /** * Element name * * @access protected * @var string */ var $_name = 'Nafusize'; function fetchElement($name, $value, &$node, $control_name) { $size = ( $node->attributes('size') ? $node->attributes('size') : 4 ); $class = ( $node->attributes('class') ? 'class="'.$node->attributes('class').'"' : 'class="text_area"' ); $unit = ( $node->attributes('unit') ? ' '.$node->attributes('unit') : '' ); $v1 = ''; $v2 = ''; if( is_array($value)) { $v1 = $value[0]; $v2 = $value[1]; } $field1 = '<input type="text" size="'.$size.'" name="'.$control_name.'['.$name.'][]" id="'.$control_name.$name.'1" value="'.$v1.'" '.$class.' '.$size.' />'.$unit; $field2 = '<input type="text" size="'.$size.'" name="'.$control_name.'['.$name.'][]" id="'.$control_name.$name.'2" value="'.$v2.'" '.$class.' '.$size.' />'.$unit; return $field1.' X '.$field2; }//function }//class
[Bearbeiten] Anwendungsbeispiele
In diesem Beispiel werden die Werte der Inputfelder aus den Komponentenparametern die in der Datenbank gespeichert sind abgefragt.
$params = JComponentHelper::getParams('com_nafutest'); list($width, $height) = $params->get('tmb_size'); echo 'Die Grösse der Thumbnails beträgt: '.$width.' X '.$height;
<?xml version="1.0" encoding="utf-8" ?> <config> <params addPath="/administrator/components/com_KOMPONENTE/assets/elements"> <param name="tmb_size" type="nafusize" label="Thumbnail size" unit="px" description="Thumbnail size (width X height)" /> </params> </config>
