Inhaltsverzeichnis Smarty Smarty Funktionen {input}
Smarty Plugin für den Adminbereich. Einfache Erzeugung von Eingabefeldern.

{input}

Erstellt ein neues Eingabe-Element. Kann im Adminbereich auf eigenen/angepassten Reitern eingesetzt werden.

Attribut  Typ  Erforderlich  Beschreibung 
type    Ja Typ des Plugins (z.B. "button", "color" usw.)
name    Ja Name des Feldes
title    Ja Beschriftung
short    Nein Zusätzliche Kurzbeschreibung
no_auto    Nein Mit no_auto="1" wird das automatische Speichern/Laden in bzw. aus dem extra-Feld deaktiviert
standalone    Nein Mit standalone="1" wird das Inputplugin wie ein einfaches Formularfeld eingefügt, ohne Formatierung und den title
extendedHTML    Nein HTML oder Text, der rechts neben dem Input Plugin angezeigt werden soll

Beispiel

QuelltextSmarty Code:
  1. {* Eingabefeld für ein Bild erzeugen *}
  2. {input type="image" name="bild_rechts" title="Bild" short="Diese Bild erscheint in der rechten Spalte"}

Ausgabe:

input_image 

Die HTML-Datei

wir erstellen zuerst eine HTML-Datei

jede HTML Datei besitzt 2 Bereiche

Bereich 1 Smarty+HTML

QuelltextSmarty Code:
  1. <form name="extra">
  2. <div align="center">
  3. <table class="table">
  4.     <tr>
  5.         <td class="cell">
  6.             {input type="button" name="input_test" title="Dies ist ein button" onclick="javascript:test()"}
  7.         </td>
  8.     </tr>         
  9. </table>
  10. </div>
  11. </form>

Achten Sie darauf, dass das Formular auf jeden Fall den Namen extra bekommt
<div> und <table> sind für die einheitliche Gestaltung optional
l

Bereich 2 Javasript

EGOTEC 4.2

QuelltextJavaScript Code:
  1.  {literal}
  2. <script language="javascript">
  3. <!--
  4. function do_load()
  5. {
  6.     var f = document.forms["extra"];
  7.     f.elements["extra[input_color]"].value = window.parent.get_extra("input_color")   
  8. }

  9. function do_unload()
  10. {
  11.     var f = document.forms["extra"];
  12.     window.parent.set_extra("input_color", f.elements["extra[input_color]"].value)   
  13. }
  14. //-->
  15. </script>
  16. {/literal}

Der JS code funktioniert nur zwischen den Tags {literal} diese sind dafür da das Smarty diesen Code nicht sieht.

EGOTEC 5

In dieser Version werden bei Seiten die extra-Felder automatisch gespeichert und geladen.

Es muss nur die unload_extra() Funktion die do_unload bzw. do_unload_extra Funktion aufgenommen werden.

QuelltextJavaScript Code:
  1. function do_unload_extra()
  2. {
  3.     window.parent.unload_extra()
  4. }

  5. //auf einem weiteren Reiter

  6. function do_unload()
  7. {
  8.     window.parent.unload_extra();
  9. }

Damit die Werte der Input-Felder automatisch gespeichert werden, muss im {input}-Plugin ein zusätzlicher Parameter "version=5" hinzugefügt werden:

Beispiel:
{input version=5 type="image" name="bild_rechts" title="Bild" short="Diese Bild erscheint in der rechten Spalte"}

Wenn Sie Input-Plugins an anderen Stellen verwenden, z.B. auf einem Konfigurationsreiter in den Globalen Einstellungen können die Felder nicht automatisch abgespeichert werden.
Die Inhalte der Input-Felder können in dieser Version einheitlich mit den Funktionen set_input_value() und get_input_value() geladen und gespeichert werden.

QuelltextJavaScript Code:
  1. function do_load()
  2. {
  3.     set_input_value('menue_color', window.parent.get_conf('administration', 'menue_color'));
  4. }

  5. function do_unload()
  6. {
  7.     window.parent.set_conf('administration', 'menue_color', get_input_value('menue_color'));
  8. }

do_load

In diesem Teil werden die Werte beim Speichern in die DB geschrieben

do_unload

Hier werden, wenn vorhanden, gespeicherte Werte an das Formular übergeben


Mit Dojo generierte Input-Felder können nicht vollständig über die Eigenschaften ihrer ursprünglichen HTML Objekte manipuliert werden. Hierfür ist es manchmal notwendig das dazugehörige Dojo Objekt zu ermitteln und dieses dann zu manipulieren. Die Funktion hierfür ist get_input_object(). Übergeben wird der Name des Input-Feldes.

QuelltextJavaScript Code:
  1. var obj = get_input_object('menue_color');

Soll ein Attribut geändert werden, verwendet man die attr() Funktion. Nur so aktualisiert Dojo seine Objekte.

QuelltextJavaScript Code:
  1. obj.attr('disabled', true); // ändert einen Wert

  2. obj.attr({disabled : true, label : 'Neuer Text'}); // ändert mehrere Werte auf einmal

QuelltextJavaScript Code:
  1. {input type="file" name="datei" label="Auswählen" }
    get_input_object('datei').fileInput.value

Auslesen von Eigenschaften ist hingegen wie gewohnt machbar. Eigenschaften oder Arrays wie checked, selected, options, usw stehen nun auch Verfügung.

QuelltextJavaScript Code:
  1. obj.checked;
  2. obj.selected;
  3. obj.options;