Thanks! .... and a util to look at a property of a mirror branch from the original branch.
Really thanks a lot for your hints & suggestions, although this bonehead failed to follow the suggestions. Strangely, michel's, John's and Anthony's suggestion did not work on my Zope site. Now I wonder whether this is due to the difference between Zope 1.10.3 and Zope2.0x. Zope 1.10.3 gave me lots of tracebacks excepted from careful_getitem in DT_Util.py ;--( But, unable to distinguish the bug in my head and the feature in Zope, I fell upon the external method, instead of going th Collector. For a newbie or a more-boner head than mine, its code is at the bottom (hence nobody might use them, hughhh). Thanks again for your concerns, LEE Kwan Soo. ***** An external method to inspect TR property of the corresponding DTML Document or Folder in the mirror branch. Usage: <!--#var "isTRed(REQUEST)"--> If you call this method in the DTML Document /korean/aaa/bbb/ccc/ddd, it inspect the TR property of /english/aaa/bbb/ccc/ddd and returns its value. If there is no TR property then it is set to '0'. When called in the DTML Method /korean/aaa/bbb/ccc/mmm, It returns and, if needed, set the TR value of the Folder /english/aaa/bbb/ccc. / (root) is the Zope root folder. ***** from string import split def isTRed(self, REQUEST): ulist = split(REQUEST.URL0, '/')[4:] # if your Zope root folder is /Zope, replace 4 with 5. if ulist[-1] in self.objectIds(['DTML Document']): pass #see whether called in DDoc or DMet. else: ulist = ulist[:-1] obj = REQUEST.PARENTS[-1].english #obj is the *mirror* branch. use your folder id # instead of 'english'. # Is there a guru's way to refer to the root object in an external method? for i in range(len(ulist)): #walked down in the *mirror* branch. xobj = getattr(obj, ulist[i]) obj = xobj if hasattr(obj, 'TR'): pass #chech if the obj(DDoc or Folder) has TR. use your property else: # ID here. obj.manage_addProperty('TR', '0', 'string') #if not, set TR property. use your property return obj.TR #ID & default value, type here. ***** If any body use this external method, please improve this to prove mine is the bonest head in Zopeland.
participants (1)
-
이관수