Smarty Forum Index Smarty
The discussions here are for Smarty, a template engine for the PHP programming language.
Newbie hat Schwierigkeiten mit value bei assign

 
Post new topic   Reply to topic    Smarty Forum Index -> Language: German
View previous topic :: View next topic  
Author Message
blondie0708
Smarty Rookie


Joined: 08 Jan 2013
Posts: 6

PostPosted: Tue Jan 08, 2013 3:49 pm    Post subject: Newbie hat Schwierigkeiten mit value bei assign Reply with quote

Gesundes Neues ! Ist ja noch nicht Ostern. Wink

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
View user's profile Send private message
TomTo
Smarty Rookie


Joined: 30 May 2009
Posts: 18

PostPosted: Tue Jan 08, 2013 6:23 pm    Post subject: Reply with quote

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 Wink
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
View user's profile Send private message
blondie0708
Smarty Rookie


Joined: 08 Jan 2013
Posts: 6

PostPosted: Tue Jan 08, 2013 11:30 pm    Post subject: Reply with quote

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
View user's profile Send private message
TomTo
Smarty Rookie


Joined: 30 May 2009
Posts: 18

PostPosted: Wed Jan 09, 2013 1:02 pm    Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Smarty Forum Index -> Language: German All times are GMT
Page 1 of 1

 
Jump to:  
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
Protected by Anti-Spam ACP