[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.=