Thanks for your thorough explanation with examples, good stuff!
I had the feeling that views needed to be used but it looked so inefficient.
Is there a thought/philosophy behind the fact that we can't access
adapters directly from ZPT?
> When I started getting into adapters recently I
> discovered that you can't (easily) access adapters
> directly from ZPT. You will need to create a python
> view class as an intermediate step.
> Where you use a "context" statement to access
> properties of an object in ZPT, e.g.:
> <div class="field" tal:content="context/description"
> you use a "view" statement to get at the methods of
> the Python View Class, e.g.:
> <div class="field" tal:content="view/rating" />
> You use the ZCML to wire up the ZPT to the Python,
> menu="zmi_views" title="View"/>
> Where python file is the file the viewclass is in,
> usually in the same browser folder, and ViewClass is
> the name of a class defined within that file.
> The ViewClass itself can do whatever logic you want to
> prepare data for the ZPT, but if it's just grabbing
> adapted methods and re-presenting them, it'll be
> something like this:
> from wherever import IAdapter
> class ViewClass:
> def __init__ (self, context, request):
> self.context = context
> self.request = request
> self.adaptation = IAdapter(context)
> def method(self):
> """Get the adapted doodle from the adapter"""
> adapted = self.adaptation.adaptermeth()
> return adapted
> Where "adaptermeth" is the method defined in your
> adapter, and "IAdapter" is the name of your adapter.
> You probably won't want to reference it as
> self.adaptation - call if something more meaningful -
> self.myimagefunction, or whatever.
> You will need to def a method for each adapted method
> you want to grab from adapters and pass to the ZPT.
> If you have more than one adapter you want to access
> from a given ZPT you need to make sure you import them
> all, and use a different "self.adapterdesc =" in the
> __init__, and you can then call each from the methods
> of the view class.
> Hope that helps,
> --- Michael van Slingerland <[EMAIL PROTECTED]> wrote:
>> Hi all,
>> I've made an adapter on the image content type and
>> built a new view on the
>> IImage interface. But what I can't find anywhere is
>> how to access methods
>> defined in the adapter from ZPT?
>> Anyone knows howto do this?
>> Zope3-users mailing list
> To help you stay safe and secure online, we've developed the all new
> Yahoo! Security Centre. http://uk.security.yahoo.com
> Zope3-users mailing list
Zope3-users mailing list