URL in Variable ausgeben

Hallo, ich habe gerade ein Problem und stehe etwas auf dem Schlauch. Ich möchte in meinem Theme eine URL über ein Variabel ausgeben die in der Theme.php im Backend konfiguruert ist.

Die Konfiguration an sich funktioniert, das Problem liegt an der Gernerierung des Links. So habe ich die Variable verbaut, damit die URL dort als Link-Ziel genutzt wird.

Erstmal wurde der Shop gar nicht mehr geladen. Als ich den Inhalt dann von https://www.facebook einfach mal auf irgeneinen Text (xxx) geändert habe wurde der Shop wieder angezeigt und ich habe gesehen das für den Link folgende URL genieriert wird: 

https://www.SHOPURL.de/xxx

Der Inhalt der Variable wird also einfach nur als relativer Link an die Shop-URL angehängt. Wie bekomme ich es hin, dass die URL der Variable dort als Absoluter Link genutzt wird? Ich hoffe es kann mir jemand auf die Sprünge helfen. Danke im Vorraus.

Gruß,
Manuel

Verstehe das Problem nicht so ganz, du hast also eine Variable in welcher eine URL-Adresse gespeichert ist und diese soll nun…irgendwo in einer tpl eingesetzt werden und dann extern verlinken?

Sofern http/s vor der Adresse steht interpretieren Browser die URLs immer als absolute Adresse, steht nur “href=/[seitenname]/[scriptname_optional]” dann ist das ein relativer Pfad innerhalb der aktuellen Seite.

Für interne Verlinkungen bietet shopware diverse Funktionen an, Verlinkungen on-the-fly zu generieren, du gibst nur controller und aktion an und der Rest wird dir erstellt.
Für externe Verlinkungen reicht es die vollständige Adresse beim a-tag anzugeben.

Ja, mein Plan war ja auch die Variable einfach im dem a-tag ausgeben zu lassen. 

Nochmal zur Erklärung: Ich habe über die Theme.php eine Textfeld angelegt in dem die URL eingetragen werden kann. Dieses Feld hat den Wert „SocialLink“.

In der Template Datei habe ich dann folgenden Code für den Link eingefügt:

Facebook

Wenn ich nun im Backend in das Feld beispielsweise https://www.facebook com eingebe wird nicht der Link https://www.facebook im a-tag ausgegben sonder https.//www.MEINEURL.de/https://www.facebook

Der Link wird also an meine Shop URL angehängt. Das führt dann erstmal dazu, dass der Shop wegen eines Fehlers gar nicht angeziegt wird. Konnte ich dann nachstellen, als ich im Backend statt https://www.facebook einfach mal xxx in das Feld eingegeben habe und dann geshehen habe, dass der generierte Link ttps.//www.MEINEURL.de/xxx lautet.

Mein Problem ist also, dass der Link nicht 1:1 im href des a-tags ausgegeben wird sondern als relativer Pfad an meine Shop URL angehängt wird.

In dem Fall einfach mittels php-Funktion die Shop-URL abschneiden. {$smarty|phpFunktion:Parameter1}. Es müsste eine Variable mit dem Shop-Host geben, die sollte man dann nutzen.

Da du sicher kein Less Kompatibilitätsflag in deiner Theme.php gesetzt hast, musst du die url in " "  setzen. Die Url „www.google.de“ so in dein Textfeld eintragen. Die bessere Lösung ist aber wie gesagt das gleich richtig zu Programieren. 

 

 

Danke für die Antwort. Das mit den Anführungszeichen werde ich mal testen, ist aber wirklich nicht die optimale Lösung.

Kannst du mir mal ein paar Stichwörter geben in welche Richtung das in Sachen Programmierung gehen muss, bzw. wie das realsiert werden kann. Auf dem Gebiet bin ich leider nciht so fit…

 $socialMediaFacebookField = $this->createTextField(
        'SocialMediaFacebookLink',
        'Facebook Link',
        '',
			['attributes' => ['lessCompatible' => false]]
      );

Also auf die Schnelle ich würde es so machen. und in deinem Template dann am besten mit einer if abfrage dann so aufrufen

 

 {if $theme.SocialMediaFacebookLink} Facebook {/if}

 

Das hat funktioniert. Es lag tatsächlich nur an dem “lessCompatible’ => false”. Das hatte ich an anderer Stelle auch schon genutzt aber hatte ich in dem Fall gar nicht auf dem Schirm…

Vielen Dank für diene Hilfe!