Page 1 of 1

[gelöst] {get_template_vars} einzelne Werte ausgeben ?

Posted: Wed Mar 04, 2009 6:22 pm
by amh
Servus,

mit {get_template_vars} kann man ja alle (bekannten) smarty-Variablen Ausgeben. Wie kan ich eine bestimmte ausgeben? Leider geht folgender Text nicht im Template:

Code: Select all

$page_alias = $smarty->get_template_vars('page_alias');
echo "Wert: " .$page_alias;
Vielen Dank für Tipps Andreas

Re: {get_template_vars} einzelne Werte ausgeben ?

Posted: Wed Mar 04, 2009 6:40 pm
by NaN
Dein Code sieht mir nach ganz gewöhnlichem php-Code aus.
Das hat so nix im Template zu suchen.
Für das Alias gibt es bereits eine Templatevariable
Nämlich genau $page_alias.
Oder auch $page_name.

Also wenn Du einfach irgendwo ins Template {$page_alias} schreibst, dann wird Dir an dieser Stelle das Seiten Alias ausgegeben.
Versuch mal zu beschreiben was genau Du vorhast.

Re: {get_template_vars} einzelne Werte ausgeben ?

Posted: Wed Mar 04, 2009 6:57 pm
by amh
Danke für den Hinweis. Also zwei Dinge habe ich im Kopf:

1. Ich würde gern die page-id ausgeben und das z.B. für das Menü benutzen. Gern aber (für später) mal einen anderen Wert.

2. WICHTIGER: Ich versuche im Kalendermodul einen Hinweis einzubauen, wenn keine Events angezeigt werden.

Code: Select all

{if $items == 0} <– geht nicht.
	{foreach from=$events key=key item=event}
		<div class="calendar-event">
			… Kalender-Tamplate-Code
	{/foreach}
{else}
	 <p>Keine Termine eingetragen.</p>
{/if}
Mit get_template_vars wird angezeigt, dass es da eine Array gibt, dass die Anzahlt der Events enthält (Events = Array (3) ). Na ja, und da dachte ich …nen if drum und feddisch.  :'(  :'(  :'(

Viele Grüße Andreas

Re: {get_template_vars} einzelne Werte ausgeben ?

Posted: Wed Mar 04, 2009 7:09 pm
by NaN
Mit

Code: Select all


<pre>
{$events|print_r}
</pre>

kann man sich den kompletten Inhalt dieses Arrays anzeigen lassen.
Ich bezweifle aber, dass dort die Anzahl der Events drin steht.
Dort werden vielmehr alle Evtens inklusive ihrer Eigenschaften enthalten sein.
Was ist $items für eine Variable?
Um die Anzahl der Elemente in diesem Array zu ermitteln fallen mir zwei Möglichkeiten ein:

Code: Select all


{if !empty($events)}
   ...
{/if}

oder

Code: Select all


{if $events|@count>0}
    ...
{/if}

Für die page-id müsste es doch auch eine Variable $content_id geben, oder?

Re: {get_template_vars} einzelne Werte ausgeben ?

Posted: Wed Mar 04, 2009 8:50 pm
by cyberman
NaN wrote:

Code: Select all

{if $events|@count>0}
    ...
{/if}
Letztens hab ich

Code: Select all

{if $events}
...
{else}
<p>In dieser Kategorie können wir Ihnen gegenwärtig keine Tickets anbieten.</p>
{/if}
verwendet ;).

Re: {get_template_vars} einzelne Werte ausgeben ?

Posted: Wed Mar 04, 2009 9:05 pm
by amh
Servus!  ;D

2. Deine BEIDEN Code-Beispiel funktionieren PERFEKT! YIPIEEEEEH. Nun kann ich eine Nachricht ausgeben, wenn im list-view keine Termine vorhanden sind. DANKE!

1. Die Tags {$page_alias}, {$content_id} und {$page_name} funktionieren prächtig. Aber – ich möchte natürlich Deine Hilfsbereitschaft nicht überstrapazieren – wie kann ich einen Wert ausgeben, für den es kein fertiges Tag gibt ;-)

Viele Grüße Andreas

@cyberman: Danke :-)

Re: {get_template_vars} einzelne Werte ausgeben ?

Posted: Wed Mar 04, 2009 9:15 pm
by cyberman
Für was brauchst du denn einen Tag?

PS: Alles, was bei dem Tag auf der linken Seite ausgegeben wird, sind die verfügbaren Smarty-Variablen, einfach nur in Dollar-Zeichen davor und in  Klammern setzen ... von Arrays kannst du die Werte mit dem Modifikator print_r ausgeben, also z.Bsp.

Code: Select all

{$nodelist|print_r}

Re: {get_template_vars} einzelne Werte ausgeben ?

Posted: Wed Mar 04, 2009 9:33 pm
by amh
*verneig*

Für mich und andere nochmals zusammengefasst:

Code: Select all

{$smartyArray|print_r} (z.B. lang = Array (9) )
{$smartyVariable} (z.B. customcontent_monthfulltext = March)
So einfach? :o  Genial – wenn man es weiß.


Herzlichen Dank Ihr Beiden! Der Arbeitstag ist somit gerettet. Nun gehts nach Hause zu Frau und Kind  :D

Andreas

Re: {get_template_vars} einzelne Werte ausgeben ?

Posted: Wed Mar 04, 2009 9:38 pm
by cyberman
amh wrote: So einfach? :o  Genial – wenn man es weiß.
Yep. Ich entdecke fast täglich das Wunder von Smarty neu  ;D.

Und das obige Beispiel beschreibt nur einen Bruchteil der Möglichkeiten ... wenn du wüsstest, was da noch alles möglich ist.