Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]2879[/thread]

HTML-Template: Zugriff auf Variablen aus Unterstru



<< >> 6 Einträge, 1 Seite
ronald
 2003-09-19 12:25
#28140 #28140
User since
2003-08-15
76 Artikel
BenutzerIn
[default_avatar]
Ich habe eine Struktur der Form
Code (perl): (dl )
1
2
ENV => [ {KEY=>HOME,VAL=> ...}, {KEY=>LOGNAME, VAL=> ...},]
usw.


Zur Ausgabe dieser Daten in einer Quelle kann ich dann
[html]
<TMPL_LOOP ENV>
   <tr><td><TMPL_VAR KEY></td><td><TMPL_VAR VAL></td></tr>
</TMPL_LOOP>
[/html]
verwenden.

Frage:
Wie kann ich ausserhalb des LOOPs auf die Variablen zugreifen? (oder muss ich alle Variablen nochmals definieren)

Frage: Wenn ich sie ausserhalb des LOOPs definieren muss: wie kann ich dann selbst definierte Einträge schützen? In den ENV-Variablen-Namen sind ja fast alle gängigen Zeichen erlaubt.
jan10001
 2003-09-19 15:06
#28141 #28141
User since
2003-08-14
962 Artikel
BenutzerIn
[default_avatar]
Quote
Frage:
Wie kann ich ausserhalb des LOOPs auf die Variablen zugreifen? (oder muss ich alle Variablen nochmals definieren)

Du kannst die Variablen so oft benutzen wie du möchtest, einfach einen neuen Loop mit gleichen Namen an anderer Stelle anlegen.
Darf man mal fragen was du vor hast?
kabel
 2003-09-19 17:12
#28142 #28142
User since
2003-08-04
704 Artikel
BenutzerIn
[default_avatar]
ich denke, ronald will im HTML eine template variable eines loops auch noch ausserhalb verwenden, also etwa:

[html]<TMPL_LOOP ENV>
<tr><td><TMPL_VAR NAME=KEY></td><td><TMPL_VAR NAME=VAL></td></tr>
</TMPL_LOOP>
the second loop key is <TMPL_VAR VALUE=ENV[1]->{KEY}>[/html]

spricht etwas dagegen, das manuell zu machen?
-- stefan
Strat
 2003-09-19 20:58
#28143 #28143
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
die Variablen einer Loop sind immer lokal, also kannst du von ausserhalb nicht darauf zugreifen. Dies wuerde ja auch keinen Sinn machen, weil html::template nicht weiss, auf welche der verschiedenen iterationen du zugreifen willst, weil es sich ja um eine liste(nreferenz) handelt, die hashreferenzen enthaelt. und wenn du in einer loop nur ein element brauchst, dann brauchst du auch keine schleife ;-)

es wuerde sicher helfen, wenn du erklaerst, was du und warum du das machen willst...
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
ronald
 2003-09-22 15:13
#28144 #28144
User since
2003-08-15
76 Artikel
BenutzerIn
[default_avatar]
o.k.

Also: ich habe eine Protokolldatei, die ich in HTML aufbereiten will.

Am Anfang stehen einige Informationen über die Umgebung, und dann kommen die einzelnen Datensätze.

Code: (dl )
1
2
3
4
5
6
7
Datenbanktyp:  I (Informix)
Datenbank   :  moes_r3@lxdb_tcp
Suchpfad : /r5/forsgb/4.1/forsco4/db:/r5/forsgb/4.1/forsco41/db:/r5/forsgb/4.1/fors/db
Stand: 19.09.2003 15:39:39
CHANGES: DROPTABLE acgf
CHANGES: NEWTABLE apag
CHANGES: NEWINDEX apag apagx2


Als Ausgabe möchte ich eine Tabelle haben, in der die Definitionen aufgelistet werden. Diese Tabelle wird mit einem TMPL_LOOP aufgebaut.

Anschließend soll eine kurze Erläuterung zu dieser Tabelle kommen. Dafür müsste ich auf die Werte direkt zugreifen können.

Zur Zeit belege ich folgende Strukturen:

Code (perl): (dl )
1
2
3
4
INFO => [ { KEY => 'Datenbanktyp', VAL => 'I (Informix)'}, ...],
Datenbanktyp => 'I (Informix)',
...
CHANGES => [ {TABLE => 'acfp', ....}, {TABLE=>'apag',...} ]


Die Definition des "Datenbanktyp"-Keys auf der 1. Stufe gefällt mir nicht, weil: Wer weiss, was irgendwelche Anwender in die Ausgangsdatei schreiben. Wenn dort als Schlüssel z.B. "INFO" oder "CHANGES" auftaucht, dann gehen Daten verloren.
Deshalb wäre es mir am Liebsten, wenn ich nur den "INFO" und den "CHANGES"-Eintrag hätte und mir die Informationen aus dem INFO-Loop holen könnte.

nur nebenbei: natürlich wäre es auch ganz geschickt, wenn ich bei der Beschreibung der einzelnen Tabellen auf den Datenbanktyp zugreifen könnte, aber damit ist das Modul dann überfordert. Dies liesse sich wohl so lösen, dass man die Tabelleninformationen unter den INFO-key hängt und dann mit Vererbung arbeitet, oder?
jan10001
 2003-09-22 18:24
#28145 #28145
User since
2003-08-14
962 Artikel
BenutzerIn
[default_avatar]
Quote
Die Definition des "Datenbanktyp"-Keys auf der 1. Stufe gefällt mir nicht, weil: Wer weiss, was irgendwelche Anwender in die Ausgangsdatei schreiben. Wenn dort als Schlüssel z.B. "INFO" oder "CHANGES" auftaucht, dann gehen Daten verloren.
Deshalb wäre es mir am Liebsten, wenn ich nur den "INFO" und den "CHANGES"-Eintrag hätte und mir die Informationen aus dem INFO-Loop holen könnte.

nur nebenbei: natürlich wäre es auch ganz geschickt, wenn ich bei der Beschreibung der einzelnen Tabellen auf den Datenbanktyp zugreifen könnte, aber damit ist das Modul dann überfordert. Dies liesse sich wohl so lösen, dass man die Tabelleninformationen unter den INFO-key hängt und dann mit Vererbung arbeitet, oder?
Ich verstehe da nur Bahnhof. Sorry
<< >> 6 Einträge, 1 Seite



View all threads created 2003-09-19 12:25.