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

PHP: Smarty Plugin für Input-Felder

manu (53)

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?

(151 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.267.853
Besucher heute: 136
Besucher gestern: 403
Max. Besucher/Tag: 1.578
Gerade online: 12
Max. online: 167
Seiten gesamt: 29.038.572
Aufrufe diese Seite: 85

Tag-Cloud

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