[Trick] einen Link auf http:// prüfen

Diskussionen zur Smarty-Template-Engine
Post Reply
nicmare
Power Poster
Power Poster
Posts: 1150
Joined: Sat Aug 25, 2007 9:55 am
Location: Berlin

[Trick] einen Link auf http:// prüfen

Post by nicmare »

Vielleicht kann es ja jemand gebrauchen! Denn die Smartydokumentation ist da lückenhaft und das Thema zu googlen ist garnicht so einfach.
Mein Problem war dass ich im Backend Felder habe, wo der Kunde einen Link einsetzen kann. Noch ist das kein Problem.
Die Ausgabe beim Template sieht in etwa so aus:

Code: Select all

<a href="{entry->website}">{entry->website}</a>
Doof ist nur wenn der Kunde mal die Links mit "http://" und mal ohne "http://" oder gar ohne "http://www" einsetzt. Soll es alles geben ;-). Drum habe ich das so gelöst:

Code: Select all

<a href="http://{if $entry->website|strstr:"http://"}{$entry->website|substr:7}{else}{$entry->website}{/if}" target="_blank">{if $entry->website|strstr:"http://"}{$entry->website|substr:7}{else}{$entry->website}{/if}</a>
Sieht natürlich ganzschön wirr aus aber das Wesentliche ist:

Code: Select all

http://{if $entry->website|strstr:"http://"}{$entry->website|substr:7}{else}{$entry->website}{/if}
Also das http:// wird so oder so vorangestellt. Dann wird geprüft ob die Variable ein "http://" enthält. Wenn das der Fall ist, wir die Variable um 7 Zeichen (eben h t t p : / / ) gekürzt oder wenn es nicht vorhanden ist, direkt ausgegeben.

zwischen habe ich das genau so gemacht (nur ohne http://) da ich die Ausgabe einheitlich haben wollte. Der Optik wegen...

Bin kein php/smarty profi aber vielleicht gehts ja auch noch einfacher?!

Grüße
Last edited by nicmare on Thu Apr 15, 2010 9:44 am, edited 1 time in total.
NaN

Re: [Trick] einen Link auf http:// prüfen

Post by NaN »

wie wäre es mit dem Modifikator replace:

Code: Select all


http://www.{$entry->website|replace:'http://':''|replace:'www.':''}

Ohne if-Abfrage.
Einfach generell alles was mit http oder www zu tun hat aus dem Link entfernen und dafür dann voranstellen.
nicmare
Power Poster
Power Poster
Posts: 1150
Joined: Sat Aug 25, 2007 9:55 am
Location: Berlin

Re: [Trick] einen Link auf http:// prüfen

Post by nicmare »

wow. auch ne super idee. da komm ich mir ja schon bissl blöd vor :D
danke
nockenfell
Power Poster
Power Poster
Posts: 751
Joined: Fri Sep 12, 2008 2:34 pm
Location: Schweiz / Switzerland

Re: [Trick] einen Link auf http:// prüfen

Post by nockenfell »

NaN wrote: wie wäre es mit dem Modifikator replace:

Code: Select all

http://www.{$entry->website|replace:'http://':''|replace:'www.':''}
Mit dem Replace von www wäre ich vorsichtig. Es gibt ein Paar Seiten welche www2 oder www3 als Subdomain nutzen. Hier machst du die URL mit einem Replace kaputt. Zudem gibt es auch Seiten welche sich Standardmässig ohne www melden. z.B. http://meinedomain.com
[this message is written with 100% recycled bits]
Post Reply

Return to “Smarty-Tipps und -Tricks”