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

PHP: Smarty Plugin für Input-Felder

manu (40)

manu

03.09.2002 23:07

Aachen

  • 849 Postings, noch 1 bis zum nächsten Level (850)

Postings: 849

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

Hast Du ein Lieblings- Social-Network?

(95 Stimmen)

1. Facebook
2. MySpace
3. StudiVZ
4. MeinVZ
5. Xing
6. Wer-kennt-wen?
7. Stayfriends
8. Anderes
9. Keins

Benutzer-Counter

Besucher gesamt: 795.711
Besucher heute: 151
Besucher gestern: 211
Max. Besucher/Tag: 495
Gerade online: 8
Max. online: 37
Seiten gesamt: 2.883.749
Aufrufe diese Seite: 1.186

Tag-Cloud

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