Plone in spanish (revision feb-2009)

33
Proceso para instalación de Plone: Acceso a la siguiente dirección web: HTTP://PLONE.ORG Dar clic en la pestana de descargas Para Descarga de programa de la página plone debes de Dar un clic en la opción de de descarga plone

description

Instalacion de plone y personalizacion, hecho por alumnos del ITT materia gobierno electronico.

Transcript of Plone in spanish (revision feb-2009)

Page 1: Plone in spanish (revision feb-2009)

Proceso para instalación de Plone:• Acceso a la siguiente dirección web: HTTP://PLONE.ORG

• Dar clic en la pestana de descargas

• Para Descarga de programa de la página plone debes de Dar un clic en laopción de de descarga plone

Page 2: Plone in spanish (revision feb-2009)

• Da clic en la opción de descargar plone

• Selecciona para que sistema operativo será instalado.

• Da clic en la opción de guardar para evitar descarga repetitiva en cada uso.

• Indica en que parte o unidad de la computadora será alojado.

Page 3: Plone in spanish (revision feb-2009)

• Regresaras a la página anterior volverás a dar clic sobre el sistemaoperativo en el cual se instalara y ahora clic en ejecutar.

• Será instalado en la unidad al dar boble click sobre el icono de plone.

• Aparecerá la siguiente pestana:

Page 4: Plone in spanish (revision feb-2009)

Y seleccione el icono de siguiente.• Seleccione la opción de aceptar términos y clic en siguiente.

Page 5: Plone in spanish (revision feb-2009)

• Se notifica el espacio de almacenamiento y clic ensiguiente.

• Ingresar el nombre de usuario y contraseña para administrar elprograma.

• Aparecerá la pantalla de instalación da clic en el icono de instalación

Page 6: Plone in spanish (revision feb-2009)

• Aparecerá la ultima pantalla de instalación da clic en la opción de finalizar

Unidad 2 Proyecto Colaborativo de CMS Usando Plone

Page 7: Plone in spanish (revision feb-2009)

Instalación1-Correr el instalador como cualquier programa2-asignar un contraseña por ejemplo 12343-para tener la situación mas fácil, abran la terminal y el text edit (es similar a notepad) eneste ultimo configuraran el archivo buildout.cfg4-una vez terminada la instalación de plone y las carpetas creadas, hay a 1 archivo y 1carpeta a la que le deben de dar permisos de escritura la carpeta mencionada la encuentranen la siguiente ruta:

dan click derecho a esa carpeta, se van a "obtener información" y en la parte de abajoponen en "permisos¨ y después aplican la misma para el buildout.cfg para que puedanmodificar la parte de la dirección ip que el CMS tendrá y de la cual podrán llamarlo.5-En la carpeta de zeocluster ya que estén en los permisos y propietario denle doble clickdespués en detalles en propietario le dan click en el candado para que lo abran y cambian"sistema¨ por el numero de mac en la que esten en mi caso es "Apple08”se aseguran que este en leer y escribir y realizan esto mismo con el "buildout.cfg quitar elcandadito y aplicar lo de lectura y escritura.Después de esto abren con el text edit el buildout.cfg en el que van a cambiar el ip por elde su computadora ,esto lo sacan desde terminal con el comando "ifconfig" sacan el numeroque diga en "inet" en mi caso es 10.0.2.60, esto se lo darán al buildout.cfgEn la parte de Ports cambian el zeo-adress que por default viene en 127.0.1:8080 por el ipque les de la terminal en INET en el paso anterior cierran el archivo y listo.Ahora solo falta iniciar los servicios de el plone para esto requerimos lo siguiente:sudo /Applications/Plone/zeocluster/bin/plonectl startlo anterior lo aplicamos en la terminal ,damos unos 1 minuto o 2 a que termine, una vezhecho esto el sistema plone esta listo para trabajarvayan al navegador y pongan su direccion ip 10.0.2.60:8080(reemplazan su dirección ip) para la administración del plone ponen 10.0.2.60:8080/managecon el username admin, password; su clavelisto.espero que esta guía les sirva , les debo las pantallasGraciasDe la torre Ruiz Leonardo Daniel05210007

____________________________________________________________________________Tambien ocupa crear una base de datos.............Luego les digo como hacerloGarcia Luna Jorge Manuel05210015

13

Aparecerá un formulario para ingresar el nombre del objeto: Titulo,Descripción y finalmente la utilidad de búsqueda de archivo, el cual estaubicado en algún directorio de su máquina.

▪ Titulo - El título de los elementos de contenido, incluyendo carpetas,imágenes, páginas, etc, puede ser cualquiera, sin embargorecomendamos que sean cortos. El título pasa a formar parte de la

Page 8: Plone in spanish (revision feb-2009)

dirección web de cada objeto que se crea en Plone, también conocidacomo URL (lo que escribe en un navegador para ir a una ubicaciónespecífica en un sitio web) .Las direcciones web tienen restriccionesde caracteres, por ejemplo, espacios en blanco no están permitidos niletras en mayúscula. Plone se encarga de mantenerlo normalizado.

▪ Descripción – es una buena idea poner la descripción de un objeto–ya que la misma aparecerá en los resultados de las búsquedas en elportal- si lo desea puede dejarlo en blanco.

▪ Archivo – Puede ser cualquier formato de archivo un .zip, .xls, .doc,.pdf. Si se trata de un archivo de texto es sumamente recomendableque el mismo se convierta –previo a la carga - a formato PDF. Lasventajas son muchas: menor tamaño, libre de virus y lo sustantivoes que el utilitario para leerlo NO requiere de software con licenciasrestrictivas ni dede 1.5 Mb es aceptable, considere dividir el documentoen distintos apartados de modo de agilizar la descarga de los mismos.Otro punto muy importante para considerar, es que si estamostrabajando con documento con imágenes estas aumentanenormemente el tamaño de los archivo, si desea mejorar éstosaspectos lea la página “la maldita imagen en mi texto”. La figura acontinuación indica como fueron completados los datosversiones específicas. También tenga en cuenta el tamaño, un archivo

Una vez cargado se visualizará lo siguiente

ésta es la vista del objeto recientemente cargado

16

si en la vista anterior seleccionamos archivos (área 2),

Observaremos todos lo archivos que subamos al portal (para éste casosolo tenemos uno).

17

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Alumna: Veronica Carrera GutierrezNo. Control: 05210004

Creación de usuarios en Plone

Page 9: Plone in spanish (revision feb-2009)

Por defecto Plone permite añadir usuarios a personas que aun no se han registrado enel sistema de Plone esto en algunos caso no es muy bueno.

Primero tiene que acceder al sitio Plone como administrador o un usuario con estosprivilegios. Luego debe dirigirse al panel de control de Plone y seleccionarAdministración de Usuarios y Grupos. Este le mostrara todos los usuarios aparte deladministrador que existe.

En este caso no hay más usuarios que el administrador de Plone.

Luego seleccionamos la opción de añadir nuevo usuario. Esto nos lleva a un formulariodonde debemos digitar los datos del usuario. Los campos que aparecen con un puntorojo son los datos que debemos ingresar obligatoriamente los demás son opcionales.

Nombre del usuario: es el nombre con el cual usted se identificara.E-mail: es la cuanta de correo electrónico donde lo podrán contactar.Contraseña: es el pass Word que tendrá para identificarse e ingresar al sistema.

Este se tendrá que digitar de nuevo en campo Confirmar contraseña. En algunoscasos no se le permitirá dar inicialmente la clave al usuario sino que se le generaraautomáticamente y se le enviara por correo electrónico a la cuenta de correo queespecifico en el campo anterior. Eso depende de la configuración del Portal.

Page 10: Plone in spanish (revision feb-2009)

Al final damos clic en el botón registrar. Si el registro fue exitoso, podremos ver al usuarioen la sección Visión Global de Usuarios.

MODIFICACION DE USUARIOS:Las preferencias de los usuarios pueden ser modificadas bien por el mismo usuarioentrando a la sección mis preferencias o por el administrador seleccionado en usuarioen la sección de Vista global de Grupos y Usuarios. En el caso del administrador.

Luego se selecciona el usuario a modificar. Este le muestra un formulario muy parecidoal que le es mostrado al usuario. El campo nombre se usuario no puede ser modificadopor lo que no aparece en este formulario, pero si aparecen otros datos que no aparecíanel formulario de adición de usuarios como lo son:

Page 11: Plone in spanish (revision feb-2009)

Editor de Contenido: es el editor con el cual el usuario editara sus documentos, elnúmero de editores que se pueden seleccionar depende de los productos instalados enPlone.

Por ejemplo hay un producto que se llama External Editor que permite edición externade páginas pero hay que instalarlo como un producto más de Plone.Listado en búsquedas: Determina si su nombre de usuario se incluye en las búsquedasde miembros realizadas en este sitio. (Extraído del mismo formulario).

Permitir la Edición de Nombres Cortos: Este es el que permite que usted le asignea su ítem un nombre corto sino esta marcado plone genera uno y se lo asignaautomáticamente.Foto: permite al usuario añadir una imagen que será vista por los demás usuarioscuando quieran ver la descripción del usuario.Luego de insertar los datos que se modificaron debemos dar clic en el botón guardar ylos nuevos atributos del usuario quedaran salvados.

Page 12: Plone in spanish (revision feb-2009)

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Resffa Elizabeth Fierro Garciano. 05210013

CREACION DE NUEVOS GRUPOSPor defecto cuando ingresamos a la sección Visión Global de Grupos apareceseleccionada la solapa de usuarios, para Visión Global de Grupos para añadirun grupo debemos seguir los siguientes pasos:

Seleccionar la solapa de grupos en la sección Visión Global de Grupos, estanos mostrará un listado de los grupos existentes, en este momento en elsistema Plone. En este caso no hay ningún grupo en el sistema. Damos clicen el botón Añadir grupo.

Page 13: Plone in spanish (revision feb-2009)

Este nos trae un formulario el cual debemos diligenciar para crear el grupo.como se dijo antes, -los campos con un punto rojo son obligacióndiligenciarlos- por lo que solo explicare los campos requeridos:Nombre: Es el nombre con el cual se identificara el grupo

Page 14: Plone in spanish (revision feb-2009)

Si el grupo fue añadido satisfactoriamente, en la sección de Visión Generalde Grupos ya podremos ver el grupo añadido. En ese momento vemos en laderecha del nombre del grupo los diferentes roles que se le pueden dar algrupo, se puede selecciona mas de uno a conveniencia del grupo y los rolesserán dados alos usuarios que conformen ese grupo. Por lo tanto creo que ya quedaexplicado el proceso de como adicionar roles a un grupo.Luego damos clic en el botón aplicar cambios y listo ya tenemos el grupocreado.

Page 15: Plone in spanish (revision feb-2009)

MODIFICAR GRUPOS

La modificación del grupo se hace igual que la del usuario.

Adición de Carpetas en PLONE

Añadiendo carpetas Plone a un sitio web es la forma básica de control de la organización delos contenidos.Usted tiene, sin duda, creado carpetas (directorios) en el disco duro del equipo.Ordenadores personales utilizan una jerarquía de carpetas para estructurar y organizar losprogramas y archivos en el disco duro.En Plone carpetas se utilizan esencialmente la mismamanera, salvo que se crea en un sitio web Plone, para organizar el contenido en Ploneincorporada en el sistema de almacenamiento.Carpetas se agregan haciendo clic en Agregar nueva ... menú desplegable. Seleccione lacarpeta en el menú:

Page 16: Plone in spanish (revision feb-2009)

Ahora debe ver la pantalla de Agregar carpeta:

Rellene el título, que se requiere, tal como indica el cuadro rojo. La descripción esopcional, siempre puedes volver al panel de edición si es necesario añadir una descripciónde la carpeta. Descripciones son útiles cuando un visitante utiliza la herramienta debúsqueda incluido en Plone - los resultados se mostrarán con el título y descripción deltema.Usted también notará pestañas en la parte superior:

• Default , Por defecto, para entrar en el título y descripción campos,• Categorization, Categorización, para especificar las categorías que se aplican a la

carpeta (puede conocer estas como palabras clave),• Dates , Fechas, para establecer el período de tiempo cuando la carpeta debe estar

disponible para ver en el sitio Web,• Ownership , Propiedad, para especificar el creador y / o colaboradores para el

elemento de contenido,• Settings, Ajustes, por permitir que los comentarios sobre el tema y si se muestra en

el menú de navegación por el sitio web.Estas pestañas son estándar, por lo que verás al hacer clic en otros tipos de contenido.Vamos a cubrir estas pestañas en otra sección de este manual del usuario.

Page 17: Plone in spanish (revision feb-2009)

Asegúrese de hacer clic en Guardar en la parte inferior de la página cuando hayaterminado.Esto completa el proceso de creación de carpeta.

CREAR UN EVENTO EN EL CALENDARIO DEL SITIO1. El primer paso es entrar a la pagina del administrador :

2. Tenemos una serie de menús en pestañas, el que nos interesa es el que esta en laparte superior de la pagina, esta en color azul justo al lado de el logo de plone.

3. Damos click en la pestaña Events :

4. Nos deberá de aparecer esta pantalla en nuestro explorador:

Page 18: Plone in spanish (revision feb-2009)

5. En la zona verde tenemos otro submenú, buscamos el que diga Add New..6. Damos click en event.

7. Nos aparecerá una pagina la cual contendrá las siguientes secciones:

Page 19: Plone in spanish (revision feb-2009)

8. Primero hay que darle un nombre al evento, en este caso lo llamaremos “AVISO”,de la misma manera debe tener una breve descripción o nombre mas largo en estecaso ponemos “Aviso Importante” y en el lugar del evento , ponemos la direcciónweb del sitio en donde se llevara a cabo el evento :

9. El ejemplo que estamos realizando es el de un aviso sobre el mantenimiento de lapagina, por lo que aquí depende del sitio, puede tardar varias horas o tal vez díaspor lo que se establecerá un horario:

10. También se hace la descripción detallada o un mensaje explicando el evento.

11. Después nos aparecen otras secciones:

Page 20: Plone in spanish (revision feb-2009)

12. Si quieres la opción de que los usuarios comenten tus eventos , nos vamos al menúsuperior de color blanco , y damos click en la sesión Settings:

13. Después seleccionamos el primer checkbox que dice : Allow Comments y damosclick en Save:

Page 21: Plone in spanish (revision feb-2009)

14. Regresamos al evento en el mismo menú pero en la pestaña de Default y nosdesplazamos hasta la parte inferior de la pagina y damos click en Save :

15. Y listo nuestro evento aparece en el calendario y si acercamos el cursor nos muestrala hora del evento o damos clic en el dia del evento y nos muestra esta pantalla.

"EJEMPLO DE COMO PONER FONDO A PLONE".

Agregando una imágen de fondo y fijando el ancho del diseño. Agrega el siguiente CSS yrecarga el sitio:

Page 22: Plone in spanish (revision feb-2009)

/* fondo + estilo de logos */body {background: url(bg_light.gif);width: 840px;margin: auto;}

#visual-portal-wrapper {margin: 20px;background-color: white;padding: 0 20px 20px 20px;}

#portal-logo {display: block;margin-bottom: 2em;}

Un detalle que merece prestar atención es la línea margin: auto. Este es el modo por el cualse centran elementos en CSS y mucha gente no lo sabe — generalmente esperan usar algocomo float: center o similar.Una vez guardado, el sitio debería verse de este modo:

Page 23: Plone in spanish (revision feb-2009)

Es increible lo que hace al diseño agregar una simple imágen de fondo.

Como cambiar la figura superior del menu al dar clic sobre alguntema del menu

Hola en este Tema

Como cambiar la figura superior del menu al dar clic sobre algun tema delmenu cuando le des clic sobre cada tab cambie la image superior, porque lostabs tienen información diferente,Para poder cambiar correctamente el portal-logo en una carpeta y, portanto, sea diferente que en root, hay que modificar los css... (aplicable aldiseño completo de la página en esa carpeta)

Primero de todo: en la carpeta Custom (portal_skins->custom) añade unnuevo objeto Image y sube la imagen que quieras como logo (cabecera).

Ya tienes el main_template en la carpeta a modificar... ahora abre eltemplate haciendo click sobre él.

Busca el código siguiente:<a metal:use-macro="here/global_logo/macros/portal_logo">The portal logo, linked to the portal root</a>cambia portal_logo por portal_logo2, guarda los cambios y ve a/portal_skins/portal_templates, píncha en global_logo y luego dale acustomize (esto te permite editarlo). Verá este codigo:

<h1 id="portal-logo" metal:define-macro="portal_logo"><a href="/"tal:attributes="href navigation_root_url"tal:define="portal_title portal_properties/title;"tal:content="string:$portal_title"accesskey="1">Plone</a></h1>

copialo justo debajo de </h1> y cambias el id="portal-logo2" metal:define-macro="portal_logo2">

Quedará algo así:

<h1 id="portal-logo" metal:define-macro="portal_logo"><a href="/"

Page 24: Plone in spanish (revision feb-2009)

tal:attributes="href navigation_root_url"tal:define="portal_title portal_properties/title;"tal:content="string:$portal_title"accesskey="1">Plone</a></h1><h1 id="portal-logo2" metal:define-macro="portal_logo2"><a href="/"tal:attributes="href navigation_root_url"tal:define="portal_title portal_properties/title;"tal:content="string:$portal_title"accesskey="1">Plone</a></h1>

guarda los cambios. ¿tienes en la carpeta custom un archivo que se llamaploneCustom.css? si lo tienes editalo, si no ve a plone_skins->plone_stylesabrelo y customizalo. Entonces agrega este código:

#portal-logo2 {background: url("tulogoaqui.extension") no-repeat;border: 0;margin: 0 auto 0em auto;padding: 0;}

guardalo y ya tienes modificado el logo en la carpeta .

.

AÑADIR UNA NOTICIA AL PLONE

Plone cuenta con un sistema para publicar noticias.Empleo el menú de artículo añadir para una carpeta para añadir una noticia seleccionasnews ítem para crear los que tu quieras publicar.

Page 25: Plone in spanish (revision feb-2009)

Usted verá el panel de noticia de revisión: para crear el titulo descripcion de la noticia colorde letra etc.

En este punto se muestra para subir la foto de la noticia.Los campos estándar para el título, la descripción, y el artículo (s) relacionado están en elpanel, con un redactor visual el área para el texto de cuerpo y la imagen y campos de títulode imagen. Usted puede ser tan creativo como usted quiere en el texto de cuerpo el área, yusted puede usar la imagen de encarte (cargar la imagen) la función para añadir tantailustración como necesario. Las imágenes que usted carga para la noticia serán añadidas ala carpeta en la cual usted añade la noticia.

La Imagen y el Título de Imagen juegan en campo, apropiado, son para añadir una imagenpara ser usado como un representante gráfico para la noticia, para fijar en listados denoticia.Como con acontecimientos que resaltan en el calendario: Las noticias no aparecerán en sumayoría noticias de sitio web catalogando hasta que ellos sean publicadosAñadir un Sitemapde Google

AÑADIR UN SITEMAP DE GOOGLE

Crea un Page Template (Content-Type:text/xml) en tu carpeta custom llamado sitemap.xmlo google-sitemaps.xml (la extension .xml es requerida por google) y pegue el siguientecódigo dentro:

<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.google.com/schemas/sitemap/0.84"

xmlns:tal="http://xml.zope.org/namespaces/tal"xmlns:metal="http://xml.zope.org/namespaces/metal"tal:define="results python:container.portal_catalog(

portal_type = ['News Item','Document', 'Topic'],review_state=['published'],sort_on='modified' ,sort_order='reverse');

dummy python:request.RESPONSE.setHeader('Content-Type', 'text/xml');dummy2 python:request.RESPONSE.setHeader('charset', 'UTF-8');"

tal:condition="results"

Page 26: Plone in spanish (revision feb-2009)

tal:on-error="nothing" ><url tal:repeat="result results" tal:on-error="nothing">

<loc tal:content="result/getURL">http://www.yoursite.com/</loc><lastmod tal:content="python:

DateTime(result.modified).HTML4()">2005-01-01</lastmod></url>

</urlset>

Esta Page Template lista todo el contenido publicado de los tipos Noticia,Documento yCarpetas Inteligente. Añade todos los tipos de contenido o estados si quieres que esténlistados en el sitemap.

Si estas usando EasyRating puede que desee añadir una etiqueta priority:

<priority tal:condition="result/amount_of_ratings | nothing"tal:content="python:result.average_rating/5">0.8</priority>Se asume que las puntuaciones están en un rango de 0 y 5 (valores por defecto). Si definesotros valores hay que cambiar el tal:content.

Puedes especificar la ubicación del Sitemap con el archivo robots.txt. Para ello, sólo tienesque añadir la siguiente línea:

Sitemap: <sitemap_location>

El <sitemap_location> debe ser la URL completa de la ubicación del Sitemap, por ejemplo:http://www.example.com/google-sitemaps.xml. Esta directiva es independiente de la línea"user-agent", por lo que no importa donde coloque su archivo.

Usted puede añadir su sitemap para Google Sitemaps en http://www.google.com/webmasters/sitemap

COMO CAMBIAR EL ICONO(FAVICON) ASOCIADO TU SITIO PLONE

Un favicon es una imagen que los desarrolladores web incluyen en el sitio y aparece en labarra de direcciones, favoritos y bookmarks (en la mayoría de navegadores).

La imagen en mención, normalmente es el logo o ícono distintivo de la empresa, institucióno persona para quien el sitio ha sido desarrollado. Sirve para promocionar su imagen, sumarca y crear sitios más personalizados.

Crea una imagen de 16x16.Convertir la imagen a un fichero .ico (Puedes usar la herramienta online:http://tools.dynamicdrive.com/fav )Por último, añade un "File" en tu carpeta '{site_root}/portal_skins/custom/'.

Page 27: Plone in spanish (revision feb-2009)

Que hacer para que en el calendario aparezcan sólo los eventos deuna carpeta

Este How-to explica como hacer para tener el portlet del calendario en varias carpetas y encada una de ellas sólo aparecerán marcados los eventos contenidos en la carpeta.

Ir al sistema de ficheros y en el archivo CalendarTool.py del directorio Products/CMFCalendar buscar las funciones getEventsForCalendar y catalog_getevents, sustituir elcódigo por lo siguiente:

security.declarePublic('getEventsForCalendar')def getEventsForCalendar(self, month='1', year='2002', path=None):

""" recreates a sequence of weeks, by days each day is a mapping.{'day': #, 'url': None}

"""year=int(year)month=int(month)# daysByWeek is a list of days inside a list of weeks, like so:# [[0, 1, 2, 3, 4, 5, 6],# [7, 8, 9, 10, 11, 12, 13],# [14, 15, 16, 17, 18, 19, 20],# [21, 22, 23, 24, 25, 26, 27],# [28, 29, 30, 31, 0, 0, 0]]daysByWeek=calendar.monthcalendar(year, month)weeks=[]

if path:events=self.catalog_getevents(year, month, path)

if not path:events=self.catalog_getevents(year, month)

for week in daysByWeek:days=[]for day in week:

if events.has_key(day):days.append(events[day])

else:days.append({'day': day, 'event': 0, 'eventslist':[]})

weeks.append(days)

return weeks

security.declarePublic('catalog_getevents')def catalog_getevents(self, year, month, path=None):

""" given a year and month return a list of days that have events """year=int(year)month=int(month)last_day=calendar.monthrange(year, month)[1]first_date=self.getBeginAndEndTimes(1, month, year)[0]last_date=self.getBeginAndEndTimes(last_day, month, year)[1]

Page 28: Plone in spanish (revision feb-2009)

if path:query = self.portal_catalog(

portal_type=self.getCalendarTypes(),review_state=self.getCalendarStates(),path = path,start={'query': last_date, 'range': 'max'},end={'query': first_date, 'range': 'min'},sort_on='start' )

if not path:query = self.portal_catalog(

portal_type=self.getCalendarTypes(),review_state=self.getCalendarStates(),start={'query': last_date, 'range': 'max'},end={'query': first_date, 'range': 'min'},sort_on='start' )

# compile a list of the days that have eventseventDays={}for daynumber in range(1, 32): # 1 to 31

eventDays[daynumber] = {'eventslist':[], 'event':0, 'day':daynumber}includedevents = []for result in query:

if result.getRID() in includedevents:break

else:includedevents.append(result.getRID())

event={}# we need to deal with events that end next monthif result.end.month() != month:

# doesn't work for events that last ~12 months# fix it if it's a problem, otherwise ignoreeventEndDay = last_dayevent['end'] = None

else:eventEndDay = result.end.day()event['end'] = result.end.Time()

# and events that started last monthif result.start.month() != month: # same as above re: 12 month thing

eventStartDay = 1event['start'] = None

else:eventStartDay = result.start.day()event['start'] = result.start.Time()

event['title'] = result.Title or result.getId

if eventStartDay != eventEndDay:allEventDays = range(eventStartDay, eventEndDay+1)eventDays[eventStartDay]['eventslist'].append( {'end': None,

'start': result.start.Time(), 'title': event['title']} )eventDays[eventStartDay]['event'] = 1

for eventday in allEventDays[1:-1]:eventDays[eventday]['eventslist'].append( {'end': None,

Page 29: Plone in spanish (revision feb-2009)

'start': None, 'title': event['title']} )eventDays[eventday]['event'] = 1

if result.end == result.end.earliestTime():last_day_data = eventDays[allEventDays[-2]]last_days_event = last_day_data['eventslist'][-1]last_days_event['end'] = (result.end-1).latestTime().Time()

else:eventDays[eventEndDay]['eventslist'].append( {'end':

result.end.Time(), 'start': None, 'title': event['title']} )eventDays[eventEndDay]['event'] = 1

else:eventDays[eventStartDay]['eventslist'].append(event)eventDays[eventStartDay]['event'] = 1

# This list is not uniqued and isn't sorted# uniquing and sorting only wastes time# and in this example we don't need to because# later we are going to do an 'if 2 in eventDays'# so the order is not important.# example: [23, 28, 29, 30, 31, 23]

return eventDays

A continuación, sustituir el código del portlet_calendar por el siguiente:

<html xmlns:tal="http://xml.zope.org/namespaces/tal"xmlns:metal="http://xml.zope.org/namespaces/metal"i18n:domain="plone">

<body>

<div metal:define-macro="portlet"tal:omit-tag=""tal:define="DateTime python:modules['DateTime'].DateTime;

current python:DateTime();current_day current/day;yearmonth here/getYearAndMonthToDisplay;nextYearMax python: current+365;prevYearMin python: current-365;year python:yearmonth[0];month python:yearmonth[1];prevMonthTime python:here.getPreviousMonth(month, year);nextMonthTime python:here.getNextMonth(month, year);path python:'/'.join(context.getPhysicalPath());weeks python:here.portal_calendar.getEventsForCalendar(month, year, path);anchor_url request/anchor_url | here_url;query_string python:request.get('orig_query', None);query_string python: (query_string is None and request.get('QUERY_STRING',

None)) or query_string;url_quote python:modules['Products.PythonScripts.standard'].url_quote;anchor_method request/anchor_method | template/getId;translation_service nocall:here/translation_service;day_msgid nocall:translation_service/day_msgid;

Page 30: Plone in spanish (revision feb-2009)

weekday_english nocall:translation_service/weekday_english;utranslate nocall:here/utranslate;toLocalizedTime nocall:here/toLocalizedTime;getEventString nocall:here/getEventString;">

<!-- The calendar, rendered as a table -->

<table class="ploneCalendar" id="thePloneCalendar" summary="Calendar"i18n:attributes="summary summary_calendar;">

<thead><tr>

<th id="calendar-previous"><a href="#" rel="nofollow"

title="Previous month"tal:attributes="href python:'%s/

%s?%s&amp;month:int=%d&amp;year:int=%d&amp;orig_query=%s' % (anchor_url,anchor_method, query_string,prevMonthTime.month(),prevMonthTime.year(),url_quote(query_string))"

tal:condition="python: yearmonth > (prevYearMin.year(),prevYearMin.month())"

i18n:attributes="title title_previous_month;">&laquo;</a></th><th colspan="5">

<span i18n:translate="" tal:omit-tag=""><span i18n:name="monthname"

tal:define="month_englishpython:translation_service.month_english(month);"

tal:attributes="id string:calendar-month-$month_english"tal:content="python:

utranslate(translation_service.month_msgid(month), default=month_english)"tal:omit-tag=""id="calendar-month-month">monthname</span>

<span i18n:name="year"tal:content="string:$year"tal:attributes="id string:calendar-year-$year;"tal:omit-tag=""id="calendar-year">year</span>

</span></th><th id="calendar-next">

<a href="#" rel="nofollow"title="Next month"tal:attributes="href python:'%s/

%s?%s&amp;month:int=%d&amp;year:int=%d&amp;orig_query=%s' % (anchor_url,anchor_method, query_string,nextMonthTime.month(),nextMonthTime.year(),url_quote(query_string))"

tal:condition="python: yearmonth &lt; (nextYearMax.year(),nextYearMax.month())"

i18n:attributes="title title_next_month;">&raquo;</a></th>

</tr><tr tal:define="weekdaynumbers here/portal_calendar/getDayNumbers"

class="weekdays"><tal:data tal:repeat="daynumber weekdaynumbers">

<td tal:define="weekday_english

Page 31: Plone in spanish (revision feb-2009)

python:weekday_english(daynumber,format='a');"tal:content="python: utranslate(day_msgid(daynumber, format='s'),

default=weekday_english)">Su</td></tal:data>

</tr></thead>

<tal:comment replace="nothing"><!--Sorry for the obtuse formatting below (the stray end-of-tag markers), but untiltal:block doesn't render an entire line of blank space when used, this is the only way.--></tal:comment><tbody>

<tr tal:repeat="week weeks"><tal:block repeat="day week"><tal:block define="int_daynumber python: int(day['day']);

day_event day/event;is_today python: current_day==int_daynumber and

current.month()==month and current.year()==year"><td class="event" tal:condition="day_event"

tal:attributes="class python:is_today and 'todayevent' or 'event'"><tal:data tal:define="cur_date

python:DateTime(year,month,int_daynumber);begin python:url_quote((cur_date.latestTime()).ISO());end python:url_quote(cur_date.earliestTime().ISO());"

tal:omit-tag=""><a href=""

tal:attributes="href string:${portal_url}/search?review_state=published&amp;start.query:record:list:date=${begin}&amp;start.range:record=max&amp;end.query:record:list:date=${end}&amp;end.range:record=min;

titlepython:'\n'.join([toLocalizedTime(cur_date)]+[getEventString(e) for e inday['eventslist']]);"

tal:content="python:int_daynumber or default">31</a

></tal:data></td><tal:notdayevent tal:condition="not: day_event"

><td tal:attributes="class python:is_today and 'todaynoevent' or None"tal:content="python:int_daynumber or default"></td

></tal:notdayevent></tal:block></tal:block></tr>

</tbody></table>

</div>

</body>

</html>

De esta forma podremos tener dos carpetas con eventos cada una de ellas y que en cada

Page 32: Plone in spanish (revision feb-2009)

calendario de cada carpeta sólo muestre los eventos contenidos en la propia carpeta.

Conclusión acerca del uso de plone en clase

Primero hay que bajar un instalador de Plone para Mac. Ya que son las queusamos en esta clase. (El cual una persona bajo este instalador y lo compartiópor medio de una memoria extraíble para evitar saturar la red por tratar debajarlos todos al mismo tiempo. Lo cual es recomendable bajar la versiónpara desarrollo que incluye plantillas, herramientas y para comenzar rápido,se es recomendable para las personas que no somos expertas trabajando enplone ya que es un buen ejemplo para empezar a trabajar.

Al tiempo de instalar Plone podemos configurarlo para instalarlo en unservidor pero como solo queremos saber como trabaja, y aprender sobre el,solo lo instalaremos como localhost para empezar a usarlo. De este modoempezaremos a trabajar y viendo los avances desde nuestra computadora,sin temor de llegar a equivocarnos.

Así podemos pasar un buen rato probando el entorno viendo para que sirveuna y otra cosa, mirando las carpeta que se crearon tiempo de instalarlo ylos cambios que se le pueden hacer. Podemos ver que el código se le puedemodificar sabiendo un poco como crear los CSS.

Como elegimos instalar los templates de ejemplos un diseñador Web yadefinió templates HTML básicos junto con diseños en imágenes estáticasque trae ya por default, pero como nosotros que remos crear nuestra propiapagina y a nuestro estilo entonces podemos instalarle los componentes quenecesitemos así como modificarles los que no nos guste.

Lo recomendable es consultar un tutorial para aprender la configuracióndel mismo plone. En cuanto a las carpetas e imágenes que manejamos,si nosotros empezamos a navegar un poco dentro de la carpeta plone nosllevara a un directorio llamado templates donde almacenan el template HTML,páginas de estilos e imágenes del diseñador Web. También almacenan unarchivo vació llamado overrides.css, donde pueden redefinir aspectos de supropio CSS y tener nuestra pagina personalizada a nuestro estilo.En este directorio podemos instalar nuevas plantillas que se acomoden anuestras necesidades pero por defecto, como elegimos instalar ejemplos yahay templates instaladas las cuales podemos cambiar el logo y los coloresdel árbol de navegación, pestañas, etc. Tomando esto como ejemplo, hacenrápidamente una estructura aproximada donde los títulos, cuerpo, contenidoy elementos de navegación de las páginas y podemos emplearlas ymodificarlas a tal manera que ya no parezcan como realizadas por undiseñador de plone sino una pagina diseñada por nosotros mismos.

Page 33: Plone in spanish (revision feb-2009)

Como conclusión, el usar plone como uno de los primeros CMS fue algo muydivertido ya que podemos realizar una pagina Web bien estructurada en unmuy bajo tiempo la cual contiene todo los necesario para no tener que perdermucho tiempo programando y diseñando y haciendo desde cero componentesque al final de cuentas no funcionan bien o no son usadas al final .