Entwicklung - PHP - Smarty Plugin für Input-Felder

PHP: Smarty Plugin für Input-Felder

manu (54)

manu

03.09.2002 23:07

Aachen

  • 876 Postings, noch 24 bis zum nächsten Level (900)

Postings: 876

Smarty Plugin für Input-Felder

Dienstag, 22. April 2008 17:20

  • 0.0/6 Votes: 0
0.0/6 Votes: 0
Wer mit der Smarty Template-Engine arbeitet kann sich leicht seine eigenen Plugins für wiederkehrende Template-Schnipsel schreiben.

Als Beispiel habe ich eine Template-Funktion genommen, die ein Input-Feld generiert.
Ich hatte vor längerer Zeit diese Funktion geschrieben, da in der damaligen Anwendung viele Input-Felder mit langem Javascript-Code eingesetzt wurden. Das Plugin hat dort Arbeit gespart und Schreib- und Flüchtigkeitsfehler waren passé.
Den Javascript-Code habe ich aber hier zwecks Übersichtlichkeit entfernt.

Zur Vorbereitung:
Die Template-Funktionen wird in eine Datei geschrieben, die folgendermaßen benannt werden muss:
function.[name].php - also beispielsweise wie in meinem Fall function.myinput.php.

Auch der Name der eigentlichen Funktion folgt diesem Schema:
smarty_function_[name] (also im Beispiel smarty_function_myinput).

Meine Funktion sieht nun so aus:
PHP: (Auswählen)<?
/*
 * Smarty plugin
 * -------------------------------------------------------------
 * File:     function.myinput.php
 * Type:     function
 * Name:     myinput
 * Purpose:  generates input field
 * -------------------------------------------------------------
 */

function smarty_function_myinput($aParams, &$oSmarty) {
   
    $sName        = ' name="'. $aParams['name'] .'" id="'. (isset($aParams['id']) ? $aParams['id'] : $aParams['name']) .'"';
    $sValue         = ' value="'. (isset($aParams['value']) ? $aParams['value'] : '') .'"';
    $sClass         = ' class="'. (isset($aParams['class']) ? $aParams['class'] : 'input') .'"';
    $sMaxLength = (isset($aParams['maxlength']) ? ' maxlength="'. $aParams['maxlength'] .'" size="'. $aParams['maxlength'] .'"' : '');
   
    $sReturn = '<input type="'. $aParams['type'] .'"';
    $sReturn .= $sName;
    $sReturn .= $sValue;
    $sReturn .= $sClass;
    $sReturn .= $sMaxLength;
    $sReturn .= ' />'."\n";
   
    return $sReturn;
}
?>


Sobald diese Datei im Smarty-Plugins-Ordner abgespeichert wurde, kann man die Funktion nun folgendermaßen in seinen Smarty-Templates nutzen:

{myinput type="text" value="0" maxlength="3" name="percent" class="myInput"}

Comments sind wie immer welcome.
Signatur:\\\"I have not failed. I\\\'ve just found 10,000 ways that won\\\'t work.\\\" - Thomas Alva Edison (1847-1931)
Bookmark setzen!:Zu Google Bookmark hinzufügen.Zu bloglines hinzufügen.Zu Newsgator hinzufügen.Zu FURL hinzufügen.Zu DIGG hinzufügen.Zu Webnews hinzufügen.Zu Netscape hinzufügen.Zu Yahoo MyWeb hinzufügen.Zu spurl.net hinzufügen.Zu diigo hinzufügen.Zu Newsvine hinzufügen.Zu del.icio.us hinzufügen.Zu SIMPIFY hinzufügen.Zu Mister Wong hinzufügen.Zu Linkarena hinzufügen.Zu isio.de hinzufügen.Zu Oneview hinzufügen.Zu yigg.de hinzufügen.Zu reddit hinzufügen.Zu StumbleUpon hinzufügen.Zu Slashdot hinzufügen.Zu Blinklist hinzufügen.Zu Technorati hinzufügen.Zu Blogmarks hinzufügen.Zu Blinkbits hinzufügen.Zu ma.gnolia hinzufügen.Zu smarking.com hinzufügen.Zu Netvouz hinzufügen.Zu co.mments hinzufügen.Zu Connotea hinzufügen.Zu de.lirio.us hinzufügen.

Specials

Bytefresser Specials: Anno 1404

Umfrage

Welches ist Dein Lieblings-Anno?

(161 Stimmen)

1. Ganz klar: Anno 1800!
2. Anno 2205
3. Anno 2070
4. Anno 1404
5. Anno 1701
6. Anno 1503
7. Anno 1602
8. Anno Online

Benutzer-Counter

Besucher gesamt: 1.355.228
Besucher heute: 50
Besucher gestern: 379
Max. Besucher/Tag: 1.642
Gerade online: 11
Max. online: 167
Seiten gesamt: 35.144.728
Aufrufe diese Seite: 93

Tag-Cloud

  smarty-templates     bookmark     template-schnipsel     aachen     april     beispiel     dienstag     javascript-code     schreib-     level     smarty     funktion     entwicklung     template-engine     postings     thomas     signatur     comments     template-funktion     edison     schema     bytefresser     plugin     auswählen     purpose     vorbereitung     arbeit     anwendung     datei     input-felder