[Zope] Zope symbolic links

Mario Valente mvalente@ruido-visual.pt
Wed, 13 Feb 2002 17:55:09 +0000


>On Friday 08 February 2002 04:38 pm, you wrote:
>> Is there a way to create "symbolic links" in Zope either by editing ZMI
>> code or programmatically?  Let's say I want to create a "pointer" to a
>> folder I have someplace.  Is there a straightforward way to accomplish
>> this?  Here is a very descriptive graphical example (hahaha).
>>
>> /[root folder]
>> /myfolder1
>>   +mygoodstuff
>> /myfolder2
>>   ->link_to_mygoodstuff
>>


At 16:58 08-02-2002 -0500, Eron Lloyd wrote:
>The most popular pattern for this is to do a
><dtml-call expr="RESPONSE.redirect('/myfolder1/mygoodstuff')"> in a DTML 
>method or Python script acting as a symlink. To my knowledge there is no way 
>else out of the box to do this (though it would be interesting to implement).
>



   Quite easily and simple, actually. Here's my take on it (from a previous
 message on the list.

   C U!

   -- Mario Valente



At 19:04 07-08-2001 +0100, Mario Valente wrote:
>
>
>  Hi:
>
>  OK everyone, I've managed to get object links to work.
>
>  As discussed previously by others (re: object references) and
> asked by myself: I had the need to be able to refer to objects
> from different points of the folder hierarchy without duplicating
> those objects.
>
>  Yes I know that can be done *programatically*. That is not the
> idea.
>
>  The idea is to have a folder with differente widgets/components
> and to be able to copy and paste references to those widgets
> throughout the folder hierarchy. Of course that the usual copy/paste
> is not OK, since that *duplicates* the objects and as such further
> changes to the original object wont be reflected in the copies.
>
>  With something like this + Ordered Folders you are able to have
> an index_html that just renders the objects within a folder and you
> can then drop objects/widgets into the folder to produce a page.
>
>
>  What I did:
>
>  - edited CopySupport.py
>  - copied the manage_pasteObjects method to a manage_pasteMonikers
>    method
>  - commented the #ob=ob._getCopy(self)  line  (the duplicate object part)
>  - added a "Paste Ref" button to the lib/python/OFS/dtml/main.dtml file that
>    calls the pasteMonikers method
>
>  """
>  <input class="form-element" type="submit"
name="manage_pasteMonikers:method"
>   value="Paste Ref." />
>  """
>
> 
>   It works. It does what I want/need. When you change a reference, the 
> original also changes. When you change the original, the references change.
>  You can delete either the reference or the original and all is OK.
>
>
>   Issues/TODO
>
>   - find a way to distinguish references from the original (tried to change
>    the meta_type at paste time but no luck). At least the meta_type/icon
>should
>    change to provide a visual cue.
>   - provide tool(s) to find impact of changing a reference. Provide a link
>from a
>    reference object to the original. Provide a link from an object to its
>several
>    references.
>
>  Comments and experiences are welcome.