[Plone-IT] Re: help con template di edit

Luca lucafbb a gmail.com
Lun 2 Feb 2009 20:07:17 UTC


La chiave è tutta in queste due righe che hai incollato:

 edit_template python:'%s_edit' % portal_type;
 edit_macros python:path('here/%s/macros | nothing' % edit_template);

Se ti fai un template che si chiama "nomedeltuocontenttype_edit.pt"
con dentro tutte le macro che trovi in edit_macros (customizzando
quello che ti pare) hai risolto la cosa nel modo più elegante
possibile (almeno per archetype).

2009/2/2 Yuri <yurj a alfa.it>:
> Yuri ha scritto:
>>
>> Salve,
>>
>> voglio cambiare il template di edit di un mio contenuto, ma senza
>> ricopiare il base edit & c, cioè avere la modifica minimale.
>>
>> Ho provato per un pò ma non ne vengo a capo, potete postare un template di
>> edit minimo per plone3? Vi ringrazio :)
>>
> Per chiarire, volevo evitare un template del tipo:
>
> =================
>
> <tal:block metal:define-macro="master"
>          define="view context/@@at_base_edit_view;
>                  dummy python:view.isTemporaryObject() and
> request.set('disable_border', True);
>                  lifecycle context/@@at_lifecycle_view;
>                  lock_info context/@@plone_lock_info;
>                  dummy lifecycle/begin_edit;
>                  errors options/state/getErrors | nothing;
>                  Iterator
> python:modules['Products.Archetypes'].IndexIterator;
>                  schematas here/Schemata;
>                  allow_tabbing python: not view.isMultiPageSchema();
>                  fieldsets python:[key for key in schematas.keys() if
> (schematas[key].editableFields(here, visible_only=True))];
>                  default_fieldset python:(not fieldsets or 'default' in
> fieldsets) and 'default' or fieldsets[0];
>                  fieldset
> request/fieldset|options/fieldset|default_fieldset;
>                  fields python:[f for key in fieldsets for f in
> schematas[key].editableFields(here)];
>                  dummy python:here.at_isEditable(fields);
>                  portal_type
> python:here.getPortalTypeName().lower().replace(' ', '_');
>                  type_name here/getPortalTypeName|here/archetype_name;
>                  base_macros here/edit_macros/macros;
>                  edit_template python:'%s_edit' % portal_type;
>                  edit_macros python:path('here/%s/macros | nothing' %
> edit_template);
>                  header_macro edit_macros/header | header_macro |
> base_macros/header;
>                  typedescription_macro edit_macros/typedescription |
> typedescription_macro | base_macros/typedescription;
>                  body_macro edit_macros/body | body_macro |
> base_macros/body;
>                  footer_macro edit_macros/footer | footer_macro |
> base_macros/footer;
>                  isLocked isLocked | lock_info/is_locked_for_current_user;
>                  css python:here.getUniqueWidgetAttr(fields, 'helper_css');
>                  js python:here.getUniqueWidgetAttr(fields, 'helper_js');">
>
> <html xmlns="http://www.w3.org/1999/xhtml"
>     xml:lang="en"
>     lang="en"
>     xmlns:tal="http://xml.zope.org/namespaces/tal"
>     xmlns:metal="http://xml.zope.org/namespaces/metal"
>     xmlns:i18n="http://xml.zope.org/namespaces/i18n"
>     metal:use-macro="here/main_template/macros/master"
>     i18n:domain="plone">
>
>  <metal:head fill-slot="top_slot">
>   <tal:block define="macro edit_macros/topslot | nothing"
>                   condition="macro">
>     <metal:block use-macro="macro" />
>   </tal:block>
>  </metal:head>
>
>  <metal:javascript_head fill-slot="javascript_head_slot">
>   <tal:block define="macro here/archetypes_custom_js/macros/javascript_head
> | nothing"
>              condition="macro">
>     <metal:block use-macro="macro" />
>   </tal:block>
>   <tal:js condition="js"
>           repeat="item js">
>     <script type="text/javascript"
>             charset="iso-8859-1"
>             tal:condition="python:exists('portal/%s' % item)"
>             tal:attributes="src string:$portal_url/$item">
>     </script>
>   </tal:js>
>   <tal:block define="macro edit_macros/javascript_head | nothing"
>                   condition="macro">
>     <metal:block use-macro="macro" />
>   </tal:block>
>  </metal:javascript_head>
>
>  <metal:css fill-slot="css_slot">
>   <tal:css condition="css"
>            repeat="item css">
>     <style type="text/css"
>            media="all"
>            tal:condition="python:exists('portal/%s' % item)"
>            tal:content="structure string:<!-- @import
> url($portal_url/$item); -->">
>     </style>
>   </tal:css>
>   <tal:block define="macro edit_macros/css | nothing"
>                   condition="macro">
>     <metal:block use-macro="macro" />
>   </tal:block>
>  </metal:css>
>   <body>
>
>   <metal:fill fill-slot="main">
>     <metal:main define-macro="main">
>       <metal:use_header use-macro="header_macro" />
>       <metal:use_typedescription use-macro="typedescription_macro" />
>       <metal:use_body use-macro="body_macro" >
>        <metal:prova fill-slot="widgets">
>           <tal:tabbed tal:condition="allow_tabbing | nothing">
>             <fieldset tal:define="sole_fieldset python:len(fieldsets) == 1"
>                       tal:repeat="fieldset fieldsets"
>                       tal:attributes="id string:fieldset-${fieldset}"
>                       tal:omit-tag="sole_fieldset">
>               <legend id=""
>                       tal:content="python:
> view.getTranslatedSchemaLabel(fieldset)"
>                       tal:attributes="id string:fieldsetlegend-${fieldset}"
>                       tal:condition="not:sole_fieldset" />
>               <tal:fields repeat="field
> python:schematas[fieldset].editableFields(here, visible_only=True)">
> <tal:block tal:condition="python:field.getName() <> 'referee'">
>                 <metal:fieldMacro
> use-macro="python:here.widget(field.getName(), mode='edit')" />
> </tal:block>
>               </tal:fields>
>             </fieldset>
>           </tal:tabbed>
>           <tal:nottabbed tal:condition="not: allow_tabbing | nothing">
>               <tal:fields repeat="field
> python:schematas[fieldset].editableFields(here, visible_only=True)">
>                 <metal:fieldMacro
> use-macro="python:here.widget(field.getName(), mode='edit')" />
>               </tal:fields>
>           </tal:nottabbed>
>
>        </metal:prova>
>       </metal:use_body>
>       <metal:use_footer use-macro="footer_macro" />
>     </metal:main>
>   </metal:fill>
>
>  </body>
>
> </html>
>
> </tal:block>
>
> ==================
>
>
>
>
> _______________________________________________
> Plone-IT mailing list
> Plone-IT a lists.plone.org
> http://lists.plone.org/mailman/listinfo/plone-it
> http://www.nabble.com/Plone---Italy-f21728.html
>



-- 
-- luca




Maggiori informazioni sulla lista Plone-IT