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.229
Besucher heute: 51
Besucher gestern: 379
Max. Besucher/Tag: 1.642
Gerade online: 14
Max. online: 167
Seiten gesamt: 35.144.834
Aufrufe diese Seite: 113

Tag-Cloud

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