|
Smarty
WARNING: All discussion is moving to https://reddit.com/r/smarty, please go there! This forum will be closing soon. |
|
View previous topic :: View next topic |
Author |
Message |
blondie0708 Smarty Rookie
Joined: 08 Jan 2013 Posts: 6
|
Posted: Tue Jan 08, 2013 3:49 pm Post subject: Newbie hat Schwierigkeiten mit value bei assign |
|
|
Gesundes Neues ! Ist ja noch nicht Ostern.
Als Nicht-Programmierer benötige ich mal Eure Hilfe. Ich nutze ein CMS, welches intern mit smarty arbeitet, aber manchmal brauche ich Werte aus den Variablen.
Mit diesem Schnipselchen
Code: | {assign var="UrlHeader" value=$table.url_header}
{php}
$urlheader = $this->get_template_vars('UrlHeader');
{/php}
|
habe ich es ja geschafft eine Variable 'auszugeben'. [war PIWIK-API-Dingens ...].
Nun wollte ich mich, auf dem gleichen Weg, den 'Bildrechten' widmen und das alt bzw. title Tag dazu 'missbrauchen' in jedem Beitrag automatisch die 'Rechte' auszugeben.
In der $table.lan_teaser_img_fertig steht ja sowas wie
Code: | <img alt="beschreibung1 (c) bildrechte" title="beschreibung2 (c) bildrechte" src="bildpfade" /> |
Daraus wollte ich mittels strpos() mir dieses alt oder title Tag rausholen und am Ende wieder 'einbauen'.
Leider funktioniert dies überhaupt nicht, weil ein einfaches
Code: | {assign var="Bildrechte" value=$table.lan_teaser_img_fertig}
{php}
$bildrechte = $this->get_template_vars('Bildrechte');
$laenge = strlen($bildrechte);
echo "<!-- Laenge ".$laenge." Bildrechte ".$bildrechte." -->";
{/php} |
bei Laenge eine 0 und keinerlei Inhalt bei bildrechte ausgibt.
Bin ich da komplett auf dem Holzweg ? Oder welchen Fehler habe ich schon hier gemacht ?
Danke für jeden Zaunspfahl, Webhinweis oder Alternativvorschlag !
Thomas |
|
Back to top |
|
TomTo Smarty Rookie
Joined: 30 May 2009 Posts: 18
|
Posted: Tue Jan 08, 2013 6:23 pm Post subject: |
|
|
Ich verstehe zwar die Sache nicht so ganz, aber irgendwie ist das Murks,
PHP in Templates ist eine reine Notlösung und macht man nicht.
Suche Dir am besten die Script Datei (.php) die dieses Template generiert und von da übergibst Du dann Deinen gewünschten String.
Das extrahieren des Title Tag kannste auch so machen :
Hier mal ein Nicht-Programmierer Beispiel
Code: |
<?php
<title>beschreibung2 (c) bildrechte </title>
oder auch
$bild='<img title="beschreibung2 (c) bildrechte" src="bildpfade" />';
$ergebnis=preg_replace('/^.*<title>(.*?)<\/title>.*$/isx', '$1', $bild);
echo $ergebnis;
AUSGABE:
beschreibung2 (c) bildrechte
|
Last edited by TomTo on Wed Jan 09, 2013 8:50 am; edited 1 time in total |
|
Back to top |
|
blondie0708 Smarty Rookie
Joined: 08 Jan 2013 Posts: 6
|
Posted: Tue Jan 08, 2013 11:30 pm Post subject: |
|
|
TomTo wrote: | aber irgendwie ist das Murks,
|
Danke !!!
Das waren wichtige Hinweise.
Ich musste zwar noch ein paar Sachen in dem CMS anders machen, aber im wesentlichen haut es so jetzt hin.
P.S.: Ich meinte nicht <title>irgendwas</title>, sondern <img src='' title='' alt='' /> - das habe ich zuerst gar nicht mitgeschnitten, aber dann noch hinbekommen.
Dank Dir habe ich heute wieder irsinnig viel gelernt. Danke !!! |
|
Back to top |
|
TomTo Smarty Rookie
Joined: 30 May 2009 Posts: 18
|
Posted: Wed Jan 09, 2013 1:02 pm Post subject: |
|
|
Alles klar...es ist dabei aber egal ob es der Title-Tag (Seitentitel), oder ein Alt Tag vom Bild ist.
Ich wollte Dir lediglich einen Anstoss geben, das das suchen und ersetzen über reguläre Ausdrücke einfacher geht.
Code: |
<?php
$bilder = '
<img img1.gif" alt="Bild 1 - Das blaue Pferd">
<img img2.gif" alt="Bild 2 - Der grüne Hamster">
<img img3.gif" alt="Bild 3 - Die gelbe Taube"> ';
$replace = preg_replace('/<img(.*)alt="(.*)"\>/', "$2", $bilder);
echo $replace;
AUSGABE :
Bild 1 - Das blaue Pferd
Bild 2 - Der grüne Hamster
Bild 3 - Die gelbe Taube
?>
|
Es gibt natürlich wie immer unterschiedliche Wege, zb. auch mit String Funktionen. |
|
Back to top |
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|