Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 12. Juni 2012 17:09
- faglork
- arbeitet mit CMS/ms
- Ort: Fränkische Schweiz
- Registriert: 15. Dezember 2010
- Beiträge: 1.152
- Webseite
Array-Element über Variable ansprechen
Moin.
Folgendes Problem:
Ich möchte ein Element eines Arrays über eine Variable ansprechen. Mit einem festen Wert geht das:
[== smarty ==]
{assign var=eventlist value=$xml->veranstaltung}
{$eventlist[1]->datum}
wenn ich aber nun eine Variable verwende:
[== smarty ==]
{$eventlist[$event]->datum}
dann tut sich nichts. $event hat den Wert 1 ...
Ich habe schon ewig im Netz gesucht, ohne Erfolg.
Meist wird zu
{$eventlist.$event.datum}
geraten, aber das funktioniert ebenfalls nicht. Auch
{$eventlist.$event->datum}
nicht.
Hat jemand nen Tipp?
Servus,
Alex
Beitrag geändert von faglork (12. Juni 2012 17:24)
Offline
#2 13. Juni 2012 17:03
- faglork
- arbeitet mit CMS/ms
- Ort: Fränkische Schweiz
- Registriert: 15. Dezember 2010
- Beiträge: 1.152
- Webseite
Re: Array-Element über Variable ansprechen
Also:
{assign var=eventlist value=$xml->veranstaltung}
{assign var=element value=$eventlist[$event]}
<p>$event : {$event}
<p>$element->datum : {$element->datum}
<p>$eventlist[1]->datum : {$eventlist[1]->datum}
<p>$eventlist[$event]->datum : {$eventlist[$event]->datum}
<p>$eventlist.$event->datum : {$eventlist.$event->datum}
<p>$xml->veranstaltung[1]->datum : {$xml->veranstaltung[1]->datum}
<p>$xml->veranstaltung.$event->datum : {$xml->veranstaltung.$event->datum}
der Output:
$event : 1
$element->datum :
$eventlist[1]->datum : 15.06.2012
$eventlist[$event]->datum :
$eventlist.$event->datum :
$xml->veranstaltung[1]->datum : 15.06.2012
$xml->veranstaltung.$event->datum :
--> es funzt nur mit fixen Werten.
Das kann doch nicht sein? Da muss es doch eine Lösung geben?
Servus,
ALex
Offline
#3 14. Juni 2012 08:25
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: Array-Element über Variable ansprechen
Was gibt denn
<pre>{$eventlist|print_r}</pre>
aus?
Offline
#4 14. Juni 2012 09:59
- faglork
- arbeitet mit CMS/ms
- Ort: Fränkische Schweiz
- Registriert: 15. Dezember 2010
- Beiträge: 1.152
- Webseite
Re: Array-Element über Variable ansprechen
eventlist|print_r :
SimpleXMLElement Object
(
[titel] => Geführte Halbtagswanderung
[untertitel] => In der inneren Fränkischen Schweiz
[beschreibung] => Text wegen Lesbarkeit gekürzt
[kategorie] => Sport & Natur
[rubrik] => Wandern
[datum] => 14.06.2012
[uhrzeit] => 13:30
[ort] => Parkplatz Oberes Tor
[stadt] => Stadt
[anschrift] => Oberes Tor
[plz] => 91320
[veranstalter] => Fränkische-Schweiz-Verein
[karten] => Mitfahrgeld 2,00 €
[link] => http://domain.de
[zeitstatus] => 1
[endzeit] => 17:00
)
Gibt print_r nur das erste Element aus?
Die komplette Struktur der von XMLMadeSimple geladenen XML-Datei: http://tinyurl.com/cv3ctsr
Aber an der Struktur kann es doch nicht liegen wenn mit fixen Werten alles bestens funktioniert?
Servus,
Alex
Beitrag geändert von faglork (14. Juni 2012 10:03)
Offline
#5 14. Juni 2012 11:10
- faglork
- arbeitet mit CMS/ms
- Ort: Fränkische Schweiz
- Registriert: 15. Dezember 2010
- Beiträge: 1.152
- Webseite
Re: Array-Element über Variable ansprechen
Im Smarty-Forum kam grad der Hinweis dass $event wohl ein String sei statt einer Integer.
Nuja. Die Variable wird ursprünglich generiert durch hochzählen:
{assign var=anz value=$smarty.foreach.count.index}
--> integer
dann als request variable übergeben:
a href="/{$page_alias}.html?event={$anz}"
und dann auf der Detailseite ausgelesen:
{assign var=event value=$smarty.request.event}
Dabei geht wohl der ursprüngliche Typ verloren, aus ner Integer wird ein String :-(
Wie kann ich den Typ denn umwandeln? (Das Online Smarty Manual ist sch...)
EDIT: {math equation="x + y" x=$event y=1} funzt perfekt, also ist es doch ein integer???
Servus,
Alex
Beitrag geändert von faglork (14. Juni 2012 11:26)
Offline
#6 14. Juni 2012 11:35
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: Array-Element über Variable ansprechen
Probier mal folgendes:
{capture}{$event|@intval}{/capture}
{$eventlist[$event]->datum}
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
#7 14. Juni 2012 15:25
- faglork
- arbeitet mit CMS/ms
- Ort: Fränkische Schweiz
- Registriert: 15. Dezember 2010
- Beiträge: 1.152
- Webseite
Re: Array-Element über Variable ansprechen
Probier mal folgendes:
{capture}{$event|@intval}{/capture} {$eventlist[$event]->datum}
negativ ...
Servus,
ALex
Offline
Seiten: 1