Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 08. Februar 2012 12:11

conceptbay
probiert CMS/ms aus
Ort: Essen
Registriert: 12. November 2010
Beiträge: 30
Webseite

[GELÖST] Variablenübergabe | Showtime Slideshow | Template

Hallo zusammen! :-)

Ich habe ein Problem, welches mehrere Teilbereiche umfasst, denke aber, dass es hier im Smarty-Bereich am passendsten aufgehoben ist.

Ich stehe vor Folgendem:

Ein Kunde setzt auf seiner Webseite das Modul "Showtime Slideshow" in der Flash-Version ein, wobei die Bilder vollflächig über den gesamten Screen angezeigt werden.

Nun möchte er auch eine alternative jQuery-Version für mobile Endgeräte wie Smartphones und, wichtig, das iPad entwickeln.

Dabei möchte er aber nicht die gesamte Seiten spiegeln und für alles eine Extra-Version mit doppeltem Pflegeaufwand erstellen. Also war mein Gedanke, dass, je nachdem, mit welchem System der Besucher auf die Seite gelangt, eine angepasste Slideshow angezeigt wird.

Ich habe daher zur Erkennung des Systems das Mobile Detection Kit (http://www.osnews.com/story/19681/Open_ … ection_Kit) als UDT eingebunden.

Soweit, so schön.

Der Aufruf für die Slideshow lautet {Showtime show='#'}.

Ich hatte jetzt angedacht, dass ich über das MDK eine Zahl-Variable deklariere, die ich im Showtime-Tag ausgebe.

Leider funktioniert das nicht so einfach, da ich die Variablen aus dem UDT nicht ins Template übertragen bekomme und erst recht nicht in den {Showtime}-Tag.

Also habe ich versucht, stattdessen den gesamten Tag in einer Variable zu verpacken, welche ich im Template ausgeben lassen kann. Das funktioniert auch, das Problem dabei ist jetzt nur, dass der {Showtime show='#'}-Tag als Text ausgegeben, aber nicht über Smarty verarbeitet wird.

Im Quelltext wirds, soweit ich das beurteilen kann, korrekt ausgegeben, nur eben nicht verarbeitet.
(Ausgabe: "<div class='headerimage_jquery'>{Showtime show='1000'}</div>")

Wäre toll, wenn mir jemand dabei weiterhelfen kann, da ich schon seit Stunden davor sitze, und den Wald vermutlich vor lauter Bäumen nicht mehr sehe.

PS: Wenn der Post hier falsch ist - gern verschieben! ;-)

Offline

#2 08. Februar 2012 12:22

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.437

Re: [GELÖST] Variablenübergabe | Showtime Slideshow | Template

Ich kenne jetzt den UDT nicht, aber Variablen an Smarty zu übergeben ist ganz einfach:

[== php ==]

$var = '#';
$smarty = cmsms()->GetSmarty();
$smarty->assign('var', $var);

Anwendung im Template:

[== smarty ==]

{mein_udt}
{Showtime show=$var}

Also habe ich versucht, stattdessen den gesamten Tag in einer Variable zu verpacken, welche ich im Template ausgeben lassen kann. Das funktioniert auch, das Problem dabei ist jetzt nur, dass der {Showtime show='#'}-Tag als Text ausgegeben, aber nicht über Smarty verarbeitet wird.

Logisch, oder?
Dein UDT ist das was von Smarty verarbeitet wird.
Sonst nichts.
Der Showtime-Tag ist das, was Dein UDT ausgibt.
Damit ist die Arbeit für Smarty erledigt.
Der Smarty-Engine ist völlig egal was die Tags ausgeben.
Das wird anschließend nicht nochmal verarbeitet.


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#3 08. Februar 2012 12:30

conceptbay
probiert CMS/ms aus
Ort: Essen
Registriert: 12. November 2010
Beiträge: 30
Webseite

Re: [GELÖST] Variablenübergabe | Showtime Slideshow | Template

Das ging schnell :-)

Ich richte das gleich mal so ein, dank Dir!

Offline

#4 08. Februar 2012 12:59

conceptbay
probiert CMS/ms aus
Ort: Essen
Registriert: 12. November 2010
Beiträge: 30
Webseite

Re: [GELÖST] Variablenübergabe | Showtime Slideshow | Template

Das hat super geklappt - jetzt wird alles richtig angezeigt.
Mein Fehler lag darin, dass ich die PHP_Variablen falsch für Smarty deklariert habe, bzw. das "$smarty= cmsms()->GetSmarty();" hatte gefehlt.

Fall gelöst!

Danke nochmal! :-)

Offline