[Zope3-Users] custom widgets (IDisplayWidget)

Hassan Alirezaei hassan at isi.imi.i.u-tokyo.ac.jp
Sat Nov 25 03:46:40 EST 2006


Hello Frank, Thanks for the help.

right. it is basically based on your mpgsite.i18n. I think what you 
do(especially the "I18NWidget") should be a part of standard zope. 
Thanks for the great package, I learned a lot from it.  I downloaded the 
svn version a couple of days ago but because of the "fb" package (as you 
mentioned) which wasn't there I couldnt run it properly so I just  
borrowed some parts (basically just the widget)  and  somehow  made it 
appear (just for the  EDIT part not for the DISPLAY).

I understand that you are using the namespace approach. well, It is 
possible to get the Dict form of the widget (for example 
{'en':'something','jp':'something else'} ) . so when one says
<span tal:content="context/something"></span>

in the template, what appears is " {'en':'something','jp':'something 
else'} "

I thought maybe by having a custom display format for the custom widget 
then we can just check for the preferred language and return the 
appropriate language version: namely "something" OR "something else"  
This way we don't need to change the page template at all.

the problem is I cannot register a custom display format for the I18N 
widget.

May be I am missing something, but even in the standard 
zope.app.form.browser it says

<view
   type="zope.publisher.interfaces.browser.IBrowserRequest"
   for="zope.schema.interfaces.IURI"
   provides="zope.app.form.interfaces.IDisplayWidget"
   factory=".textwidgets.URIDisplayWidget"
   permission="zope.Public"
   />

and in the .textwidgets.URIDisplayWidget it is apparently telling it to 
place the URI inside <a></a> tags but this is not the case when you 
display the URI widget using:

<span tal:content="context/someURI"></span>

so the view is not processed at all....
Now, If the zope:view tag only registers another view for the widget 
then MAYBE the problem is how to activate that view i.e. set it as 
default view.

I appreciate any help Frank.

+ if I can make the standard URI widget to appear in <a></a> tags then 
the same solution is valid for my problem I think. So maybe some 
zope3-developer guys can help as well. Thank you.

Hass


FB wrote:
> Hi,
>
> On Sat, Nov 25, 2006 at 04:17:24AM +0900, Hassan Alirezaei wrote:
>  
>> Hello guys,
>>
>> I have a custom widget and I cannot manage to have a custom way of 
>> displaying it after editing.
>> as far as I know, I should be registering the view for  
>> form.interfaces.IDisplayWidget(for display) and 
>> form.interfaces.IInputWidget(for editing).
>> I use the following zcml lines:
>>
>>   <zope:view type="zope.publisher.interfaces.browser.IBrowserRequest"
>>       provides="zope.app.form.interfaces.IInputWidget"
>>       for="..interfaces.II18N"
>>       factory=".widgets.SimpleI18NInputWidget"
>>       permission="zope.Public" />
>>
>>
>>   <zope:view type="zope.publisher.interfaces.browser.IBrowserRequest"
>>       provides="zope.app.form.interfaces.IDisplayWidget"
>>       for="..interfaces.II18N"
>>       factory=".widgets.I18NSimpleDisplayWidget"
>>       permission="zope.Public"  />
>>     
>
> This looks familiar :-) .
>
> I don't know, if you used my I18NSimpleDisplayWidget. If you do: I can't
> remember ever using this one - maybe it's not working as expected. In 
> most
> cases, I needed those multilingual fields in page template which I used
> a tales-namespace-adapter for.
>
> I admit that mpgsite.i18n is a mess. I'm currently moving all the 
> i18n-stuff
> into a different package (fb) which is much smaller than mpgsite. 
> fb.i18n has
> some additional advantages:
>    * a special class is used as i18n-container (not a dict anymore). 
> This class
>      knows how to extract language versions, does some other fancy 
> stuff and
>      behaves like a dict otherwise.
>       * One language is marked as the "reference language" now
>       * a dedicated class makes it easy to i.e. extract all i18n-objects
>         from the *whole zodb* and make some poor guy translate them.
>    * Documentation is in english
>    * dependencies are clear:
>       * fb.fields: for displaying fancy help in edit forms
>       * fb.skin's header-viewletprovider which is easy providable by 
> your own skin, too
>       * fb.searchengines: for automatically presenting all language 
> versions
>         to user agents identified as search engines (I asked a 
> google-guy: It's
>         ok to do so).
>
> The fb-package is available via svn here:
>
>  https://fbo.no-ip.org/svn/fbo/fb
>
> The package is not complete, yet. But it will be at the end of the 
> next week.
>
> Regards,
>
> Frank
> _______________________________________________
> Zope3-users mailing list
> Zope3-users at zope.org
> http://mail.zope.org/mailman/listinfo/zope3-users
>
>
>   



More information about the Zope3-users mailing list