More Paragraphs: “More” Plugin para WordPress
Publicado por Aníbal Rojas 22 Julio 2005 en PHP.The english version of this post is in More Paragraphs: A “More” Plugin for WordPress.
Este plugin para WordPress inserta un tag <!–more–> después de un número especificado de párrafos, que son configurables en el menú de opciones (Options).
Basado en la misma idea de Evermore escrito por Bennett, que inicialmente pretendí utilizar, tiene dos grandes diferencias:
- El número de parráfos a partir del que se insertará el tag <!–more–> tag es configurable en el menú de opciones, en el caso de Evermore por omisión es el primer párrafo.
- Y este plugin está escrito para manejar en forma segura contenido generado por el Plugin WYSIWYG para WordPress de MudBomb.
Para los usuarios que no tienen conocimientos de HTML es muy conveniente utilizar el plugin WYSIWYG debido a que les facilita de muchísimo el formateo del texto, manejo de links e imágenes. Pero tiene el inconveniente de que genera el XHTML de forma tal que es extremadamente difícil que estas mismas personas puedan colocar un tag <!–more–> de forma segura. Si esto no se logra, es posible romper completamente la diagramación del blog.
Por el momento el plugin puede ser descargado aquí more-paragraphs.php, en su versión 1.0-b1. Esta versión se considera experimental, y no recomiendo que se pruebe en un blog de “producción” sino en una instalación de WordPress de tipo “experimental”. Mucho les agradecería me comentaran sus experiencias.
Instrucciones para la instalación:
- Renombre el archivo de more-paragraphs.php.txt a more-paragraphs.php, eliminando el “.txt” final.
- Copie el archivo en el direcotrio wp-content/plugins
- Vaya al menú de plugins de WordPress y actívelo.
- Opcionalmente puede ir al menú de Opciones (Options), seleccionar la pestaña (tab) “More Paragraphs” y especificar el número de párrafos a partir del que se insertará el tag <!–more–>, que por omisión es 3.
Requerimientos:
- WordPress 1.5.x
Restricciones para esta versión:
- Ignorará la existencia de un tag <!–more–> preexistente.
Planes para desarrollo futuro:
- Considerar la existencia de un tag <!–more–> preexistente, en caso de que esté ubicado dentro del rango de párrafos especificado en las opciones se dejará el contenido sin modificaciones.
- Permitir que el autor especifique el número de párrafos para un post determinado, mediante el uso custom fields. Opcionalmente verificar si el número de párrafos es menor que el especificado a nivel global para el plugin, lo que sería conveniente para blogs con múltiples autores.
- Si es imposible añadir el tag <!–more–> tag debido a la estructura de bloques del XHTML, entonces eliminar estos tags y trabajar con el texto “limpio” para buscar los sitios adecuados. Sería deseable conservar cualquier tag de formateo “en línea”.
Comentarios para desarrolladores:
El plugin no pretende ser un ejemplo de programación en PHP, ni de programación de plugins de WordPress, cualquier sugerencia con respecto al código será agradecida. Y si alguien puede promover un movimiento para que la función strpos de PHP no tenga una especificación tan absurda en cuanto a su valor de retorno me hará inmensamente feliz.
El algorimo básico de procesamiento es el siguiente: Primero se utiliza un expresión regular para encontrar los tags que definen bloques en XHTML, por ejemplo <div> y </div> (la lista completa está en XHTML 1.0 Block-Level Elements), posteriormente se utiliza una pila para “apilar” los tags de apertura y “desapilar” los tags de cierre, un algoritmo clásico de match de llaves (bloques).
Cada vez que se cierra un bloque se incrementa el contador de párrafos, es decir un <p>, <div> y un <ul> son todos considerados párrafos ¿Cómo saber que es seguro insertar el <!–more–>? Sencillo, porque además de que el contador llegó al número de bloques configurados, la pila debe estar vacía.
Adicionalmente hay algún manejo asociado a los caracteres de nuevas-líneas (new line), ya que estos editores JavaScript generan cualquier cosa. Si los usuarios recortan desde una página web, u otro documento y lo pegan en el área de edición, es espantoso.
¿Qué falta? Mudar el desarrollo a http://dev.wp-plugins.org/ para hacer un desarrollo “serio”, y sobre todo formalizar mis tests. Para lo que probablemente use http://www.lastcraft.com/simple_test.php aunque no estoy seguro.
Este plugin está licenciado bajo la GNU General Public License, es decir lo usan a su cuenta y riesgo, pueden hacer con él lo que les dé la gana, y de pana y todo hagan la acreditación correspondiente si es pertinente.
No se puede bajar el plugin.. link roto
Hola,
Por algún motivo no funciona el link para bajar el plugin, ¿está disponible en algún otro lugar?
Sldos