Zend Framework 2 - Form-Element Decorators
Möchte ich die Kraft des Zend form in Twitter Bootstrap style. Ich habe derzeit Durchlaufen die form-Felder und schreiben Sie die form info in meiner bootstrap div-Konstruktion.
Sah ich im Zend Framework 1(!) es gibt einen Weg, dies zu tun innerhalb von einem Dekorateur. Aber aus irgendeinem Grund, den doc für die version 2 nicht gerade dieser Punkt...
Ich würde gerne etwas wie das hier tun:
protected $_format = '<label for="%s">%s</label>'
. '<input id="%s" name="%s" type="text" value="%s"/>';
public function render($content)
{
$element = $this->getElement();
$name = htmlentities($element->getFullyQualifiedName());
$label = htmlentities($element->getLabel());
$id = htmlentities($element->getId());
$value = htmlentities($element->getValue());
$markup = sprintf($this->_format, $name, $label, $id, $name, $value);
return $markup;
}
Irgendwelche Ideen?
werfen Sie einen Blick auf die verschiedenen twitterbootstrap-Module, einige von Ihnen haben eigene view Helfer, welches unterstützt die meisten/alle der Optionen. zB. bitbucket.org/dlu/dlutwbootstrap
ich überprüfte mehrere von Ihnen, aber Sie nicht installieren oder müssen über 1 million Zeilen code pro form... ich mag meine Lösung, aber es wäre schön, wickeln Sie es in ein Dekorateur...das ist, warum 🙂
Zend\Form nicht decorator, aber Sie sind frei, zu schreiben, Ihre view-Helfer, wie Sie Sie entworfen hat. Nenn es wie du willst. und es nennen wie: echo $this->myviewhelper($Formular->get('elementname'));
vielen Dank, ill give it a try
ich überprüfte mehrere von Ihnen, aber Sie nicht installieren oder müssen über 1 million Zeilen code pro form... ich mag meine Lösung, aber es wäre schön, wickeln Sie es in ein Dekorateur...das ist, warum 🙂
Zend\Form nicht decorator, aber Sie sind frei, zu schreiben, Ihre view-Helfer, wie Sie Sie entworfen hat. Nenn es wie du willst. und es nennen wie: echo $this->myviewhelper($Formular->get('elementname'));
vielen Dank, ill give it a try
InformationsquelleAutor Ron | 2012-12-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin mit
partials
jetzt. Ich bin iterieren über die Attribute, bauen ein paar Ausnahmen wie z.B.CSRF
undSubmit
... Das funktioniert ziemlich glatt:Ansicht
Teilweise
Ausnahmen sind Links für Klarheit Willen...
ich denke, verwenden Sie if-Bedingungen
InformationsquelleAutor Ron
Habe ich es so wie @Rufinus erwähnt. Sehen Sie in diesem Tutorial, wie Sie einen View Helper im ZF2 http://blog.evan.pro/creating-a-simple-view-helper-in-zend-framework-2
In meinem Fall wollte ich einfach wickeln Formular-Elemente mit der Liste posten, so erweiterte ich die original-ZF2 View Helfer, und lassen Sie das rendering der Elemente. Ich Nur mit, was Sie zurück:
View Helfer FormCollection.php
View Helfer FormElement.php
während meine Sicht sieht so aus und müssen nicht geändert werden, damit die änderungen wirksam werden.
arbeitete wie ein Charme.
InformationsquelleAutor iroybot
Versuchte ich Ron ' s Partielle Methode, das Ergebnis würde wie diese, die nicht-Bootstrap-3 bestimmt.
Wir wissen, um die Verwendung von bootstrap 3 vordefinierte Form, Stil, müssen wir definieren Stil zu input-element: Formular-Kontrolle, anstatt zu Ihrer Verpackung-element.
Meine Teilweise Weg, ist wie folgt.
Gut, konnten wir das Ergebnis erhalten.
So fügen Sie benutzerdefinierte Formatvorlagen in zf2 Formulare erwähnt hat : zum hinzufügen von class-Attribut für das Form-element.
Sieht es ganz einfach, aber das problem ist das input-element wäre eingewickelt in das label-element, das immer noch nicht, was Bootstrap 3 vorgesehen.
Meiner Meinung nach ist die Partielle Methode ist immer noch eine leichte und flexible Auswahl. Tee-Box ist ein ZF2 Praxis, Sie könnten alle oben genannten code und Beschreibung von Gibhub
id
- Attribut festlegen.InformationsquelleAutor John Yin
Dadurch wird der code einfacher.
http://php.net/manual/en/function.echo.php
Das ist meine Meinung: wenn Sie schreiben können einfacher, es zu tun. Ähnliche Tipps: verwenden Sie AnyClass1, AnyClass2;
Die folgende Zeile echo konnte eingerückt werden, zur besseren Lesbarkeit.
Ich sah Ihr Profil, damit Sie verstehen die Analogie hier: cout << a; cout << b; Diese kann geschrieben werden als cout << a << b; Und außerdem, endl = PHP_EOL
Es hängt von deinem code. Genauso wie cout 🙂 Aber wenn Sie formCollection, wie in diesem Fall, mein Beispiel ist korrekt.
InformationsquelleAutor