2008/12/8 Manuel Gualda Caballero wrote:
> Israel Saeta Pérez escribió:
>> 2008/12/7 Manuel Gualda Caballero wrote:
>
> Con vuestra ayuda, es posible que algún día este producto pueda llegar a
> estar en condiciones de ser liberado. Por si esto llegara a suceder, he
> modificado los nombres del producto, carpetas, archivos y elementos
> clave del código fuente para que se adecuen a las convenciones que me
> parece que tienen los productos de Plone. Y para evitar confusiones con
> el DirectoryView y DirectoryTool de CMFCore y otros similares, le he
> llamado EntitiesDirectory.
>
> Este nombre facilitaría la creación de ProductsDirectory y similares con
> pequeñas modificaciones e, incluso, un producto Directories que permita
> agregar distintos tipos de fichas y directorios -de entidades, de
> personas, de productos, mixtos, personalizados,...-. Pero esto todavía
> no está ni en la fase Planning (dejémoslo en "Imaginación al Poder",
> aunque la verdad es que resultaría muy útil...).

Ahora que mencionas lo de un directorio de personas me he acordado del
siguiente producto:
 http://plone.org/products/faculty-staff-directory/


>> Para que aparezca hipervinculado, asumiendo que el campo se llama "email":
>>
>>     <a href="#" tal:attributes="href string:mailto:${context/getEmail}";>
>
> Funciona perfectamente.
>
> \ ;-)
>
> Aunque todavía no he encontrado en qué parte de la documentación puede
> uno aprender cosas como ésta. Yo me volví loco buscando esto y no lo
> encontré por ninguna parte (de hecho, si busco "href
> string:mailto:${context/getEmail}";, no obtengo ningún resultado, ni en
> la documentación o foros de Plone, ni en Google).
>
> Imagino que no estaré buscando adecuadamente.

Claro, porque lo que tienes que poner depende del nombre del campo.
Por ejemplo, si el campo se llamase "number_of_employees",

    <a href="#" tal:attributes="href
string:mailto:${context/getNumber_of_employees}";>

El uso de "string" en TALES viene descrito en

    http://plone.org/documentation/tutorial/zpt/advanced-usage


>> Si quieres protección antispam, la manera más limpia y sencilla que se
>> me ocurre es crear un método en la clase del tipo de contenido:
>>
>> class TuTipoDecontenido(ClaseMadre):
>>     ....
>>     def getObfuscatedEmail(self):
>>         """Get a modified version of email so spambots can't read it.
>>         """
>>         email = self.getEmail()
>>         obfuscated_email = email.replace('@', ' at ')
>>         return obfuscated_email
>>
>> Y luego en la plantilla:
>>
>>     <a href="#" tal:attributes="href
>> string:mailto:${context/getObfuscatedEmail}";
>>                      tal:content="context/getObfuscatedEmail">email</a>
>>
>> No lo he probado, pero espero que funcione.
>
> Si se indica una dirección de correo electrónico, funciona
> estupendamente (yo le he puesto lo siguiente: "email.replace('@', '
> [EMAIL PROTECTED] ')").
>
> Pero si se deja en blanco el campo del correo electrónico, aparece el
> icono de correo enlazado a "mailto:";.
>
> Esto lo he solucionado añadiendo la siguiente condición delante de los
> atributos (¿se dice así?):
>
> tal:condition="context/email|nothing"
>
> Espero no haber hecho una barbaridad, aunque la verdad es que funciona...

Te sobra el "nothing", porque "context/email" ya se evalúa como falso
si el campo "email" está vacío. De todas formas, en teoría deberías
usar "context/getEmail", por no saltarte el mecanismo de accessors de
Archetypes.


>>> Pero no sé qué tengo que poner en directorio_view.py para que muestre la
>>> correspondiente imagen (resulta curioso: he logrado encontrar
>>> explicaciones de cómo hacer cosas complejas con las imágenes, pero no he
>>> sabido localizar la que explica lo más básico: sencillamente mostrar la
>>> imagen con una medida determinada y ya está).
>>
>> Si mal no recuerdo, los campos tipo imagen tienen un método denominado
>> "tag" para conseguir uno de los tamaños almacenados:
>>
>>     <img tal:replace="python: context.image.tag(size='thumb') />
>
> Lo he probado y da un HTMLParseError (sí que es complicado mostrar las
> imágenes...).

Me olvidé cerrar las comillas dobles. :-P

-- israel

_______________________________________________
Plone-ConoSur mailing list
[email protected]
http://lists.plone.org/mailman/listinfo/plone-conosur

Responder a