ich bin ein absoluter Neuling was Smarty betrifft und würde das Bewertungsformular bei den Artikeln gerne um ein weiteres Textfeld erweitern. Die betreffenden Blöcke in den Template-Dateien sind folgende.
Das Standard Textfeld In der form.tpl :
{* Review text *}
{block name='frontend_detail_comment_input_text'}
{$sFormData.sVoteComment|escape}
{/block}
Ausgabe des Standard Textfeldes In der entry.tpl
{* Review text *}
{block name='frontend_detail_comment_content'}
{$vote.comment|nl2br}
{/block}
Reicht es nun aus, für eine weiteres Text-Feld diese Blöcke in der Template Datei zu duplizieren und die Smarty-Variabeln neu zu benennen?
erst mal Danke für den Input, aber das ist nicht ganz was ich meine.
In dem Bewertungsformular erzeugt ein Eingabefeld und wenn ich es richtig verstehe sorgt {$sFormData.sVoteComment|escape} dafür, dass die Eingabe in mysql in der Tabelle s_articles_vote in der Spalte “comment” abgespeichert wird.
Wenn ich nun also eine neue anlege mit der neuen Angabe {$sFormData.sVoteNeuesfeld|escape} , müsste dann die Eingabe nicht in einer neuen Spalte in mysql mit dem Namen “neuesfeld” abgelegt werden?
Und im nächsten Schritt sorgt ja dann {$vote.comment|nl2br} dafür, dass der Inhalt von der Spalte “comment” ausgegeben wird. Wenn ich das also in {$vote.neuesfeld|nl2br} ändere, müsste dann ja der Inhalt der Spalte “neuesfeld” ausgegeben werden.
Oder sehe ich das falsch? Wie gesagt, ich bin ein Neuling in Sachen Smarty.
Aber scheinbar reicht das nicht aus um die Werte in der Datenbank abzulegen und wieder auszulesen.
Hallo,
also wenn du das updatesicher machen möchtest, musst du definitiv bei Template - Dateien unter anderem extends nehmen und append / prepend. Änderungen in Bare - Dateien werden automatisch beim Update wieder überschrieben, einfaches kopieren des Inhalts einer Bare - Datei + Ergänzung verhindert jegliches Update der Blockinhalte seitens Shopware.
Die Ein- und Ausgabe scheint sonst richtig zu sein (wenn auch nicht updatesicher), dir fehlt aber noch die Verarbeitung der Daten, die musst du auch implementieren, die passiert nicht von allein. Hier wäre der richtige Ansatz ein Hook auf die Funktion sSaveComment() (diese befindet sich zur „Vorlage“ in der Datei sArticles.php im Verzeichnis „/engine/Shopware/Core“).