Plugins en los foros: ¿Van por buen camino?

Beware: This post was published 8 years ago and its content may be outdated.

AddOns y Plugins, esos pequeños añadidos que ponemos en nuestros foros y que nos permiten tener nuevas funciones que no estaban por defecto en el foro. Algunos son más útiles y otros lo son menos, pero es cierto que prácticamente todos los foros usan algún que otro Plugin.

Los sistemas de foros gratuitos más conocidos (por ejemplo, phpBB y Simple Machines Forum) utilizan métodos similares para instalar los Plugins. El método que utilizan consiste en buscar un trozo de código en un archivo y reemplazarlo por otro. En phpBB esto se hace de forma manual (excepto utilizando otro Plugin) mientras que en SMF se hace de forma automática. Pero, ¿es esta una buena forma de instalar Plugins?

Bueno, ciertamente no es un método de instalar Plugins, sinó que es la forma de interactuar los Plugins con el foro. En este caso, no interactuan demasiado, modifican el código del foro y listo, nueva función añadida.

Puede que a simple vista parezca un buen método, pero si lo pensamos un poco veremos un gran problema: El código cambia y lo que en la versión 1.0 está en la línea 5 o tiene un aspecto A, en la versión 1.1 estará en la línea N y tendrá un aspecto totalmente diferente. Es decir, que la compatibilidad entre versiones no será más que casualidad.

Por otro lado, el segundo problema es que cuando actualizas la versión del foro eliminas los Plugins. Si un Plugin modifica el archivo a.php, y la siguiente versión incluye un nuevo archivo a.php, las modificaciones que hace el plugin se van al garete. Ambos problemas no se ven durante un primer uso del foro, sinó que van apareciendo cuando actualizas el foro.

Y bien, ¿entonces qué método usamos? Nosotros (los usuarios de los diversos sistemas de foros) no podemos hacer nada, son los desarrolladores de los foros los que quienen que hacer las modificaciones pertinentes en la forma de interactuar entre el foro y los Plugins.

¿Y qué método deberían incorporar? A mí el método que más me gusta es el que usa WordPress (y supongo que también bbPress, el sistema de foros creado por los mismos desarrolladores que el famoso sistema de gestión de blogs). Consiste en añadir filtros y acciones en diferentes puntos del foro. Los desarrolladores definen una serie de puntos en el foro, por ejemplo, el punto forumlistheader podría ser la cabecera del listado de foros (obviamente estoy hablando de Plugins que modifican el código interno del foro, no el aspecto, ése es un tema diferente), donde podríamos añadir un filtro que mostrase un recuento de todos las categorías que hay en el foro.

Este método permite una mayor compatibilidad entre versiones, ya que el punto forumlistheader lo definen los desarrolladores del foro y si en una versión se modifica el archivo donde está el punto forumlistheader, pueden recolocarlo en un lugar donde permite hacer las mismas cosas que antes.

También nos asegura que el Plugin no se borrará al actualizar, ya que éste añadirá filtros y acciones a los diversos puntos sin modificar el archivo original. En este método es el propio foro el que se encarga de buscar y añadir de forma dinámica y “sobre la marcha” las funciones correspondientes en los diversos puntos del foro. Así además se puede desinstalar un Plugin eliminando sólo el archivo que le corresponde, sin tener que deshacer las modificaciones que habría realizado en los archivos si hubiésemos usado el otro método.

Pero este método también nos permite tener interacción entre diversos Plugins. El programador de un Plugin puede añadir puntos en sus Plugins para que más adelante otro programador pueda usar el sistema de filtros y acciones con su Plugin y pueda crear añadidos para sus Plugins. Podría, por ejemplo, crear un Plugin para añadir vídeos en los mensajes del foro y un añadido para este plugin que permite insertar vídeos de Youtube.