Tres trucos para OJS

Tres consejos (más un extra) para mejorar algunos aspectos de tu instalación de Open Journal Systems

[OJS->Open Journal Systems] 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->Cómo crear documentos 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.

36 thoughts on “Tres trucos para OJS

  1. Hola,

    Estoy metiendome a fondo sobre esta Aplicacion, quisiera ayuda en cosas que de pronto tenga dudas..

    Me podrias a yudar

    mi correo es oscar.89-@hotmail.com

    Gracias ..

  2. Me parece bastante interesante lo que escribiste antes, sería bueno estar al tanto de nuevos trucos similares a estos.

  3. Amigo excelente dato.
    Sabes como migrar todo y me refiero a todo OJS de un servidor Linux Ubuntu a Linux centos?
    Paso a paso?
    Gracias.

    1. Hola Mariana: no tengo la información que necesitas con ese nivel de detalle; si el servidor de destino está correctamente configurado debiese bastar con copiar la base de datos y los archivos de la aplicación. Por supuesto es indispensable que antes de apuntar el dominio del sitio al nuevo servidor debieses probar que todo funcione correctamente utilizando otro dominio o bien modificando tu archivo de /etc/hosts para poder atrapar cualquier error antes de hacer público el cambio.

  4. Hola me gustaría saber como puedo modificar los nombres de los menus que
    vienen pro defecto en OJS… específicamente el con nombre “Archivo”…
    preferiría cambiarlo por “números anteriores”… podrías ayudarme en
    eso?

    1. Hola David: me parece que OJS no tiene ese nivel de flexibilidad; el menú superior es fijo pero posiblemente lo puedas cambiar creando una plantilla personalizada para lo cual necesitarías cambios en la programación del sitio (no es una opción configurable)

    2. Felipe… descubrí como hacerlo… existe la carpeta llamada “locale” que contiene los diferentes idiomas… entonces es muy fácil cambiar los nombres, solo hay que buscar en el idioma en que se desea hacer la modificación, buscar la palabra original y cambiarla por la nueva… yo logré cambiar “archivos” por “números anteriores”… y todo salió perfecto!! saludos desde Chile!

    3. David soy nuevo utilizando el OJS y me surgio una duda que es parecida a la que tu tenias, pero en vez de cambiar el nombre es el de eliminar una de las opciones del Menu ejemplo Area Personal, tengo una sola revista montada y cuando entro como una usuario con nivel de privilegio de Lector, el menu permite la opcion Area Personal y lo que hace es ir al gestor de revista OJS. Como podria eliminar esta opción

  5. Hola Felipe, muy buenos los trucos.

    Realicé el upgrade de 2.4.2. a 2.4.3 conforme tus indicaciones. Al respecto te comento que cuando ejecuto

    php upgrade.php patch

    Me aparece el mensaje ERROR: Failed to apply patch luego de la línea patching file tools/upgrade.php

    Luego hago

    php upgrade.php upgrade

    y cuando se ejecuta el proceso se queda ahí “tildado” sin avanzar más.

    Utilizo Ubuntu 12.04

    Saludos

    Ernesto

    1. Ernesto… hay un reporte respecto a ese error (el 11 de diciembre de 2013)… encontré esa información cuando intentaba actualizar desde 2.4.2 a 2.4.3 usando el patch… creo que esa info esta en el foro de OJS y también su solución (no recuerdo bien donde vi esa info)… saludos Encontré la página donde está la solución http://pkp.sfu.ca/bugzilla/show_bug.cgi?id=8513 saludos!

  6. Felipe… podrías ayudarme… necesito actualizar OJS de 2.4.2 a 2.4.3… no sé como aplicar el patch pues mi servidor no tiene SHH… existe la opción a través de GNU para windows pero no tengo idea como usarlo… cualquier información me sería muy útil…

    1. Hola David, si tienes acceso local a tu servidor, no necesitas hacerlo sobre SSH sino a través de la misma consola de Windows (me parece que la llaman “Símbolo del sistema”). Desconozco si OJS utiliza el “patch” del sistema (que en Linux viene instalado y en Windows probablemente tendrías que instalar por separado) o bien el mismo software trae toda la funcionalidad incorporada, pero de todos modos necesitarías contar con la posiblidad de ejecutar PHP desde la línea de comandos, algo que los paquetes de servidores como easyPHP o XAMPP no necesariamente dejan disponible (aunque es posible que sí, pero llamando directamente al ejecutable a través de la ruta apropiada).

      Lamento no poder ayudarte más; en verdad tengo nula experiencia con servidores Windows

      Saludos!

  7. Buenas,

    Tengo la versión OJS 2.4.3.0, y tengo un problema a la hora de subir un HTML + CSS en la galerada de un artículo, ese HTML + CSS independientemente funciona y se le aplican los estilos, sin embargo en la plataforma no se aplican los estilos correspondientes; también tengo un OJS en local siendo esta la misma versión que en el servidor y en este caso si se aplican correctamente los estilos, lo que, interpreto o llego a la conclusión que el problema radica en algún problema con la configuración del servidor.

    ¿Alguién ha tendio algún problema similar?¿Alquién me podría indicar donde podría estar el problema?

    Gracias,

    1. Hola Manuel:

      ¿Es posible que el problema esté relacionado con las rutas con que se llama al archivo con la cascada de estilo?

      Cuando he trabajado con HTML en OJS, por lo general hago referencia a una hoja de estilos en una ruta absoluta, en un servidor externo; no recuerdo cómo quedan referenciadas al subir ambos archivos pero por lo que indicas partiría por revisar eso.

      Slds!
      El 07/04/2014 08:19, “Disqus” escribió:

    2. No sé … el css esta en el mismo nivel que el html, por lo tanto, la referencia es en el html el nombre del css, pero como digo, en la plataforma que tengo montada en local misma configuración (por defecto) funciona, sin embargo, en el servidor no, y me hace pensar que pueda ser una configuración del servidor de permisos etc … porque sino en la versión de local debería de dar el mismo problema … o eso creo.

      Gracias¡¡¡

      Si consigo solucionarlo os lo remitiré.

    3. Hola chicos, yo estoy teniendo el mismo problema y me estoy volviendo loca. he revisado la ruta de la hoja de estilos y comprobado el nivel en el que está la css y todo está bien. Estoy con SPUS en que debe ser algo de la configuración del servidor. Habéis podido solucionar el problema? Gracias!!

    4. Buenos días Mónica, en el mismo hilo del mensaje había publicado la solución, y nos ha funcionado sin problemas.

    5. Buenos días,

      Ya he dado con la solución, el problema radicaba en un tema de mime type, que en el servidor linux donde se encuentra instalado los tiene activados y existe un bug que afecta tambien a mi versión y que en la futura 3.0 se resolverá para ello se debe de modificar el siguiente archivo https://github.com/pkp/ojs/commit/3544e4f7d540a44b3d6cb14535bad9300b7f3bf3 , también os dejo el link donde se habla de dicho error http://pkp.sfu.ca/support/forum/viewtopic.php?f=8&t=11546

      Tanto en mis pruebas locales con xampp como en mi hosting particular no tenía ese problema, uno porque al ser windows (traga de todo) y dos porque en mi hosting particular posiblemente este desactivado los type mime.

      Gracias

  8. Buen día Felipe , tengo instalado OJS 2.3.7 , pero cuando trato de configurar la revista como administrador aparece la página en blanco .¡ Qué puede ser?

    1. Hola Guillero, la verdad es que son muchas las posibles causas; algunos puntos por dónde partir investigando:

      # Descarta que se deba a un error de configuración del servidor: por ejemplo, que no ejecuta ningún PHP
      # Activa el registro de errores de PHP y verifica los que se generan cuando se presenta el problema
      # Revisa que todos los módulos de PHP necesarios para ejecutar OJS estén instalados y funcionando correctamente

      Por lo general una página en blanco es señal de un error fatal de PHP, por ejemplo un problema de sintaxis o que se esté llamando a una función que no existe.

      Slds

  9. Hola Felipe, acabo de crearme una cta a tu grupo. Yo hace un par de semanas estoy trabajando con OJS y tengo una duda puntual sobre la modificación del menú, quisiera editarlo, hay algún problema si lo hago directamente desde el index.php?

  10. Hola felipe, he instalado el OJS en un servidor fedora, pero he tenido problemas a la hora de que OJS envíe los respectivos correos electrónicos a los distintos usuarios del sistema, que debo verificar y modificar para que el OJS pueda enviar correos electrónicos automáticamente?

  11. Saludos felipe, quisiera saber como puedo modificar la pagina de los articulos ya que cuando entro a ver un articulo no se el footer que en la pagina principal si esta, mi correo es dixander@ciget.gtmo.inf.cu, gracias de antemano por la ayuda que me puedas dar.

  12. Hola felipe, he instalado el OJS y he configurado el correo en el archivo config.inc.php, resulta ser que cuando envio un correo me trabaja perfecto pero cuando se trata de un correo automatico no me funciona el sistema, por ejemplo cuando un autor envia un articulo le debe llegar un mensaje de confirmaciona el y a el editor, eso ahora no esta funcionando, sabes que puede ser?

    1. Hola amigo, espero aun poder ayudarte, checa el concfig.ini, escribe el correo el que quieres responder, pero no le pongas logout, porque muchas veces, ese es el fallo.

      Escribe a mi correo arevalo_503@hotmail.com

  13. Hola Felipe, tengo dosproblemas, a ver si me puedes ayudar…

    Primero:

    Queremos
    lograr un login en OJS con cuentas de correo de un dominio institucional, no cuentas comerciales (hotmail…gmail), haciendo uso del modo de autenticación LDAP integrado con el Active Directory de Microsoft, para poder utilizar las mismas contraseñas e información de la cuenta de correo institucional para poder hacer login en OJS.

    Cuando realizamos el edit del usuario con la cuenta de correo institucional y activamos el modo de autenticación LDAP, este no funciona, no hace match y no toma la información de las contraseñas del Microsoft Active Directory.

    Loque queremos lograr es que el password del correo institucional sea el mismo pasword
    en el OJS, con el uso de la opción LDAP. No sabemos dónde puede estar el problema.

    Segundo:

    Hicimos
    los settings correctos para recibir notificaciones automáticas y no automáticas de email provenientes del OJS a cuentas de correo institucional y comercial, pero no estamos recibiendo notificaciones.

    Cuál puede ser el problema que tenemos? Problemas de Settings?

    Agradezco la ayuda que me puedas brindar.

    Saludos Walt.

  14. quiero hacer una consulta, yo tengo instado ojs en un servidor remoto, pero ahora e cambiado de hosting, pero no se como migrar mi ojs al nuevo hosting para no perder toda la informacion. si alquien puede ayudarme. agradere mucho

    1. Hola luis, el procedimiento específico va a depender de las características del servidor, pero lo fundamental es que puedas hacer un respaldo de todos los archivos del sitio y de la base de datos que estás utilizando. En el servidor destino debes copiar los archivos del respaldo, configurar el VirtualHost con la ruta que corresponde, y finalmente importar el respaldo de la base de datos. Puedes modificar tu archivo “hosts” para previsualizar que todo esté ok antes de modificar el dominio con que accedes al sitio; una vez que puedas verificar eso haces el cambio de configuración en el dominio y listo.

  15. Hola Felipe soy nuevo en la implementación del OJS, y hay algunos problemas que se han estado presentando, uno de ellos es que no me esta dejando subir imagenes y tampoco eliminarlas, tengo una revista a la cual le quiero cambiar la vista en miniatura y no me lo permite, agradezco si me puedes ayudar

Comments are closed.

%d bloggers like this: