Blog

Agrupar los contenidos en nuevas páginas

A la hora de crear nuevos tipos en opencms, en el fichero opencms-modules indicamos la «página» usada en la que metemos el contenido:

[code]

<explorertype name=»CONTENIDO» key=»fileicon.CONTENIDO» icon=»CONTENIDO.png» bigicon=»CONTENIDO_big.png» reference=»xmlcontent»>
<newresource page=»CARPETA» uri=»newresource_xmlcontent.jsp?newresourcetype=textoplano» order=»110″ autosetnavigation=»false» autosettitle=»false» info=»desc.textoplano»/>
</explorertype>

[/code]

Para poder crear nuestras páginas, justo antes de este contenido, debemos insertar un nuevo «explorertype» como a continuación para que nos aparezca en la «CARPETA» :

[code]

<explorertype name=»CARPETA» key=»fileicon.CARPETA» icon=»CARPETA.gif» reference=»xmlcontent»>
<newresource uri=»newresource.jsp?page=CARPETA» order=»10″ autosetnavigation=»false» autosettitle=»false» info=»desc.CARPETA/>
</explorertype>

<explorertype name…
<newresource page=»PAGINA» …
</explorertype>

[/code]

Esto se puede anidar tanto como queramos para tener páginas que ayuden a los usuarios cuanto tenemos muchos contenidos en nuestro OpenCMS.

Problemas con los permisos en los directorios creados por apache

Hoy nos hemos encontrado con el problema de que apache crea directorios con permisos solo 750, a pesar de poner un 777 en el mkdir desde php. Se solucionaría con un umask antes del mkdir, pero nos restringiría las aplicaciones como wordpress, y tampoco nos interesa un script que cambiase los permisos por las noches, así que hemos estado un rato buscando la solución.

En nuestro Centos del servidor, tras mucho indagar, y cambiar el .profiles del usuario apache sin ningún resultado, hemos visto que la solución está en editar /etc/sysconfig/httpd añadiendo a final un «umask 0002» y reiniciar el apache. A partir de entonces crea los directorios con un 770 sin problemas.

Espero que os ayude!!

Crear tipos de contenidos «nested» en OpenCMS

Cuando creamos un contenido en OpenCMS podemos crear tipos de contenido que incluyan otros contenidos dentro, de forma que podamos «nestear» y asi poder tener tipos de contenidos que podemos usar en más de un tipo (o escalar) de forma sencilla.

Imaginemos (como ejemplo) que queremos crear un tipo de contenido llamado «pagina generica» el cual sera un contenido que tenga un titulo, subtitulo, párrafos de texto, imagenes, enlaces y adjuntos (ficheros). Pero que cada párrafo puede contener a su vez más imagenes, adjuntos… e incluso que los enlaces tengan descripciones (ademas del enlace en si, tanto externo como interno). Si hicieramos un unico contenido seria «grande» y podria ser poco usable, cuando lo importante es tener un contenido que «contenga» el resto.

Así, podemos crear un contenido llamado PaginaTexto que contenga contenidos Parrafo, Imagenes y Enlaces.

Leer más

Mysql con Unixtime vs Timestamp

Existen dos funciones para obtener un valor entero de timestamp desde una fecha, y viceversa, obtener la fecha desde el valor entero de timestamp

Las dos funciones que podemos lanzar desde una consulta SQL son from_unixtime y unix_timestamp. Os dejo dos ejemplos por si queréis probar.

Select from_unixtime(1196440219);
Select unix_timestamp(«2012/04/30 23:59:59»);

El archivo especificado no se pudo copiar – Drupal

[code]El archivo especificado /RUTA/fileT8mBZo no se pudo copiar, porque el directorio de destino no está configurado correctamente. la causa puede ser un problema de derechos en el directorio o los archivos. Hay más información disponible en el registro del sistema.[/code]

Si obtenéis un error como el anterior en vuestras instalaciones de Drupal tras aplicar o añadir la libreria para el idioma castellano (o cualquier otro), la solución es dar permisos de escritura a la libreria en si.

Es decir, si habéis añadido un lenguaje a vuestro Drupal a traves de un fichero como el /profiles/standard/translationsdrupal-7.11.es.po y al visualizar páginas os da un error como el anterior, se debe a que Drupal no tiene permisos de escritura dentro del fichero del idioma y es necesario.

No hace falta que cambies la ubicación de los temporales del Drupal ni la forceis dentro del fichero /includes/file.inc en las lineas 1904 o 1389 como indica la propia documentación de Drupal.

Update: Tambien podeis instalar las traducciones a traves del modulo Localization de forma que cada sitio pueda estar en el idioma que prefiera (activando el modulo y configurandolo, claro). El mismo problema, diferentes soluciones.

Rellenar un formulario PDF con iText

Nosotros hasta ahora hemos trabajado con unos formularios PDF que se rellenaban mediante FDF (protocolo de Acrobat para obtener información y rellenar los documento PDF). Llevamos trabajando con ellos pero el resultado no ha sido muy bueno, así que hemos buscado un alternativa, y nos hemos decidido por evaluar la librería iText que tiene versión community y comercial.

Leer más

Crear un portal en OpenCMS8: 5.Cambiar las páginas de error

Para cambiar el estilo y las páginas de error debemos modificar los ficheros dentro de /system/handler. Por defecto tenemos dos carpetas y dos ficheros.

  • contents
  • contents/content404.html
  • contents/content500.html
  • contents/contentunknown.html
  • template
  • template/handlertemplate.jsp
  • template/style.css
  • template/warning.png
  • handle404.html
  • handle500.html

Cambiando estas páginas modificaremos el estilo para que las páginas sean más acorde al estilo de nuestra web.

Crear un portal en OpenCMS8: 4.Crear el contenido del portal

En esta entrada vamos por fin a ver nuestros resultados si hemos seguido bien los pasos. Es la hora de crear la estructura del portal y sus contenidos. PAra nuestro caso vamos a crear la siguiente estructura:

  • index.html como el contenedor de la página principal.
  • .content del tipo «content_folder»
  • .content/.config como la configuración del sitio del tipo de contenido «sitemap_config»
  • .content/.new como la configuración para los nuevos contenidos. Es opcional.
  • _categories con tantas carpetas y subcarpetas como categorías deba de tener los contenidos del portal. Es opcional
  • 1lauva del tipo de contenido subsitemap
  • 11historiaypatrimonio
  • 12rectorado
  • 13vicerrectorados
  • 2estudios
  • 3investigacion
  • 4internacional
  • 5comunidad
  • 6empresaeinstituciones
  • 7vida

Con esta estructura ya podemos hacernos una idea de cómo crear el árbol de contenidos de la página.

Leer más