[Zope3-Users] Absolute url of an object

Paulus Zegwaard paulus at alive-ce.com
Fri Feb 10 21:03:08 EST 2006


Hi Alen,

Thanks a lot. I also begin to understand that in Zope 3 you typically 
create a package even for simple things, whereas in Zope 2 you often 
could get away with some scripts and ZPTs. It also seems to me that when 
the learning curve gets a little less steep writing a customized package 
is actually faster/easier them a Zope 2 Product.

I already made a page type which has a title and I decided to create a 
ordered container with a title property as well. Then together with your 
information, I guess I can make a dynamic menu relatively easy.

Paulus


Alen Stanisic wrote:
> On Fri, 2006-02-10 at 14:48 -0800, Paulus Zegwaard wrote: 
>   
>> But although I understand Zope 3 has something like that too, I'm 
>> unclear how to achieve that every object provides an absolute_url 
>>     
>
> Objects that are contained provide ILocation interface 
>
> __name__ - object name
> __parent__ - container name 
>
> it is container's responsibility to set these and it all happens behind
> the scenes and contained objects themselves shouldn't have to worry
> about it too much. 
>
> For example if you had something like this
>
> class IPerson(Interface):
> 	surname = TextLine(title=_(u"Surname"))
> 	firstName = TextLine(title=_(u"First Name"))
>
> when implementing this interface you would just say it is persistent and
> contained:
>
> class Person(Persistent):
> 	implements(IPerson)
>
> 	__name__ = None
> 	__parent__ = None
> 	surname = u''
> 	firstName = u''
>
> OR
>
> from zope.app.container.contained import Contained
> class Person(Persistent, Contained):
> 	implements(IPerson)
>
> 	surname = u''
> 	firstName = u''
> 	
> (This way Contained implements the location stuff - the name and
> parent.)
>
> And that should be it. To get absolute url I would do something like 
>
> from zope.app import zapi
> zapi.absoluteURL(obj, request)
>
> there is also 
>
> zapi.getPath(obj)
>
> which will return path of the object
>
> For a better explanation of the location concept look up 'location' in
> the index of Philipp's book once it arrives.
>
>   
>> A related questions is: is there an obvious way to get the site url (or 
>> object) other then just knowing the name?
>>
>>     
>
> Not sure about this..
>
>
> Alen
>
>
>
>
>   


More information about the Zope3-users mailing list