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
