Creación de mambots para Joomla 1.0.x

13 Mayo 2009 Publicado en Blog

Este artículo pretende explicar el funcionamiento de los Mambots de Joomla 1.0.x (Plugins a partir de Joomla 1.5)  para su posterior creación. Se recomienda tener conocimientos de PHP y HTML para leer este artículo.

¿Qué es un Mambots?

Los Mambots son aplicaciones que literalmente interceptan los ítems de contenido (documentos o ítems de componentes) antes de ser mostrados y publicados por el sistema, y le agregan información adicional o lo alteran en forma dinámica, completando así el contenido total que va a ser entregado al navegador del usuario final. Los Mambots pueden ser llamados mediante comandos especiales, o se pueden mostrar de forma predeterminada para ciertos contenidos/componentes.

Los Mambots están en el directorio /mambots. Al igual que los componentes y módulos pueden ser instalados/desinstalados, configurados y publicados desde el panel de administración de Joomla.

Desencadenadores:

En la actualidad existen 5 factores (documentados) desencadenantes para un mambots:

  • onPrepareContent
  • onSearch
  • onInitEditor
  • onGetEditorContents
  • onEditorArea

Cada evento requiere de un número y tipo de parámetros.

Ejemplo de un Mambot:

Tal como los módulos, los Mambots se componen de dos archivos básicos. Uno de ellos es el archivo .xml que nos da la configuración de la instalación, y otro es el .php que nos permite  codificar lo que hará el mambot. Cabe mencionar que para estandarizar, los archivos del mambot comienzan con “mos”.

A continuación se muestra un ejemplo de un mambot que cuenta la cantidad de palabras que tiene un contenido.

mostest.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

    WordCount
    Juan
    December 2008
    (C) 2008 Serfe. All rights reserved.
    https://www.gnu.org/copyleft/gpl.html GNU/GPL
    info@serfe.com
    www.serfe.com
    1.0.0
    Cuenta las palabras de un contenido
    
        mostest.php
    

Este archivo no tiene nada de diferente al que armamos para módulos o componentes. En “filename” se referencia al .php del propio mambot.

mostest.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
registerFunction( 'onPrepareContent', 'botMosTest' );
 
function botMosTest( $published, &$row, $mask=0, $page=0  ) {
 global $mosConfig_absolute_path;
 
 if (!$published) {
 return true;
 }
 
 if (strpos($row->text,'mostest')===false){
 return true;
 }
 
 $cant =  str_word_count($row->text);
 echo "";
 return true;
}
?>

En $_MAMBOTS->registerFunction se declara el desencadenador y la función que se llamará cuando esto suceda. $MAMBOTS no debe declararse global

La función botMosTest recibe los siguientes parámetros:

published

1 si el mambot está publicado, 0 si no.

row

Variable que referencia al objeto contenido

mask

Máscara actual, default es 0

page

Número de página actual, default es 0

Instalación:

Una vez que generamos esos 2 archivos, los comprimimos en un .zip “mostest.zip” y lo instalamos tal cual instalamos cualquier mambot dentro de Joomla.

Utilización:

Un mambot es muy fácil de utilizar: en el artículo de contenido que queremos que el mambot cuente la cantidad de palabras, incluimos lo siguiente: {mostest}, con esto automáticamente la vez que se cargue el contenido elegido, aparecerá un alert con la cantidad de palabras. Si esto NO funciona, verificar que el mambot esté activado.

Si bien, fue un ejemplo un poco tonto, nos muestra la potencialidad de los MAMBOTS, y siempre que lo mezclemos con un poco de ingenio podemos lograr cosas muy interesantes.

Serfe info(at)serfe.com https://www.serfe.com/images/serfe_logo_text.png https://www.serfe.com/images/serfe_logo_text.png FALUCHO 2032, S3016LDB, SANTO TOME, SANTA FE, ARGENTINA 1-305-5375397