Cambios en las barras del editor WYSING de OpenCMS

Hoy nos hemos encontrado con el problema de quitar la posibilidad de que el usuario pueda usar el subrayado y el tachado del editor WYSING (por ejemplo FCKEditor) del OpenCMS.

La solución es muy sencilla versiones superiores a la OpenCMS 7.5.1. Podemos tener una solución global para todo nuestro gestor de contenidos o particular para un campo.

Para un campo la solución es usar «hidebuttons:underline;strikethrough» en la configuración del elemento dentro del XSD:

[code]

<layout element=»Texto» widget=»HtmlWidget»  configuration=»hidebuttons:underline;strikethrough»/>

[/code]

Como recordatorio, os copio todos los elementos que puede tener el editor (versión 8.0.4 de OpenCMS) que podéis consultar en el JavaDOC de Opencms o directamente http://www.opencms.org/javadoc/core/constant-values.html#org.opencms.widgets.CmsHtmlWidgetOption.BUTTONBAR_DEFAULT%7C

Estos son todos lo elementos posibles:

[code]

"[;undo;redo;-;find;replace;-;selectall;removeformat;-;cut;copy;paste;-;bold;italic;underline;strikethrough;-;subscript;superscript;];[;alignleft;aligncenter;alignright;justify;-;orderedlist;unorderedlist;-;outdent;indent;];[;source;-;formatselect;style;editorlink;link;anchor;unlink;];[;imagegallery;downloadgallery;linkgallery;htmlgallery;tablegallery;-;table;-;specialchar;-;print;spellcheck;-;fitwindow;];[;abbr;absolute;acronym;advhr;attribs;backcolor;blockquote;cite;cleanup;del;emotions;fontselect;fontsizeselect;forecolor;hr;ins;insertdate;insertlayer;inserttime;ltr;media;movebackward;moveforward;newdocument;nonbreaking;pagebreak;pastetext;pasteword;rtl;styleprops;template;visualaid;visualchars;];"

[/code]

Para los cambios en todo nuestro gestor, debemos cambiar la clase org.opencms.widgets.CmsHTMLWidgetOption.BUTTONBAR_DEFAULT

¡¡Espero que os sirva!!

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!!

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»);

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