Previous Next

Standard Form Dekoratore die mit dem Zend Framework ausgeliefert werden

Zend_Form wird mit verschiedenen Standard Dekoratoren ausgeliefert. Für weitere Informationen über die generelle Verwendung von Dekoratoren, siehe das Kapitel über Dekoratore.

Zend_Form_Decorator_Callback

Der Callback Dekorator kann einen gewünschten Callback ausführen um Inhalte darzustellen. Callbacks sollte über die 'callback' Option spezifiziert werden die dem Dekorator in der Konfiguration übergeben wird, und die jeder gültige PHP Callback Typ sein kann. Callbacks sollten drei Argumente akzeptieren, $content (den originalen Inhalt der dem Dekorator übergeben wird), $element (das Element das dekoriert werden soll), und ein Array von $options. Ein Beispiel Callback:

class Util
{
    public static function label($content, $element, array $options)
    {
        return '' . $element->getLabel() . "";
    }
}

Dieser Callback würd als array('Util', 'label') spezifiziert werden, und würde einige (falsche) HTML Markups für das Label erzeugen. Der Callback Deorator würde dann entweder ersetzen, voranstellen, oder dem originalen Inhalt den zurückgegebenen Wert anhängen.

Der Callback Dekorator erlaubt es einen Null Wert für die placement Option zu spezifizieren, welche den Originalen Inhalt mit dem vom Callback zurückgegebenen Wert ersetzt; 'prepend' und 'append' sind trotzdem genauso gültig.

Zend_Form_Decorator_Captcha

Der Captcha Dekorator ist für die Verwendung mit dem Captcha Formularelement. Es verwendet die render() Methode des Captcha Adapters um die Ausgabe er erzeugen.

Eine variante des Captcha Dekorators, 'Captcha_Word', wird auch üblicherweise verwendet, und erstellt zwei Elemente, eine Id und eine Eingabe. Die Id zeigt den Identifikator der Session gegen den Verglichen wird, und die Eingabe ist für die Benutzerverifikation des Captchas. Beide werden als einzelnes Element geprüft.

Zend_Form_Decorator_Description

Der Description Dekorator kann verwendet werden um eine Beschreibung in einem Zend_Form, Zend_Form_Element, oder Zend_Form_DisplayGroup Element anzuzeigen; es holt die Beschreibung indem es die getDescription() Methode des Objektes verwendet. Übliche Anwendungsfälle sind das anbieten von UI Hinweisen für Elemente.

Standardmäßig, wenn keine Beschreibung vorhanden ist, wird keine Ausgabe erzeugt. Wenn die Beschreibung vorhanden ist, wird Sie standardmäßig in ein HTML p Tag eingebunden, es kann aber ein Tag durch die Übergabe einer tag Option spezifiziert werden bei der Erstellung des Dekorators, oder durch Aufruf von setTag(). Zusätzlich kann eine Klasse für das Tag spezifiziert werden indem die class Option verwendet wird, oder durch den Aufruf von setClass(); Standardmäßig wird die Klasse 'hint' verwendet.

Die Beschreibung wird escaped indem der Escaping Mechanismus vom View Objekt standardmäßig verwendet wird. Das kann durch die Übergabe eines false Wertes an die 'escape' Option des Dekorators ausgeschaltet werden, oder durch die setEscape() Methode.

Zend_Form_Decorator_DtDdWrapper

Der Standarddekorator verwendet Definitionslisten (<dl>) um Form Elemente darzustellen. Da Form Elemente in jeder Reihenfolge vorkommen können, werden Gruppen und Unterformen angezeigt und können mit anderen Form Elementen interagieren. Um diese speziellen Elementtypen in der Definitionsliste zu behalten, erstellt der DtDdWrapper einen neuen, leeren Definitionsausdruck (<dt>) und bettet dessen Inhalt in ein neues Definitionsdatum (<dd>) ein. Die Ausgabe sieht ähnlich wie folgt aus:

Benutzer Information ...

Dieser Dekorator ersetzt den Ihm angebotenen Inhalt durch dessen Einbettung in das <dd> Element.

Zend_Form_Decorator_Errors

Element Fehler erhalten Ihren eigenen Dekorator mit dem Errors Dekorator. Dieser Dekorator ruft den FormErrors View Helfer auf, welcher Fehlermeldungen in einer ungeordneten Liste (<ul>) als Listenelement darstellt. Das <ul> Element empfängt eine Klasse von "errors".

Der Errors Dekorator kann entwedet vorangestellt oder dem Kontext, der Ihm übergeben wurde, angehängt werden.

Zend_Form_Decorator_Fieldset

Anzeigegruppen und Subformen zeigen Ihren Inhalt standardmäßig in einem Fieldset an. Der Fieldset Dekorator prüft ob entweder eine 'legend' Option oder eine getLegend() Methode in dem registrierten Element vorhanden ist, und verwendet dieses als Legende wenn es nicht leer ist. Jeder Inhalt der übergeben wird, wird in ein HTML Fieldset eingebettet, wobei der originale Inhalt ersetzt wird. Alle Attribute die in den angezeigten Elementen gesetzt sind werden dem Fieldset als HTML Attribute übergeben.

Zend_Form_Decorator_File

File Elemente haben eine spezielle Schreibweise wenn man mehrere File Elemente oder Subformulare verwendet. Der File Decorator wird von Zend_Form_Element_File verwendet und erlaubt es mehrere File Elemente mit einem einzelnen Methodenaufruf zu setzen. Er wird automatisch verwendet und bestimmt den Namen des Elements.

Zend_Form_Decorator_Form

Zend_Form Objekte müssen typischerweise ein HTML Form Tag darstellen. Der Form Dekorator verweise auf den Form View Helfer. Er betten jeden angebotenen Inhalt in ein HTML Form Element ein, indem die Aktionen und Methoden des Zend_Form Objektes verwendet werden, und jedes Attribut als HTML Attribut.

Zend_Form_Decorator_FormElements

Formen, Anzeigegruppen, und Unterformen sind Sammlungen von Elementen. Um diese Elemente darzustellen, verwenden Sie den FormElements Dekorator, welche durch alle Elemente iteriert, render() auf jedem aufruft und diese mit dem registrierten Trennzeichen verbindet. Es kann an Ihm übergebenen Inhalt entweder anhängen oder voranstellen.

Zend_Form_Decorator_FormErrors

Einige Entwickler und Designer bevorzugen es alle Fehlermeldungen am Beginn des Formulars zu gruppieren. Der FormErrors Dekorator erlaubt es das zu tun.

Standardmäßig hat die erzeugte Liste von Fehlern das folgende Markup:

    Man kann eine Vielzahl von Optionen übergeben um die erzeugte Ausgabe zu konfigurieren:

    • ignoreSubForms: Ob die Rekursion im Unterformular ausgeschaltet werden soll oder nicht. Standardwert: false (erlaubt Rekursion).

    • markupElementLabelEnd: Markup der der Elementüberschrift angehängt wird. Standardwert: '</b>'

    • markupElementLabelStart: Markup der der Elementüberschrift vorangestellt wird. Standardwert: '<b>'

    • markupListEnd: Markup der der Nachrichtenliste angehängt wird. Standardwert: '</ul>'.

    • markupListItemEnd: Markup der individuellen Fehlermeldungen angehängt wird. Standardwert: '</li>'

    • markupListItemStart: Markup der individuellen Fehlermeldungen vorangestellt wird. Standardwert: '<li>'

    • markupListStart: Markup der der Nachrichtenliste vorangestellt wird. Standardwert: '<ul class="form-errors">'

    Der FormErrors Dekorator kann entweder angehängt oder dem Inhalt dem er angehört vorangestellt werden.

Zend_Form_Decorator_HtmlTag

Der HtmlTag Dekorator erlaubt es HTML Tags anzupassen um Inhalt zu dekorieren; das angepasste Tag wird in der 'tag' Option übergeben, und jede andere Option wird als HTML Attribut für dieses Tag verwendet. Das Tag nimmt standardmäßig an das es Blocklevel ist, und ersetzt den Inhalt durch dessen Einbettung in das gegebene Tag. Trotzdem kann eine Platzierung spezifiziert werden um das Tag genauso anzuhängen oder voranzustellen.

Zend_Form_Decorator_Image

Der Image Dekorator erlaubt es eine HTML Bildeingabe (<input type="image" ... />) zu erstellen, und es optional in einem anderen HTML Tag darzustellen.

Standardmäßig verwendet der Dekorator die src Eigenschaft des Elements als Bildquelle, welche mit der setImage() Methode als Bildquelle gesetzt werden. Zusätzlich wird das Lebel des Elements als alt Tag verwendet, und imageValue (welches mit den setImageValue() und getImageValue() Zugriffsmethoden des Bildes manipuliert werden kann) wird für den Wert verwendet.

Um ein HTML Tag zu spezifizieren das das Element einbetten soll, kann entweder die 'tag' Option an den Dekorator übergeben werden, oder explizit setTag() aufgerufen werden.

Zend_Form_Decorator_Label

Form Elemente haben tyischerweise ein Label und der Label Dekorator wird verwendet um diese Labels darzustellen. Er ruft den FormLabel View Helfer auf, und holt das Label des Elements inden die getLabel() Methode des Elements verwendet wird. Wenn kein Label vorhanden ist, wird es auch nicht darstellt. Standardmäßig werden Label übersetzt wenn ein Übersetzungsadapter existiert und eine Übersetzung für das Label existiert.

Optional kann die 'tag' Option spezifiziert werden; wenn vorhanden, bettet Sie das Label in das Block-Level Tag ein. Wenn die 'tag' Option vorhanden, und kein Label vorhanden ist wird das Tag ohne Inhalt dargestellt. Es kann definiert werden das die Klasse das Tag mit der 'class' Option verwendet oder durch Aufruf von setClass().

Zusätzlich können Präfixe und Suffixe für die Verwendung spezifiziert werden wenn die Elemente angezeigt werden, basierend darauf ob das Label für ein optionales oder benötigtes Element ist. Übliche Verwendungszwecke würden sein, ein ':' dem Label anzufügen, oder ein '*' um anzuzeigen das das Element benötigt wird. Das kann mit den folgenden Optionen und Methoden gemacht werden:

  • optionalPrefix: Setzt den Text der dem Label vorangestellt wird wenn das Element optional ist. Kann mit den Zugriffsmethoden setOptionalPrefix() und getOptionalPrefix() manipuliert werden.

  • optionalSuffix: Setzt den Text der dem Label angehängt wird wenn das Element optional ist. Kann mit den Zugriffsmethoden setOptionalSuffix() und getOptionalSuffix() manipuliert werden.

  • requiredPrefix: Setzt den Text der dem Label vorangestellt wird wenn das Element benötigt wird. Kann mit den Zugriffsmethoden setRequiredPrefix() und getRequiredPrefix() manipuliert werden.

  • requiredSuffix: Setzt den Text der dem Label angehängt wird wenn das Element benötigt wird. Kann mit den Zugriffsmethoden setRequiredSuffix() und getRequiredSuffix() manipuliert werden.

Standardmäßig stellt der Label Dekorator dem angegebenen Inhalt voran; es kann die 'placement' Option mit 'append' spezifiziert werden um es nach dem Inhalt zu platzieren.

Zend_Form_Decorator_PrepareElements

Formulare, Anzeigegruppen, und Unterformulare sind Kollektionen von Elementen. Wenn der ViewScript Dekorator verwendet wird, ist es nützlich die Möglichkeit zu haben das View Objekt, die Übersetzung, und alle komplett qualifizierten Namen (wie Sie von der Array Schreibweise der Unterformulare erkannt werden), rekursiv setzen zu können. Der 'PrepareElements' Dekorator kann das für dich erledigen. Typischerweise wird man Ihn als ersten Dekorator in der Liste setzen.

$form->setDecorators(array(
    'PrepareElements',
    array('ViewScript', array('viewScript' => 'form.phtml')),
));

Zend_Form_Decorator_ViewHelper

Die meisten Element verwenden Zend_View Helfer für die Darstellung und das wird mit dem ViewHelper Dekorator getan. Mit Ihm kann ein 'helper' Tag spezifiziert werden der explizit den View Helfer setzt der anzupassen ist; wenn keiner angegeben wird, verwendet er das letzt Segment des Klassennamens des Elements um den Helfer zu ermitteln, und stellt den String 'form' voran: z.B. 'Zend_Form_Element_Text' würde nach einem View Helfer 'formText' schauen.

Alle Attribute des angegebenen Elements werden dem View Helfer als Attribute des Elements übergeben.

Standardmäßig fügt dieser Dekorator Inhalt hinten an; es kann die 'placement' Option verwendet werden um eine alternative Platzierung zu spezifizieren.

Zend_Form_Decorator_ViewScript

Manchmal ist es gewünscht ein View Skript für die Erstellung eigener Elemente zu verwenden; auf diesem Weg hat man eine sehr detailierte Kontrolle über die Elemente, und wandelt das View Skript zu einem Designer um, oder erstellt einfach einen Weg um Einstellungen zu überladen die auf Modulen basieren (jedes Modul könnte optional die View Skripte des Elements überladen um seinen eigenen Zwecken zu entsprechen). Der ViewScript Dekorator löst dieses Problem.

Der ViewScript Dekorator benötigt eine 'viewScript' Option, entweder angeboten vom Dekorator, oder als Attribut des Elements. Er stellt dann das View Skript als teilweises Skript, was bedeutet das jeder Aufruf von Ihm seinen eigenen Geltungsbereich der Variablen hat; keine Variablen von der View werden im Element enthalten sein ausser denen des Elements selbst. Verschiedene Variablen werden dann bekannt gegeben:

  • element: Das Element das dekoriert wird

  • content: Der Inhalt der an den Dekorator übergeben wird

  • decorator: Das Dekorator Objekt selbst

  • Zusätzlich werden, alle Optionen die an den Dekorator mit setOptions() übergeben und nicht intern verwendet werden, an das View Skript als View Variablen übergeben.

Als Beispiel, kann das folgende Element hergenommen werden:

// Setzt den Dekorator für das Element zu einem einzelnen, ViewScript,
// Dekorator spezifiziert das viewScript als Option, und einige extra
// Optionen:
$element->setDecorators(array(array('ViewScript', array(
    'viewScript' => '_element.phtml',
    'class'      => 'form element'
))));

// ODER das viewScript als Attribut des Elements spezifizieren:
$element->viewScript = '_element.phtml';
$element->setDecorators(array(array('ViewScript',
                                    array('class' => 'form element'))));

Dann könne ein View Skript die das folgende existieren:

formLabel($this->element->getName(), $this->element->getLabel()) ?> {$this->element->helper}( $this->element->getName(), $this->element->getValue(), $this->element->getAttribs() ) ?> formErrors($this->element->getMessages()) ?>
element->getDescription() ?>

Note: Inhalte mit einem View Skript ersetzen

Es kann für das View Skript nützlich sein den Inhalt der dem Dekorator angeboten wird zu ersetzen -- zum Beispiel wenn man Ihn wrappen will. Das kann man erreichen indem ein boolscher false Wert für die 'placement' Option des Dekorators spezifiziert wird:

// Bei Erstellung des Dekorators:
$element->addDecorator('ViewScript', array('placement' => false));

// Zu einer existierenden Dekorator Instanz hinzufügen:
$decorator->setOption('placement', false);

// Zu einem Dekorator hinzufügen der bereits bei einem Element hinzugefügt ist:
$element->getDecorator('ViewScript')->setOption('placement', false);

// In einem View Skript das von einem Dekorator verwendet wird:
$this->decorator->setOption('placement', false);

Die Verwendung des ViewScript Dekorators wird empfohlen wenn man eine sehr feinkörnige Kontrolle darüber benötigt wie Elemente dargestellt werden.

Previous Next
Introduction to Zend Framework
Übersicht
Installation
Zend_Acl
Einführung
Verfeinern der Zugriffskontrolle
Fortgeschrittene Verwendung
Zend_Amf
Einführung
Zend_Amf_Server
Zend_Auth
Einführung
Datenbanktabellen Authentifizierung
Digest Authentication
HTTP Authentication Adapter
LDAP Authentifizierung
Open ID Authentifikation
Zend_Cache
Einführung
Die Theorie des Cachens
Zend_Cache Frontends
Zend_Cache Backends
Zend_Captcha
Einführung
Captcha Anwendung
Captcha Adapter
Zend_Config
Einleitung
Theory of Operation
Zend_Config_Ini
Zend_Config_Xml
Zend_Config_Writer
Zend_Config_Writer
Zend_Console_Getopt
Einführung in Getopt
Definieren von Getopt Regeln
Holen von Optionen und Argumenten
Konfigurieren von Zend_Console_Getopt
Zend_Controller
Zend_Controller Schnellstart
Zend_Controller Grundlagen
Der Front Controller
Das Request Objekt
Der Standard Router
Der Dispatcher
Action Kontroller
Action Helfer
Das Response Objekt
Plugins
Eine konventionelle modulare Verzeichnis Struktur verwenden
MVC Ausnahmen
Migration von vorhergehenden Versionen
Zend_Currency
Einführung in Zend_Currency
Arbeiten mit Währungen
Migration von vorhergehenden Versionen
Zend_Date
Einführung
Theorie der Arbeitsweise
Basis Methoden
Zend_Date API Übersicht
Erstellen von Datumswerten
Konstanten für generelle Datums Funktionen
Funktionierende Beispiele
Zend_Db
Zend_Db_Adapter
Zend_Db_Statement
Zend_Db_Profiler
Zend_Db_Select
Zend_Db_Table
Zend_Db_Table_Row
Zend_Db_Table_Rowset
Zend_Db_Table Relationships
Zend_Debug
Variablen ausgeben
Zend_Dojo
Einführung
Zend_Dojo_Data: dojo.data Envelopes
Dojo View Helfer
Dojo Form Elemente und Dekoratore
Zend_Dom
Einführung
Zend_Dom_Query
Zend_Exception
Verwenden von Ausnahmen
Zend_Feed
Einführung
Feeds importieren
Feeds von Websites abrufen
Einen RSS Feed konsumieren
Einen Atom Feed konsumieren
Einen einzelnen Atom Eintrag konsumieren
Verändern der Feed- und Eintragsstruktur
Eigene Klassen für Feeds und Einträge
Zend_File
Zend_File_Transfer
Prüfungen für Zend_File_Transfer
Filter für Zend_File_Transfer
Migration von vorhergehenden Versionen
Zend_Filter
Einführung
Standard Filter Klassen
Filter Ketten
Filter schreiben
Zend_Filter_Input
Zend_Filter_Inflector
Zend_Form
Zend_Form
Schnellstart mit Zend_Form
Erstellen von Form Elementen mit Hilfe von Zend_Form_Element
Erstellen von Form durch Verwendung von Zend_Form
Erstellen von eigenem Form Markup durch Zend_Form_Decorator
Standard Form Elemente die mit dem With Zend Framework ausgeliefert werden
Standard Form Dekoratore die mit dem Zend Framework ausgeliefert werden
Internationalisierung von Zend_Form
Fortgeschrittene Verwendung von Zend_Form
Zend_Gdata
Einführung zu Gdata
Authentifizierung mit AuthSub
Die Buchsuche Daten API verwenden
Authentifizieren mit ClientLogin
Google Kalender verwenden
Verwenden der Google Dokumente Listen Daten API
Using Google Health
Google Tabellenkalkulation verwenden
Google Apps Provisionierung verwenden
Google Base verwenden
Picasa Web Alben verwenden
Verwenden der YouTube Daten API
Gdata Ausnahmen auffangen
Zend_Http
Zend_Http_Client - Einführung
Zend_Http_Client - Fortgeschrittende Nutzung
Zend_Http_Client - Verbindungsadapter
Zend_Http_Cookie und Zend_Http_CookieJar
Zend_Http_Response
Zend_InfoCard
Einführung
Zend_Json
Einführung
Grundlegende Verwendung
JSON Objects
XML zu JSON Konvertierung
Zend_Json_Server - JSON-RPC server
Zend_Layout
Einführung
Zend_Layout Schnellstart
Zend_Layout Konfigurations Optionen
Erweiterte Verwendung von Zend_Layout
Zend_Ldap
Einleitung
Zend_Loader
Dynamisches Laden von Dateien und Klassen
Plugins laden
Zend_Locale
Einführung
Zend_Locale verwenden
Normalisierung und Lokalisierung
Arbeiten mit Daten und Zeiten
Unterstützte Gebietsschemata
Migrieren von vorhergehenden Versionen
Zend_Log
Übersicht
Writer
Formatter
Filter
Zend_Mail
Einführung
Versand über SMTP
Versand von mehreren E-Mails über eine SMTP Verbindung
Verwendung von unterschiedlichen Versandwegen
HTML E-Mail
Anhänge
Empfänger hinzufügen
Die MIME Abgrenzung kontrollieren
Zusätzliche Kopfzeilen
Zeichensätze
Kodierung
SMTP Authentifizierung
SMTP Übertragungen sichern
Lesen von Mail Nachrichten
Zend_Measure
Einführung
Erstellung einer Maßeinheit
Ausgabe von Maßeinheiten
Manipulation von Maßeinheiten
Arten von Maßeinheiten
Zend_Memory
Übersicht
Memory Manager
Memory Objekte
Zend_Mime
Zend_Mime
Zend_Mime_Message
Zend_Mime_Part
Zend_OpenId
Einführung
Zend_OpenId_Consumer Grundlagen
Zend_OpenId_Provider
Zend_Paginator
Einführung
Verwendung
Konfiguration
Advanced usage
Zend_Pdf
Einführung
Erstellen und Laden von PDF Dokumenten
Änderungen von PDF Dokumenten speichern
Dokument Seiten
Zeichnen
Dokument Informationen und Metadaten
Anwendungsbeispiel für die Zend_Pdf Komponente
Zend_ProgressBar
Zend_ProgressBar
Zend_Registry
Die Registry verwenden
Zend_Rest
Einführung
Zend_Rest_Client
Zend_Rest_Server
Zend_Search_Lucene
Überblick
Indexerstellung
Einen Index durchsuchen
Abfragesprache
Abfrage Erzeugungs API
Zeichensätze
Erweiterbarkeit
Zusammenarbeit Mit Java Lucene
Erweitert
Die besten Anwendungen
Zend_Server
Einführung
Zend_Server_Reflection
Zend_Service
Einführung
Zend_Service_Akismet
Zend_Service_Amazon
Zend_Service_Audioscrobbler
Zend_Service_Delicious
Zend_Service_Flickr
Zend_Service_Nirvanix
Zend_Service_ReCaptcha
Zend_Service_Simpy
Einführung
Zend_Service_StrikeIron
Zend_Service_StrikeIron: Mitgelieferte Services
Zend_Service_StrikeIron: Erweiterte Verwendung
Zend_Service_Technorati
Zend_Service_Twitter
Zend_Service_Yahoo
Zend_Session
Einführung
Grundsätzliche Verwendung
Fortgeschrittene Benutzung
Globales Session Management
Zend_Session_SaveHandler_DbTable
Zend_Soap
Zend_Soap_Server
Zend_Soap_Client
WSDL Zugriffsmethoden
AutoDiscovery
Zend_Test
Einführung
Zend_Test_PHPUnit
Zend_Text
Zend_Text_Figlet
Zend_Text_Table
Zend_TimeSync
Einführung
Arbeiten mit Zend_TimeSync
Zend_Translate
Einführung
Adapter für Zend_Translate
Benutzen von Übersetzungs Adaptoren
Migration von vorhergehenden Versionen
Zend_Uri
Zend_Uri
Zend_Validate
Einführung
Standard Prüfklassen
Kettenprüfungen
Schreiben von Prüfern
Zend_Version
Auslesen der Version des Zend Frameworks
Zend_View
Einführung
Controller Skripte
View Scripte
View Helfer
Zend_View_Abstract
Zend_Wildfire
Zend_Wildfire
Zend_XmlRpc
Einführung
Zend_XmlRpc_Client
Zend_XmlRpc_Server
Zend Framework Voraussetzungen
PHP Version
PHP Erweiterungen
Zend Framework Komponenten
Zend Framework Abhängigkeiten
Zend Framework Coding Standard für PHP
Übersicht
PHP Dateiformatierung
Namens Konventionen
Code Stil
Zend Framework Performance Guide
Einführung
Laden von Klassen
Internationalisierung (I18n) und Lokalisierung (L10n)
Darstellen der View
Urheberrecht Informationen