Estas aquí:   Inicio Joomla! Tuneando el plugin GeSHi en Joomla para ver códigos

Tutorial - Instalando Joomla desde cero

News image

IntroducciónComienzo aquí otro tutorial, esta vez sobre cómo instalar Joomla en nuestro servidor desde cero. Cuando lo termine estará disponible en versión PDF en la sección descargas. La idea es ayudar ...

Cómo Instalar el Widget de Twitter en Joomla

Es sabido que los editores de texto que trae Joomla necesitan ciertas configuraciones especiales para poder incorporar contenido en código. Hay veces en que no queremos modificar estas configuraciones para ...

Plugin jmsallfib v1.0.25

Recientemente actualizado, les presento este plugin para Joomla v1.5 nativo que nos permite crear un repositorio de archivos dentro de un artículo. Si, parece una cosa de locos pero funciona así. ...

Template Manager Plus v0.1 para Joomla 1.5

Si bien podríamos decir que este componente está en pleno camino hacia un desarrollo más completo dado su número de versión, creo que vale la pena dar un pantallazo al ...

FCK Editor en Joomla y con Google Maps

Muchas veces queremos darle a los editores o autores de nuestro sitio web el mayor confort de trabajo posible, darle las mejores herramientas que existen para que su tarea sea ...

Ja Teline III - 2ra Parte: Frontpage - Cabecera

News image

Vamos a ver cómo se conforma el frontpage de esta gran plantilla empezando por su cabecera, header, parte superior o como quieran llamarle. Me refiero a la sección que abarca ...

Ja Teline III - 3ra Parte: Ja News FP

News image

El módulo Ja News Front Page es aquel que nos permite destacar ciertos titulares en la página principal y puede tener varias apariencias según lo configuremos, inclusive podemos retocar el ...

Módulo News Sticker para Joomla

Este módulo para Joomla 1.0 que funciona en Joomla 1.5 con legacy activado, presenta articulos de una categoría determinada mediante un scroll con botón de inicio y stop. Pueden ver ...

Ja Teline III - 1ra Parte: Configuración

News image

La plantilla JA Teline III de Joomla Art es una de las mejores que existen para crear diarios y/o revistas digitales y una de las que ostenta el título de ...

Joomla: Agregar campo Países en formulario CB

News image

Esto es, cómo insertar un campo "Países" en el formulario de registro de usuarios de Community Builder con un menú descolgable que incluya todos los países del mundo y no ...

Ventajas y desventajas de Adobe Flash

{jcomments lock}Escribo este artículo en respuesta a la solicitud de un cliente y para que todo aquel interesado en el tema tenga en cuenta ciertos aspectos del desarrollo web ...

Flexicontent v1.5.2 en español

News image

Flexicontent es un componente que reemplaza el administrador de contenidos de Joomla! por uno más «flexible» y lleno de características. Esto quiere decir que, una vez instalado el programa, las ...

Ja Teline III - 5ta Parte: Ja Tabs

News image

El módulo JA Tabs de JA Teline es el que nos permite "armar" grupos de fichas para mostrar módulos o contenidos en una posición de la plantilla. Es una forma ...

T2D Ajax Preview - Módulo para Joomla

News image

Ayer fue publicada esta nueva extensión para Joomla 1.5 y ni bien la probé me gustó muchísimo. Se trata de un módulo que nos permite presentar miniaturas de imágenes que ...

Módulo JU News Ultra v1.4 - Nueva versión

Me gusta seguir la evolución de las extensiones, sobre todo de aquellas que me produjeron un cierto impacto a la hora de probarlas o usarlas. Ya sea por sus buenas ...

Feb
15
2010
Tuneando el plugin GeSHi en Joomla para ver códigos PDF Imprimir Correo Hits! 2219
(0 votos, media 0 de 5)
Tux Merlín : Buru

Escrito por Tux Merlín : Buru en Joomla!, Software para Joomla!


Share

Uno de los plugins poco conocidos, o mejor dicho, poco utilizados, es GeSHi. Se trata de una extensión que se instala normalmente con Joomla! y que permite compartir o mostrar códigos de algunos lenguajes en los artículos. Hace unos días publiqué una breve descripción en las FAQs.

Para su funcionamiento GeSHi no utiliza llaves o corchetes como otros plugins como por ejemplo DAvatar, sino que se vale de la etiqueta HTML llamada <pre> de "preformateo". Esta etiqueta, en un HTML normal haría que el texto puesto dentro se vea con una fuente de ancho fijo, generalmente Courier New.

Aunque GeSHi funciona muy bien con algunos editores, no ocurre lo mismo con TinyMCE, el que trae por defecto Joomla!. Esto ocurre debido a que el editor mencionado codifica las entidades HTML y por lo tanto convierte al plugin en inservible. A continuación vamos a ver un breve tutorial para cambiar ciertas parte del código de este plugin de manera que funcione en TinyMCE.

La idea básica es reemplazar el disparador (trigger), es decir, la etiqueta pre por otra que utilice llaves, y también, darle un estilo personalizado a la vista de los códigos mediante maquetación CSS. El disparador del plugin será {geshi xml:lenguaje}{/geshi}

Primer Paso:
Vamos a modificar el archivo del plugin llamado "geshi. php" para que responda al nuevo disparador. Dicho archivo está ubicado en "raízJoomla//plugins/content/".
A partir de la línea 26 veremos el siguiente código:

// simple performance check to determine whether bot should process further
    if ( JString::strpos( $row->text, 'pre>' ) === false ) {
        return true;
    }
    // Get Plugin info
     $plugin =& JPluginHelper::getPlugin('content', 'geshi');
    // define the regular expression for the bot
    $regex = "#<pre xml:\s*(.*?)>(.*?)</pre>#s";

Lo vamos a reemplazar por este:

// simple performance check to determine whether bot should process further
    if ( JString::strpos( $row->text, 'geshi' ) === false ) {
        return true;
    }
    // Get Plugin info
     $plugin =& JPluginHelper::getPlugin('content', 'geshi');
    // define the regular expression for the bot
   $regex = "#{geshi \s*(.*?)}(.*?){/geshi}#s";

Segundo Paso:
A continuación vamos a hacer que GeSHi utilice etiquetas DIV en lugar de PRE, también pueden utilizar NONE (de párrafo).
Abrimos el archivo "geshi.php" pero el que está ubicado en "raízJoomla/libraries/geshi/" y nos vamos a la línea 226 y veremos este código:

 var $header_type = GESHI_HEADER_PRE;

y lo cambiamos por este:

 var $header_type =  GESHI_HEADER_DIV;

Tercer paso:
Lo que sigue es darle estilo CSS a la muestra de código. Para eso nos vamos al archivo "general.css" ubicado en "raízJoomla/templates/system/css" y agregaremos la siguientes líneas:

 .php {
margin: 2px 0px 2px 0px;
padding: 10px 10px 10px 10px;
border: 1px dotted #aab4be;
border-left: 20px solid #b4b4b4;
background: #f4f5f6;
font-size: 90%;
overflow: auto;
width: 400px;
white-space: nowrap;
}

Estos serían los estilos para PHP, podemos crear una clase para cada estilo, pero hay una solución mejor. Vamos a hacer que tome siempre el mismo estilo para cualquier lenguaje.

Opcional Cuarto Paso:
Nos vamos al archivo "geshi.php" ubicado en "raízJoomla/libraries/geshi/" y ubicamos la línea 344. Allí veremos el siguiente código:

var $overall_id = '';

Lo reemplazmos por este:

var $overall_id = 'geshiID';

En el archivo de estilo nombrado en el tercer paso cambiamos la invocación de la clase, es decir:
cambiamos ".php" por "div#geshiID"

Una vez que hemos relizado todo los cambios, la forma de utilizar el plugin será, por ejemplo para PHP:

{geshi xml:php}aquí poner el código php{/geshi}

Para finalizar, recordemos que con GeSHi solo podemos poner códigos de: PHP, CSS, Javascript, SQL, MySQL, XML, INI y Diff.


 

Regístrese para dejar comentarios

Más artículos relacionados :

» El módulo chrome en Joomla

{definitionbot=disable}No he podido continuar con el tutorial CSS Joomla a Fondo debido a que estoy con muchos desarrollos en marcha y mi tiempo es escaso. No obstante ello y a manera de anticipo, les dejo este minitutorial respecto al módulo...

» Componente Canteen v1 para Joomla Nativo

Luego de varios días sin publicar nada en el sitio regreso en una "escapadita" de mi tiempo para presentar esta extensión Joomla que me ha gustado muchísimo por su originalidad en la prestación que brinda puesto que es la primera que veo...

» Módulo Latest Google Blogger Posts

En primer lugar quiero comentarles que me encuentro trabajando en varios proyectos de extensiones para Joomla por lo que mi tiempo es cada vez más escaso. Seguramente se darán cuenta que no he agregado nuevos contenidos y que demoro en contestar...

» Moset Tree Classified Plugin by Tux Merlín

He decidido liberar este nuevo plugin para Moset Tree que venía desarrollando hace algunos meses y que por falta de tiempo no podía terminarlo.El módulo anterior, Moset Tree Top Listing CSS, está publicado en JED pero aún no me lo autorizan, y...

» Ja Teline III - 6ta Parte: Plugin Ja Popup

A raíz de una consulta en el foro explico cómo se utiliza el plugin JA Popup que se instala con la plantilla y que está basado en varios frameworks jQuery.El plugin soporta unos cuantos tipos de contenidos y lo que hace básicamente es cargar los...

Joomla-GNU en Facebook

Visitas: 32 │ Totales: 123069 │ Hits: 519066

joomla-gnu.com not affiliated with or endorsed by Open Source Matters or the Joomla! Project.
The Joomla!, logo and name is used under a limited license from Open Source Matters in the United States and other countries.