(Fwd) Re: [Zope] Equality test: if sequence-item = document id
Hello all, one of my lovely colleagues got it working with the following code: <dtml-let thisone=menu_sort_order> <dtml-in "PARENTS[0].objectValues('DTML Document')"> <dtml-if "hasProperty('menu_sort_order')"> <dtml-if expr="thisone==menu_sort_order"> <a href="&dtml-absolute_url;">[<dtml-var title>]</a> <dtml-else> <a href="&dtml-absolute_url;"><dtml-var title></a> </dtml-if> <dtml-else> </dtml-if> </dtml-in> </dtml-let> many thanks to Tim for your suggestion: it pointed us in a direction which works, even if i don't really understand why! though it would seem to have something to do with strings versus integers (menu_sort_order being a property which accepts integer values...) cheers, Garry ------- Forwarded message follows ------- From: Garry Steedman <gs@styrax.com> To: tim@freepm.org, michel@digicool.com, Max Møller Rasmussen <maxm@normik.dk> Subject: Re: [Zope] Equality test: if sequence-item = document id [excessive recursion error] Copies to: zope@zope.org Send reply to: gs@styrax.com Date sent: Sat, 2 Jun 2001 13:43:21 +0000 Tim, thanks for the reply: i should have made myself clearer the first time round: at first i thought it was just an issue of stringifying things in order to compare them, but, once this is taken care of (as i suspect it is now) this fscking recursion error takes over. which, IINM means its a namespace problem. one of the things which puzzles me is that when i use objectIds() (as opposed to objectValues()), the recursion problem goes away, but i can't call the title variable without getting an authentication dialogue (which doesn't accept the admin pwd!) - now, i can get round this by using the title_or_id variable, but this renders as the title_or_id of the *current* document times the number of documents in the list (instead of the title_or_id of each document)! this, again, IINM, suggests a namespace problem. i guess i must be missing something fairly obvious because i can't believe i'm trying to do something particularly strange :( Folder_X [Folder] standard_x_header [DTML Method] nav_stuff_l1 [DTML Method] nav_stuff_l2 [DTML Method] Folder_Y [Folder] doc_1 [DTML Document] doc_2 [DTML Document] standard_x_header includes <dtml-var nav_stuff_l1> <dtml-var nav_stuff_l2> <nav_stuff_l1> is this: <dtml-comment> This method builds the 1st-level site navigation. It iterates through Folder objects below the site root, sorts them by the property "menu_sort_order" (which is an integer value starting at 0) and renders the Folder title (this is important because we can't put accents in the id) only if this property is present. The inside loop tests whether the current folder is in the list of folders and if it is it wraps square brackets around the title to highlight our current position. </dtml-comment> <DIV CLASS=navigation VALIGN="top"> <dtml-in "Folder_X.objectValues('Folder')" sort=menu_sort_order> <dtml-if "hasProperty('menu_sort_order')"> <dtml-if "this()==PARENTS[0]"> <a href="&dtml-absolute_url;">[<dtml-var title>]</a> <dtml-else> <a href="&dtml-absolute_url;"><dtml-var title></a> </dtml-if> <dtml-else> </dtml-if> </dtml-in> </DIV> <nav_stuff_l2> is this: <dtml-comment> This method builds the 2nd-level site navigation. It grabs the Folder of the current DTML Document [index_html] and iterates through the DTML Document objects inside it, rendering the document titles (because of accents, we don't want to render the document id) sorted by the menu_sort_order property. The inside loop tests the current document id against the list of document ids in the folder and wraps square brackets around the title to highlight the current document. </dtml-comment> <DIV CLASS=navigation VALIGN="top"> <dtml-let this_id=id> <dtml-in "PARENTS[0].objectValues('DTML Document')" sort=menu_sort_order> <dtml-if "hasProperty('menu_sort_order')"> <dtml-if expr="_['sequence-item'].getId()==this_id"> <a href="&dtml-absolute_url;">[<dtml-var title>]</a> <dtml-else> </dtml-if> <a href="&dtml-absolute_url;"><dtml-var title></a> <dtml-else> </dtml-if> </dtml-in> </dtml-let> </DIV> NB: <dtml-if expr="_['sequence-item'].getId()==this_id"> ^^^^^^^ added as per Michel Pelletier's suggestion. where the excessive recursion comes from i have no idea! :( cheers, Garry On 1 Jun 2001, at 13:53, Tim Cook wrote: From: Tim Cook <twcook@iswt.com> Send reply to: tim@freepm.org Organization: Free Practice Management, Inc. To: gs@styrax.com Copies to: zope@zope.org Subject: Re: [Zope] Equality test: if sequence-item = document id [excessive recursion error] Date sent: Fri, 01 Jun 2001 13:53:05 -0500
Garry Steedman wrote:
btw: am i completely stupid to think that the dtml-let will assign the id of the dtml method which contains it ( e.g. this_id = nav_stuff.id )?
I'm not sure I understood 'what' you were attempting to accomplish so my example may be way off base.
I may have ass-u-me d what you meant? :-(
I'll try to take a look at it later when I have some time, if you do not get a fix before then.
-- Tim Cook, President - FreePM,Inc. http://www.FreePM.com Office: (731) 884-4126 ONLINE DEMO: http://www.freepm.org:8080/FreePM
_______________________________________________ Zope maillist - Zope@zope.org http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
------- End of forwarded message ------- +-------------------------------------------+ Garry Steedman mailto:gs@styrax.com Styrax Associates http://www.styrax.com/ "The Good Man has no shape." +-------------------------------------------+
Hi all, I'm a big fan of python AND zope, but I'm a little unclear about how the two really sit together. Is there any way to let python scripts to have access to all the bits and bobs I've got going with python, like MySQL (or Tk even) rather than have to deal with python-in-zope. I basically just want to .. import urllib ...And don't want to muck about with external methods. I want FULL python power within zope. Cheers tom
Hi Tom, Tom Smith wrote:
I'm a big fan of python AND zope, but I'm a little unclear about how the two really sit together.
Is there any way to let python scripts to have access to all the bits and bobs I've got going with python, like MySQL (or Tk even) rather than have to deal with python-in-zope.
This is a question of security. You can't let Zope users use all aspects of Zope.
I basically just want to ..
import urllib
...And don't want to muck about with external methods. I want FULL python power within zope.
To leverage the full power of Zope just use external methods. They allow to write fully functional python applications which you can access from within Zope. Regards Eric
Is there any way to let python scripts to have access to all the bits and bobs I've got going with python, like MySQL (or Tk even) rather than have to deal with python-in-zope.
This is a question of security. You can't let Zope users use all aspects of Zope.
What if I'm the only zope authorer? I fairly sure I can trust myself.
...And don't want to muck about with external methods. I want FULL python power within zope.
To leverage the full power of Zope just use external methods. They allow to write fully functional python applications which you can access from within Zope.
Hello?! I don't want to use external methods. tom
There's a way to import modules others than string, math, and random Open the Zope online help and have a look at "Scripts (Python)>Allowing Import of Modules" Hope it helped... --Gilles ----- Original Message ----- From: "tom smith" <tom@othermedia.com> To: "E. Seifert" <e.seifert@gmx.net> Cc: <zope@zope.org> Sent: Saturday, June 02, 2001 8:03 PM Subject: Re: [Zope] I want to script in Python and not Zope-Python
Is there any way to let python scripts to have access to all the bits
and
bobs I've got going with python, like MySQL (or Tk even) rather than have to deal with python-in-zope.
This is a question of security. You can't let Zope users use all aspects of Zope.
What if I'm the only zope authorer? I fairly sure I can trust myself.
...And don't want to muck about with external methods. I want FULL python power within zope.
To leverage the full power of Zope just use external methods. They allow to write fully functional python applications which you can access from within Zope.
Hello?! I don't want to use external methods.
tom
_______________________________________________ Zope maillist - Zope@zope.org http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
tom smith wrote:
Is there any way to let python scripts to have access to all the bits and bobs I've got going with python, like MySQL (or Tk even) rather than have to deal with python-in-zope.
This is a question of security. You can't let Zope users use all aspects of Zope.
What if I'm the only zope authorer? I fairly sure I can trust myself.
...And don't want to muck about with external methods. I want FULL python power within zope.
To leverage the full power of Zope just use external methods. They allow to write fully functional python applications which you can access from within Zope.
Hello?! I don't want to use external methods.
Well Tom. I would suggest one of three choices. 1) Use something else instead of Zope (you will be using a lesser tool though). 2) Rebuild your copy so it works the way you want (you have the source). 3) Get used to external methods. Personally, I picked # 3. <s> -- Tim Cook, President - FreePM,Inc. http://www.FreePM.com Office: (731) 884-4126 ONLINE DEMO: http://www.freepm.org:8080/FreePM
[tom smith]
Hello?! I don't want to use external methods.
Don't be so dogmatic about it! :-) External methods are excellent. The trick is to use a simple python file in the External directory that simply dispatches the actual code that you run, which can then be in any directory tree you want. You don't want to go putting all your code into the External folder, just the dispatching methods. Of course, if you need to talk to Zope objects all the time during execution, external methods aren't so good. Cheers, Tom P
To leverage the full power of Zope just use external methods. They allow to write fully functional python applications which you can access from within Zope.
Hello?! I don't want to use external methods.
So, External Methods isn't enough. Perhaps this is more in your taste then http://www.zope.org/Members/Caseman/Dynamic_Hotfix Or do you mean the Python Script without restrictions? If that's what you want, just copy the Python Script product, rename if TomsPythonScript and hack the permission settings on it. Good luck Peter
tom
_______________________________________________ Zope maillist - Zope@zope.org http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
participants (7)
-
E. Seifert -
Garry Steedman -
Gilles Lenfant -
Peter Bengtsson -
Thomas B. Passin -
Tim Cook -
tom smith