Zusätzliche Buttons neben Mein Konto, Warenkorb im Header

Hallo, ich möchte oben in den Header einen Button reinmachen der sich “Kontakt” nennt.  Kriege das aber irgendwie noch nicht so hin…

 

In der /widgets/checkout/info.tpl ist ja der Block Notepad, My account und Cart. Ich dachte mir jetzt, ich füge einfach einen Code dazwischen rein, aber irgendwie will das nicht…

So sieht es aktuell aus, zwischen Mein Konto und dem Herzchen sollte jetzt ein weiterer Button sein mit Kontakt z.B.

 

Hier mein geschnippsel derzeit:

{extends file='parent:widgets/checkout/info.tpl'}

{* Notepad entry *}
{block name="frontend_index_checkout_actions_notepad"}
    
        
            
            {if $sNotesQuantity > 0}
                
                    {$sNotesQuantity}
                
            {/if}
        
    
{/block}


{* Contact entry *}
{block name="frontend_index_checkout_actions_contact"}
    
            
                
                
                
                    Kontaktformular
                
            
    
{/block}

{* My account entry *}
{block name="frontend_index_checkout_actions_my_options"}
    
        {block name="frontend_index_checkout_actions_account"}
            
                
                
                
                    {s namespace='frontend/index/checkout_actions' name='IndexLinkAccount'}{/s}
                
            
        {/block}
    
{/block}

{* Cart entry *}
{block name="frontend_index_checkout_actions_cart"}
    
        
            
                {if $sUserLoggedIn}
                    {s name='IndexLinkCheckout' namespace='frontend/index/checkout_actions'}{/s}
                {else}
                    {s namespace='frontend/index/checkout_actions' name='IndexLinkCart'}{/s}
                {/if}
            

            {$sBasketQuantity}

            
            
                
                    Warenkorb
                
            {if $sBasketQuantity > 0}
                
                    {$sBasketQuantity}
                
            {/if}
        

    
{/block}

{block name="frontend_index_checkout_actions_inner"}{/block}

 

Ich hoffe mir kann jemand nen Tipp geben?

Hallo,

der Fehler liegt darin, dass du ja nur eine neue Schaltfläche hinzufügen möchtest und somit die Blöcke der bereits existierenden Schaltflächen gar nicht anpassen musst. Also eher (damit die Schaltfläche nach dem Merkzettel erscheint):

{extends file='parent:widgets/checkout/info.tpl'}

{* Notepad entry *}
{block name="frontend_index_checkout_actions_notepad"}
    {$smarty.block.parent}
    
            
                
                
                    {s namespace='frontend/index/checkout_actions' name='IndexLinkContact'}Kontaktformular{/s}
                
            
    
{/block}

Mit deiner Anpassung hast du die bestehenden Blöcke ja überschrieben und da in deinen Textbausteinen kein Inhalt ist, beispielsweise hier: {s namespace=‚frontend/index/checkout_actions‘ name=‚IndexLinkAccount‘}{/s}, wird dir auch kein Text angezeigt.

Du solltest in Template-Dateien in deinem eigenen Theme auch nur Shopware Blöcke einfügen, die du auch wirklich anpassen möchtest.

Beste Grüße

Sebastian

1 Like

Ah schau mal einer an, wieder was neues gelernt mit dem smarty.block.parent

Okay, ein neuer Button wäre jetzt so nicht mehr das Problem. Nur folgendes passiert jetzt. Ich möchte unter jeden  Button auch einen Namen stehen haben. Wenn ich jetzt den Block vom notepad dazu packe, verschwindet der parent block.

@konsi schrieb:

Ah schau mal einer an, wieder was neues gelernt mit dem smarty.block.parent

Okay, ein neuer Button wäre jetzt so nicht mehr das Problem. Nur folgendes passiert jetzt. Ich möchte unter jeden  Button auch einen Namen stehen haben. Wenn ich jetzt den Block vom notepad dazu packe, verschwindet der parent block.

Hallo,

prinzipiell hättest du statt {$smarty.block.parent} auch einen prepend oder append auf den jeweiligen Block machen können.

Wo soll denn der Name stehen? Hast du dich mal mit der Doku von Shopware auseinandergesetzt ( Frontend Guides )? Mein Code verwendet doch schon den notepad-Block, wenn du den Block nochmal exakt so in der gleichen Datei nutzt, überschreibst du logischerweise wieder den Block davor. Und wenn du zwischen {s namespace=‚frontend/index/checkout_actions‘ name=‚IndexLinkAccount‘}{/s} , also {s name=’’}{/s} nichts schreibst, ist der Text natürlich auch leer. Hast du dir überhaupt einmal überlegt, wie das ganze in kleineren Auflösungen aussehen soll, was du vorhast?

Wenn du aber vorhast, so und so alle Blöcke in der Datei komplett zu überschreiben (ohne {$smarty.block.parent}, prepend oder append, also nur den Blocknamen hinschreibst), brauchst du am Ende auch kein extends mehr, weil du ja eh alle (zukünftigen) Änderungen durch deine Anpassung / Überschreibung sofort überschreiben und unwirksam machen würdest.

Beste Grüße

Sebastian

1 Like

Hi Sebastian,

also geplant ist, dass oben immer ein Icon ist und unten drunter einfach der Text.

In dem Guide habe ich schon öfters gelesen ja, zu diesem Fall auch, allerdings funktioniert das nicht…

Hier aus dem Guide mal die Lösung:

{extends file="parent:frontend/index/shop-navigation.tpl"}

{block name='frontend_index_checkout_actions'}
    
         {* Add an URL to the href attribute to make your link work *}
            
        
    
    
    {$smarty.block.parent}
{/block}

 

Keine Ahnung woran es die ganze Zeit lag… jetzt geht es auf einmal mit der Guide Lösung…

@sschreier schrieb:

prinzipiell hättest du statt {$smarty.block.parent} auch einen prepend oder append auf den jeweiligen Block machen können.

Davon wird inzwischen abgeraten, da smarty unter gewissen Umständen ein Bug hat, und die Verkettung bricht.
Wer ein wenig bei Git stöbert kann erkennen, dass auch SW nach und nach Blöcke von Prepend/append auf $smarty.block.parent umstellt. 

1 Like

@sonic schrieb:

@sschreier schrieb:

prinzipiell hättest du statt {$smarty.block.parent} auch einen prepend oder append auf den jeweiligen Block machen können.

Davon wird inzwischen abgeraten, da smarty unter gewissen Umständen ein Bug hat, und die Verkettung bricht.
Wer ein wenig bei Git stöbert kann erkennen, dass auch SW nach und nach Blöcke von Prepend/append auf $smarty.block.parent umstellt. 

Hallo,

gut zu wissen - ich habe aber so und so ansich immer versucht, gleich {$smarty.block.parent} zu nutzen, da man damit ja ansich das gleiche erreichen kann.

Beste Grüße

Sebastian