[Zope-es] acceder al cuerpo de un hijo desde carpeta contenedora
Mikel Larreategi
mlarreategi en codesyntax.com
Mie Dic 13 09:07:53 CET 2006
Xavi(e)k dio:
> Buenas!
>
> me sigo peleando para intentar conseguir una nueva vista que mezcle la
> folder_listing y la select_default_page.
>
> para listar el contenido de una página se usa este codigo desde
> document_view:
>
> <p tal:condition="python: not text and is_editable"
> i18n:translate="no_body_text"
> class="discreet">
> This item does not have any body text, click the edit tab to
> change it.
> </p>
> <div class="stx"
> tal:condition="text"
> tal:attributes="class python:test(here.Format() in
> ('text/structured',
> 'text/x-rst', ), 'stx',
> 'plain')">
> <div tal:replace="structure text" />
> </div>
>
> donde el valor de text se obtiene con la instruccion:
>
> tal:define="text python: here.CookedBody(stx_level=2)"
> desde mi carpeta yo puedo conocer todos los datos de los objetos que
> contengo (titulo, descripcion,creador, tipo,..) pero cómo podria obtener el
> contenido del cuerpo de un documento (página)? con q nombre se almacenan
> estos datos?
> para obtener la descripcion de la página por ejemplo simplemente se hace un
> define: item_description item/Description. el problema es que el cuerpo del
> texto no es un objeto de formulario como la descripcion (que es un
> textarea)
> sino que se invoca una macro, y ahí es donde me pierdo...
>
> podría invocar la instrucción que antes mencionaba para obtener 'text'
> desde
> la carpeta en la que estoy indicando que quiero aplicarla sobre un elemento
> hijo?? en lugar de decir here.CookedBody(stx_level=2), decir alguna cosa
> que
> en lugar de a 'here' se refiriera a (here/hijo).CookedBody(stx_level=2)????
Supongo que lo que te pasará es que estás recorriendo la lista de hijos
que te devuelve una consulta al catálogo (o al método
getFolderContents), y por lo tanto no tienes lo de item/CookedBody o
item/getText en el metadata del catálogo.
Tendrás que obtener el objeto a partir del item que te devuelve el
catálogo y llamar después al método CookedBody (ó getText):
<tal:block define="item_object python:item.getObject()">
<span tal:replace="structure item_object/getText" />
</tal:block>
Saludos,
Mikel
--
Mikel Larreategi
mlarreategi en codesyntax.com
CodeSyntax
Azitaingo Industrialdea 3 K
E-20600 Eibar
Tel: (+34) 943 82 17 80
Más información sobre la lista de distribución Zope-es