Freitextfeld wird nicht im Frontend angezeigt

Hallo Freunde,

mein Artikelfreitextfeld attr3 wird nicht auf der Artikeldetailseite angezeigt.

Darin gebe ich bei jedem Artikel das Herstellungsland ein, d.h. der Text ist nie zu lang. Die Einstellungen für das Feld sehen genauso aus wie 2 andere Textfelder, die ich bereits in der Artikelansicht bereits habe.

Weiß jemand worin der Fehler liegen kann? Natürlich ist das Feld in den Stammdaten jedes Artikels mit Inhalt gefüllt. Auch in der Datenbank kann ich bei attr3 keine Veränderung zu attr1 oder attr4 feststellen.

Es muss im template auch ausgegeben werden. Welches nutzt du? 

Ist attr3 nicht der Kommentar unter der Artikel Beschreibung? 

Angezeigt wird es schon aber nicht wo du es vermutest > http://community.shopware.com/Artikel-anlegen_detail_807.html#Freitext-1_und_Freitext-2

das Freitextfeld attr3 ist unter der Artikel-Langbeschreibung (Artikelbeschreibung) zu finden, weil es im Standart eben ein Kommentarfeld ist.

Wenn du es oben bei den anderen beiden haben willst musst du das Template anpassen.

Ich habe hier schon sehr oft geschrieben sich mal ausgiebig mit der Dokumentation zu beschäftigen, gerade für Neueinsteiger, da könnte man sich viele Fragen hier sparen.

es ist die Datei “/frontend/detail/index.tpl” und in dieser der Block:

                           {* Product attributes fields *}
                            {block name='frontend_detail_data_attributes'}

                                {* Product attribute 1 *}
                                {block name='frontend_detail_data_attributes_attr1'}
                                    {if $sArticle.attr1}
                                        
                                            
                                                {s name="DetailAttributeField1Label"}{/s}:
                                            

                                            
                                                {$sArticle.attr1|escape}
                                            
                                        
                                    {/if}
                                {/block}

                                {* Product attribute 2 *}
                                {block name='frontend_detail_data_attributes_attr2'}
                                    {if $sArticle.attr2}
                                        
                                            
                                                {s name="DetailAttributeField2Label"}{/s}:
                                            

                                            
                                                {$sArticle.attr2|escape}
                                            
                                        
                                    {/if}
                                {/block}
                            {/block}

Uwe

Danke für die Lösung useg :slight_smile:

Das mit der Dokumentation ist so eine Sache. Ich habe diese nahezu komplett gelesen, aber sie ist teils sehr unübersichtlich oder unvollständig strukturiert. Als Beispiel: Woher weiß ich welches attr Feld welche Funktion hat und wo es später erscheint? Shopware hat dazu zwar eine Informationsseite, die jedoch nicht besonders aussagekräftig ist. Wie soll ich als Nicht-Programmierer/Webentwickler wissen, wo ich genau was anpassen muss, um ein so einfaches Textfeld ausgeben zu lassen?

Und genau das ist mit attr3 passiert. Dass es das Kommentarfeld in der Artikelbeschreibung ist, wird nirgendwo beschrieben. In meinen Augen war es einfach ein gefüllter „Demobaustein“ in den Grundeinstellungen von Shopware damit die „Artikel-Freitextfelder“ im backend nicht so leer dastehen. 

Wo würden nun z.B. andere verfügbaren Freitextfelder (attr5 - attr20) erscheinen, wenn ich sie aktiviere und in den Stammdaten der Artikel fülle?

@Andrew schrieb:

 

Wo würden nun z.B. andere verfügbaren Freitextfelder (attr5 - attr20) erscheinen, wenn ich sie aktiviere und in den Stammdaten der Artikel fülle?

Hi,

die Freitextfelder attr4-attr20 sind nicht im Template eingebaut. Die musst du selber an gewünschter Stelle mit z.B. dem Code von useg integrieren. 

@Creatixx schrieb:

@Andrew schrieb:
aaa

 

Wo würden nun z.B. andere verfügbaren Freitextfelder (attr5 - attr20) erscheinen, wenn ich sie aktiviere und in den Stammdaten der Artikel fülle?

Hi,

die Freitextfelder attr4-attr20 sind nicht im Template eingebaut. Die musst du selber an gewünschter Stelle mit z.B. dem Code von useg integrieren. 

Und genau das ist ja das Problem. Ohne den Code von useg könnte ich das jetzt nicht machen. Als unerfahrener Programmierer bin ich total aufgeschmissen, weil Shopware mir erstmal sagt „Dir stehen 20 Freitetfelder zur Verfügung“. Und ich denke mir: „Cool, dann kann ich bis zu 20 Felder in die Artikelbeschreibung einfügen, ohne mich mit dem Code auseinandersetzen zu müssen“ - eben weil attr1 und attr2 schon so voreingestellt sind :frowning:

Du kannst ja nach deinen Wünschen die Freitextfelder auf der gesammten Artikelseite verwenden und da shopware ja nicht wissen kann was du wo mit denen vor hast sind eben nur die zwei eingebunden und das dritte als Kommentarfeld unter der Artikelbeschreibung.

Ich würde dir raten das dritte für deinen Zweck nicht zu nehmen da du es sonst aus dem Template “ausbauen” musst.

Ansonsten müsstest du in eigenem Template eine “/frontend/detail/index.tpl” ,falls noch nicht vorhanden, erstellen und mit folgenden Inhalt füllen:

{extends file="parent:frontend/detail/index.tpl"} 
 
 
{* Product attributes fields *}
{block name='frontend_detail_data_attributes' append}
  

    {* Product attribute 4 *}
        {if $sArticle.attr4}
            
                
                    {s name="DetailAttributeField4Label"}{/s}:
                

                
                    {$sArticle.attr4|escape}
                
            
        {/if}


    {* Product attribute 5 *}
        {if $sArticle.attr5}
            
                
                    {s name="DetailAttributeField5Label"}{/s}:
                

                
                    {$sArticle.attr5|escape}
                
            
        {/if}
      
      
{/block}

Damit werden die Attr4 und 5 unter den Attr1 und 2 angezeigt, In den Textbausteinen findest du dann neu “DetailAttributeField4Label” und “DetailAttributeField5Label” denen du dann noch Werte geben musst.
Beachte das die Textbausteine erst angelegt werden wenn du die Artikeldetailseite im Frontend aufrufst und danach das Backend neu lädst.

Das ganze kannst du natürlich noch erweitern wenn du mehr benötigst.

Hier mal ein paar Tutorials von Kayyy, die dir einige Sachen ein wenig erklären.> https://shopwareianer.com/tutorials

Uwe

2 „Gefällt mir“

Danke nochmals für die tollen Tips :slight_smile:

Jetzt klappt alles wie gewollt. Bei Kayyy habe ich mir bereits mehrere Anleitungen angeschaut (Webfonts, zusätzliche Reiter, SW Logo aus Footer entfernen), sind sehr gute Tutorials dabei  Thumb-Up

Hallo Zusammen habe es nach der Anleitung anlegen können und sehe es auch im backend… habe meine artikel mit csv importiert und sehe dort auch den Eintrag unter Artikel nur zeigt es mir nichts an auch wenn ich cache leere usw… :frowning: hat mir jemand einen tip? 

 {* Product attribute 9 *}
        {if $sArticle.attr9}
            -
               
                    {s name=“DetailAttributeField9Label”}{/s}:
               

               
                    {$sArticle.attr9|escape}
               
           
        {/if}

      
 {* Product attribute 10 *}
        {if $sArticle.attr10}
            -
               
                    {s name=“DetailAttributeField10Label”}{/s}:
               

               
                    {$sArticle.attr10|escape}
               
           
        {/if}
      
{/block}

 

Abgelegt habe ich die index datei unter themes/frontend/bare/frontend/idex/index.tpl

@Shoqbox schrieb:

Hallo Zusammen habe es nach der Anleitung anlegen können und sehe es auch im backend… habe meine artikel mit csv importiert und sehe dort auch den Eintrag unter Artikel nur zeigt es mir nichts an auch wenn ich cache leere usw… :( hat mir jemand einen tip? 

 {* Product attribute 9 *}
        {if $sArticle.attr9}
           
               
                    {s name=„DetailAttributeField9Label“}{/s}:
               

               
                    {$sArticle.attr9|escape}
               
           
        {/if}

      
 {* Product attribute 10 *}
        {if $sArticle.attr10}
           
               
                    {s name=„DetailAttributeField10Label“}{/s}:
               

               
                    {$sArticle.attr10|escape}
               
           
        {/if}
      
{/block}

 

Abgelegt habe ich die index datei unter themes/frontend/bare/frontend/idex/index.tpl

Hallo,

also in keiner Anleitung steht, Änderungen im Bare - Theme einzupflegen (die würden nämlich beim nächsten Update sofort überschrieben), da hast du die Anleitung definitiv falsch gelesen. Und dein Pfad ist auch völlig falsch. Du musst dir natürlich ein eigenes Theme erstellen, das vom Responsiven Theme von Shopware ableitet und dann wie von useg oben beschrieben die Datei mit seinem Inhalt einfach im eigene Theme im entsprechenden Verzeichnis ablegen.

Beste Grüße

Sebastian

Hallo useg,

ich habe deinen Code in meinem Theme eingefügt und das Freitextfeld 4 als HTML-Feld konfiguriert. Auf der Artikel-Detail Seite wird mir der HTML-Code ausgegeben und nicht das, was es sollte, z.B. ein Bild.

Was mache ich da falsch?

@topspeed schrieb:

Hallo useg,

ich habe deinen Code in meinem Theme eingefügt und das Freitextfeld 4 als HTML-Feld konfiguriert. Auf der Artikel-Detail Seite wird mir der HTML-Code ausgegeben und nicht das, was es sollte, z.B. ein Bild.

Was mache ich da falsch?

Ich hänge mich da mal mit rein, weil ich das gleiche Problem etwas später nach diesem Thema hatte. Es sollte sollte der Inhalt eines Freitextfeldes in einem neuen Tab auf der Artikeldetailseite ausgegeben werden.

Lösung: Schau mal in deine Datenbank in der Tabelle s_articles_attributes -> Typ. Bei mir wird für attr4 standartmäßig „varchar(255)“ benutzt, d.h. es werden max. 255 Zeichen aus dem Freitextfeld übernommen. Bei HTML Inhalten sinnlos. Ändere dann den Typ des Eintrages entweder auf sowas wie „mediumtext“. Wenn das nicht möglich ist und sich attr4 nach der Änderung nicht speichern lässt, greife auf eine andere Zeile zurück. Ich habe z.B. attr9 genommen, weil dieses von Shopware so angelegt wurde.

 

Stell mal den Code von deinem Template rein und auch was du im Backend in des Html-Feld ein gibst, bei einem Bild sollte ja der HTML-Text auch dementsprechend aussehen.

Besser für ein Bild wäre hier aber sicher ein Feld mit Spaltentyp  „Einfachauswahl“ und bei  Entity : die Auswahl „Media - Shopware\Models\Media\Media“.

 

Uwe

{extends file="parent:frontend/detail/index.tpl"} 
 
 
{* Product attributes fields *}
{block name='frontend_detail_data_attributes' append}
  

    {* Product attribute 4 *}
        {if $sArticle.attr4}
            
                
                    {s name="DetailAttributeField4Label"}{/s}:
                

                
                    {$sArticle.attr4|escape}
                
            
        {/if}


    {* Product attribute 5 *}
        {if $sArticle.attr5}
            
                
                    {s name="DetailAttributeField5Label"}{/s}:
                

                
                    {$sArticle.attr5|escape}
                
            
        {/if}
      
      
{/block}

Hallo useg,

hier ist der Code. Ich habe es mit "Spaltentyp “Einfachauswahl” und bei Entity: die Auswahl “Media - Shopware\Models\Media\Media” versucht, da wurde eine Zahl, wahrscheinlich die ID des Bildes, ausgegeben. Am liebsten wäre es mir ein Button auszugeben, deshalb habe ich es mit HTML versucht. Ein verlinktes Bild würde auch gehen.

Ich muss mich auch mal mit einklinken.

{extends file="parent:frontend/detail/index.tpl"} 
 
 
{* Product attributes fields *}
{block name='frontend_detail_data_attributes' append}
  

    {* Product attribute 4 *}
        {if $sArticle.attr4}
            
                
                    {s name="DetailAttributeField4Label"}{/s}:
                
				
				 {* Product attribute 5 *}
        {if $sArticle.attr5}}
            
                
                    {s name="DetailAttributeField5Label"}{/s}:

 

Leider wird mir im Frontend nichts angezeigt. Welchen Denkfehler habe ich da?

 

@upsidedown schrieb:

Ich muss mich auch mal mit einklinken.

{extends file=„parent:frontend/detail/index.tpl“}

{* Product attributes fields *}
{block name=‚frontend_detail_data_attributes‘ append}

{* Product attribute 4 *}
{if $sArticle.attr4}

{s name=„DetailAttributeField4Label“}{/s}:

{* Product attribute 5 *}
{if $sArticle.attr5}}

{s name=„DetailAttributeField5Label“}{/s}:

 

Leider wird mir im Frontend nichts angezeigt. Welchen Denkfehler habe ich da?

 

Hallo,

der Denkfehler wird wohl das falsche Kopieren des Inhalts von oben sein. Bei dir fehlt ja nicht nur das schließende < li > - Element, sondern auch das schließende { /if } als auch überhaupt die Ausgabe des Freitextfeldes selbst (also das < span > - Element mit dem Artikel - Freitextfeld selbst).

Beste Grüße

Sebastian

Hallo zusammen,
 

ist diese Beschreibung noch aktuell? Ich möchte auch die Attribute 4 und 5 bei den Artikeldetails im frontend anzeigen. Meiner Meinung nach habe ich es genau so gemacht wie USEG beschrieben hat. Im Backend passt alles, leider wird bei mir im Frontend nichts angezeigt. Ich muss dazu sagen das ich kaum Programmierkenntnisse habe, bekomme viele Dinge aber mit Tutorials selbst hin.

  1. Habe in MEINEM Template im Ordner frontend/detail die Datei index.tpl erstellt.
  2. Die Code von USEG per copy & paste eingefügt und gespeichert
  3. Cache geleert und Theme kompiliert.

Leider ohne Erfolg… Vielleicht hat jemand noch eine Idee?