Tres trucos para OJS

OJS es un completo sistema de gestión y publicación para revistas académicas en línea con el que he estado trabajando últimamente en un par de proyectos, en los que he aprendido un par de trucos que quizás pueden resultar útiles a quienes lo utilicen.

Personalizar la página de inicio

Si bien en OJS tenemos la oportunidad de aplicar hojas de estilo CSS personalizadas (con todo el potencial de esto), a veces podría ser necesario hacer cambios estructurales en la página que hará de presentación del sitio… esperemos que, por el bien de tus usuarios, esto no signifique meter una inútil y molesta presentación en Flash.

La forma de lograrlo es muy sencilla: basta con agregar un archivo llamado index.html en la raíz de tu instalación de OJS; es decir, si para ingresar a tu instalación de OJS te diriges a http://www.turevista.com/, la página que hará de portada estará en http://www.turevista.com/index.html

Esto debería funcionar en prácticamente cualquier instalación, ya que en la mayoría de los casos los servidores web están configurados para preferir un archivo .html por sobre un .php

De esta manera, al ingresar a turevista.com, el usuario verá el archivo index.html en lugar de index.php; para acceder a este último, deberás especificarlo explícitamente: turevista.com/index.php

Como podrás imaginar, en tu index.html puedes hacer y deshacer lo que quieras.

En este punto, podríamos encontrar un pequeño problema de usabilidad, y es que la barra de navegación de OJS incluye un enlace a “Inicio” que no lo llevará a tu página de inicio personalizada, sino a la página de inicio de OJS; sin embargo, esto se puede resolver fácilmente (al menos bajo servidores web Apache) creando un archivo .htaccess donde puedes especificar que las peticiones a la página de inicio de OJS sean redirigidas a tu página de inicio personalizada.

Por ejemplo, si la página de inicio de OJS está en http://turevista.com/index.php/nombre-de-tu-revista/index, debes agregar la siguiente línea a tu .htaccess:

Redirect 301 /index.php/nombre-de-tu-revista/index http://turevista.com/index.html

Buscar en archivos PDF y Word

De manera predeterminada, al buscar en OJS el sistema buscará en aquella información que se encuentre disponible como texto plano, ya sea en su base de datos o en las versiones en HTML de los artículos (en caso de existir). Buscar en archivos PDF o Word es posible, aunque no automático.

No pretendo explicar porqué es diferente hablar de buscar en archivos HTML/texto plano/base de datos o PDF/Word, ni porqué no me parece una muy buena idea ofrecer artículos académicos en formato Word (sobre todo con la multitud de opciones para crear archivos PDF), pero es necesario tener en cuenta que para esta tarea necesitaremos de software adicional al de nuestro servidor web, php y mysql, y que en más de algún caso es probable que no esté disponible; además, el software con el que OJS interactúa para poder ofrecer búsqueda en archivos PDF/Word no está disponible para Windows sino para Linux (y quizás también para BSD u otros unices)… lo que, en todo caso, es sólo una razón más para usar Linux.

Sí voy a explicar cómo es que OJS logra buscar en archivos PDF/Word: con la ayuda de algunos programas, extrae el texto legible para crear una base de datos donde se almacenan los palabras de los documentos. Si configuras la búsqueda en PDF/Word desde un comienzo, cuando publiques artículos en estos formatos se indexarán sus palabras y serán “buscables”; si lo configuras luego de haber publicado los números, deberás reconstruir los índices de búsqueda… ya llegaremos a eso.

Bien, pongamos manos a la obra.

  1. En primer lugar, te recomiendo conectarte a tu servidor vía SSH y hacer estas tareas a través de la (temida, para algunos; amada, para otros) línea de comandos… aunque en verdad esto no es necesario, sí me parece más comodo.
  2. Una vez conectado a tu servidor, ve al directorio raíz de tu instalación de OJS, por ejemplo: cd /home/tu-usuario/turevista.com
  3. Una vez allí, realiza una copia de seguridad de tu archivo de configuración (por si algo llegara a salir mal): cp config.inc.php config.inc.php.respaldo
  4. Ahora necesitamos averiguar la ubicación de los programas auxiliares que permiten a OJS indexar el texto de archivos PDF/Word, lo que podemos hacer con el comando locate. Para los archivos PDF, podemos utilizar pdftotext o pstotext; para archivos Word, antiword o catdoc. Entonces, si estamos en la terminal, podemos ingresar locate pdftotext y el sistema nos dirá donde está ubicado ese programa… si no te puedes conectar por SSH, puedes preguntar directamente a tu soporte técnico; en todo caso, de estar instalados, estos programas generalmente se ubican bajo /usr/bin: /usr/bin/pdftotext; /usr/bin/antiword, etc.
  5. Una vez que ya sabemos donde se ubican los programas auxiliares (de lo cual supongo que habrás tomado nota), vamos a editar el archivo de configuración de OJS… yo prefiero hacerlo con nano, así que pongo nano config.inc.php
  6. Ya editando, debemos buscar la sección del archivo de configuración donde se definen las ubicaciones de los programas auxiliares. En mi archivos de configuración, esto se encuentra alrededor de la línea 300
  7. Si las rutas corresponden al lugar donde están los programas auxiliares en tu servidor, sólo basta con borrar el punto y coma (;) antes de la línea que corresponde, de este modo, por ejemplo, pasamos de ; index[application/pdf] = "/usr/bin/pdftotext %s -" a index[application/pdf] = "/usr/bin/pdftotext %s -". Con ello ya estará listo para indexar archivos PDF.
  8. Por último, guardamos el archivo de configuración

Si recién comenzarás a publicar artículos, el sistema indexará automáticamente las palabras de los archivos PDF/Word; en caso contrario, debemos agregar dos pasos más:

  1. Dirígete al directorio tools de tu instalación de OJS (p.ej: cd /home/tu-usuario/turevista.com/tools)
  2. Reconstruye el índice de términos ejecutando rebuildSearchIndex.php con php: php rebuildSearchIndex.php. Ojo, que esto sólo se puede realizar desde la línea de comandos, si intentas ejecutar este archivo desde tu navegador no resultará.
  3. ¡Listo!

Actualizar desde la línea de comandos

Hay varias formas de actualizar una instalación de OJS, pero la que me parece más fácil es a través de la línea de comandos… una vez más, SSH viene al rescate —y recuerda, si tu hosting no te ofrece SSH, es probable que no sea un buen hosting.

Una vez más, nos dirigimos al directorio tools de tu instalación de OJS, donde está upgrade.php, que se encargará del proceso de actualización.

En primer lugar, debes ejecutar esta orden: php upgrade.php patch, lo que automáticamente bajará y aplicará un parche con los cambios entre tu versión y la más nueva. Será necesario que tu servidor tenga instalado el programa patch (una vez más, estamos hablando de Linux).

Luego toca actualizar la base de datos: php upgrade.php upgrade

¡Listo!

Extra: Cache de páginas

Lo publico como un extra ya que no lo he utilizado, por lo que no sé cómo funciona, pero creo necesario indicar que en caso de que tu revista resulte ser increíblemente popular podría ser necesario activar la utilización de un cache. OJS ofrece dos opciones: utilizar memcached (algo más avanzado) o generar páginas estáticas.

Para ambas opciones, debes ajustar la configuración en el archivo config.inc.php, alrededor de la línea 100.

Si quieres generar páginas estáticas, debes fijar la opción cache = file (línea 105); web_cache = On y web_cache_hours = X, donde “X” es la cantidad de horas que deseas mantener la copia de la página estática.