[Zope] restrictedTravers-Problem (oder was auch immer)
Tobias Herp
THerp@apriori.de
Fri, 8 Nov 2002 15:35:11 +0100
Hi,
ich habe ein Problem, was mich gerade in den Wahnsinn treibt...
Es geht um einen dtml-let-Block, in dem ich unter Verwendung des
and-or-Tricks von Python eine Kaskade von Variablen definiere. So sieht=
's
aus (Leerzeilen eingef=FCgt wg. etwaiger Umbr=FCche):
<dtml-let reference=3D"REQUEST.get('reference','')"
r_split=3D"reference and reference.split('/') or []"
page_path=3D"REQUEST.get('page_path') or REQUEST.get('obj',''=
)"
refl=3D"(r_split > ['',''])"
imgid=3D"refl and r_split[-1] or ''"
galid=3D"refl and r_split[-2] or ''"
galSeed=3D"page_path and restrictedTraverse(page_path) or Non=
e"
galleries=3D"galSeed and galSeed.getGalleries() or page_objec=
t
().getGalleries() or []"
galleries=3D"page_path and getGalleries()"
the_gallery=3D"galid and restrictedTraverse(galid,'') or None=
"
the_gallery=3D"the_gallery or (_.len(galleries)=3D=3D1 and
galleries[0])"
galid=3D"galid or (the_gallery and the_gallery.getId()) or ''=
"
the_images=3D"the_gallery and the_gallery.objectValues
('LMSGalleryImage')"
>
<dtml-if "1"> <!-- Debugging-Code: -->
query string: <dtml-var "REQUEST.environ.get('QUERY_STRING',
'').split('&')">
galid=3D<dtml-var galid><br>
imgid=3D<dtml-var imgid><br>
reference=3D<dtml-var reference><br>
page_path=3D<dtml-var page_path><br>
galSeed: <dtml-var "`galSeed`"><br>
galleries: <dtml-var galleries><br>
</dtml-if>
Worauf es ankommt, ist die Variable galleries, die hinterher eine Liste=
von
Galerien enthalten soll (spezielle ZClass), die wiederum nat=FCrlich Bi=
lder
enthalten. page_path wird korrekt =FCbergeben und ist
/der/Pfad/zum/Seitenobjekt (auch eine ZClass, die wiederum eine Methode=
getGalleries hat). Wenn page_path einen nicht-leeren Wert hat und auf e=
in
g=FCltiges Verzeichnis zeigt, m=FC=DFte doch galSeed ein g=FCltiges Obj=
ekt sein!
Ich habe zwecks Debugging unmittelbar unter dem =F6ffnende dtml-let-Tag=
ein
paar Ausgaben plaziert. page_path hat den korrekten Wert; aber anstelle=
von
"<acPage instance at 015C7578>" (getestet mit genau demselben Pfad in e=
inem
PythonScript) wird gar nichts ausgegeben.
Was stimmt da blo=DF nicht? Hat restrictedTraverse irgendwelche T=FCcke=
n, die
mir einen Streich spielen? Irgendwelche Ideen oder Anmerkungen?
tia,
Tobias
--
Diese E-Mail enth=E4lt vertrauliche und/oder rechtlich gesch=FCtzte
Informationen. Wenn Sie nicht der richtige Adressat sind oder
diese E-Mail irrt=FCmlich erhalten haben, informieren Sie bitte
sofort den Absender und vernichten Sie diese Mail. Das un-
erlaubte Kopieren sowie die unbefugte Weitergabe dieser Mail
ist nicht gestattet.
This e-mail may contain confidential and/or privileged
information. If you are not the intended recipient (or have
received this e-mail in error) please notify the sender
immediately and destroy this e-mail. Any unauthorised copying,
disclosure or distribution of the material in this e-mail is
strictly forbidden.=