Guten Abend, ich habe bei meinen Blog-Artikeln jeweils das Freitextfeld 1 gefüllt und möchte den Inhalt dieses Freitextfeld ausgeben lassen. Das wollte ich mit {$sArticle.attribute.attribute1} machen (wie hier angegeben: http://wiki.shopware.com/Blog_detail_10 … textfelder). Leider wird nichts ausgeben. Die Werte aus dem Freitextfeld stehen in der Datenbank, das habe ich bereits überprüft. Wo könnte der Fehler liegen? VG Thomas
Hast Du es so in der blog/detail.tpl drin? {if $sArticle.attribute.attribute1} {$sArticle.attribute.attribute1} {/if}
Ich habs so wie du geschrieben hast in der blog/listing.tpl drin: {if $sArticle.attribute.attribute1} {$sArticle.attribute.attribute1} {/if}
Das muss doch in die blog/detail.tpl. Das Freitextfeld ist doch für den jeweiligen Artikel, nicht fürs Listing. Denke mal da ist der Fehler. Ich habe es unter die Thumbnails gepackt, da fällt es gut auf.
Ja gut bei den Produkten funktionierts aber auch dass die Freitextfelder der Produkte im Listing ausgegeben werden. Das sollte ja kein Problem sein wenn der Wert einmal in die Smarty-Varible geschrieben ist den dann abzurufen, egal auf welcher Seite. Ich vermute der Fehler liegt darin dass der Wert aus dem Freitextfeld nicht in die Variable geschrieben wird. Ich weiß allerdings nicht an welcher Stelle das geschieht damit ich es überprüfen kann…
Weiß jemand an welcher Stelle die Smarty-Variablen {$sArticle.attribute.attribute1} etc. mit den Werten aus den Blog-Freitextfeldern befüllt werden?
Hallo, ich habe das ganze über ein Plugin gelöst. Erst auf das Event registrieren $this-\>subscribeEvent( 'Enlight\_Controller\_Action\_PostDispatch\_Frontend\_Blog', 'addAttributesToBlog' );
Dann über eine Funktion die restlichen Daten holen und übergeben. public function addAttributesToBlog(Enlight\_Event\_EventArgs $args){ $this-\>registerComponents(); $controller = $args-\>getSubject(); $view = $controller-\>View(); $blogEntries = $view-\>getAssign('sBlogArticles'); foreach($blogEntries as $key =\> $val) { $blogArticleQuery = Shopware()-\>Models()-\>getRepository('Shopware\Models\Blog\Blog')-\>getDetailQuery($val['id']); $blogArticleData = $blogArticleQuery-\>getOneOrNullResult(\Doctrine\ORM\AbstractQuery::HYDRATE\_ARRAY); $blogEntries[$key]["additionalAttributes"] = $blogArticleData['attribute']; } $view-\>assign('sBlogArticles', $blogEntries); }
Im Template (z.B. blog/box.tpl) kannst dann so darauf zugreifen: {$sArticle.additionalAttributes.attribute2}
Viele Grüße Oliver
Hallo kommad, ich bekomme „Es ist ein Fehler“ aufgetreten Meldung wenn das Plugin aktiv ist. Installation und Aktivierung ging Problemlos. Könntest du bitte nochmal rüberschauen worauf man bei deiner Lösung achten sollte? Sind die Bezeichnungen des Eventlisteners und das View-dingens in der Funktion richtig? Danke, Gruss.