Writing your Plugin

Writing a plugin is one of the most easier tasks in Jaws.

If you have already read ‘What is a Plugin?’ you will know that there are two types of plugins: friendly and non-friendly.

Properties of a Plugin

There are five properties that your plugin must have. These are:

  • Name: Name of your plugin. Will be used in the ControlPanel. This one is required
  • Description: Description of your plugin. Will be used in the ControlPanel. This one is required
  • Example: How does your plugin works. This one is option, but I suggest you to write it.
  • Friendly: A flag that determinates if your plugin is Friendly or non-Friendly. By Default your plugin will be Friendly.
  • Version: Version of your plugin.

Although, EVERY plugin you write, must inherits from JawsPlugin, for example:

  class MyPlugin extends JawsPlugin

Translation support in your plugin

As you must know, Jaws tries to support multiple Languages and if you want your plugin to be official (inclued in an official release) you must load the translation in your gadget, how?. Easy. In your plugin constructor you must load it:

  function MyPlugin ()
  {
    $this->LoadTranslation ();
    $this->_Name = "MyPlugin";
    $this->_Description = "My Plugin";
    $this->_Friendly = true;
    $this->_Version = 0.3;
    $this->_Example = "[myplugin]hello[/myplugin]";
  }

How to Parse the Text?

In order to parse the input text, you should declare a method called: ParseText that will receive JUST one arg.

In this method you do the stuff of parsing the text or play around with your regexp’s. However, you should return the NEW HTML.

In the example below we replace any word that matches ‘Jaws’ with ‘The Best’ and return the new HTML.

  function ParseText($html)
  {
       $newHTML = str_replace ("Jaws", "The Best", $html);
       return $newHTML;
  }

If you want more examples, feel free to read our official Plugins.

Adding a WebControl

In case that your plugin is Friendly, you should add a WebControl. The webcontrol is the one that will be used in the Jaws Editor API.

Enabling your Plugin

In order to enable your plugin you should add these lines to your Database.

 INSERT INTO registry (name,value) VALUES ('/plugins/parse_text/YourPluginName/enabled','true');
 INSERT INTO registry (name,value) VALUES ('/plugins/parse_text/YourPluginName/use_in','blog,phoo,glossary');

And edit /plugins/parse_text/enabled_items to include your plugin’s name in the registry editor.

Just replace the text YourPluginName with your plugin’s name :-).

An Example

Ok, so, you want a little example:

  class MyPlugin extends JawsPlugin
  {
 
    function MyPlugin ()
    {
         $this->LoadTranslation ();
         $this->_Name = "MyPlugin";
         $this->_Description = "My Plugin";
         $this->_Friendly = true;
         $this->_Version = 0.3;
         $this->_Example = "[myplugin]hello[/myplugin]";
    }
 
    function ParseText($html)
    {
         $newHTML = str_replace ("Jaws", "The Best", $html);
         return $newHTML;
    }
 
  }

Como escribir un plugin.

Traduccion al español por JAHS

Escribiendo un Plugin

Escribir un plugin es una de las tareas mas fáciles que existen en Jaws. Si Ud. ya leyó “Que es un plugin?” se habrá dado cuenta que existen dos tipos de Plugins: amigables y no amigables.

Propiedades de un Plugin

Existen cinco propiedades que un plugin debe tener. Estas son:

  • Nombre: Nombre de su plugin. Será usado en el Panel de Control. Esta propiedad es obligatoria.
  • Descripción: Descripción del plugin. Será usada en el Panel de Control. Esta propiedad es obligatoria.
  • Ejemplo: Como trabajara su plugin. Esta propiedad es opcional, pero le sugerimos incluirla.
  • Amigable: Una bandera que determina si su plugin es o no amigable. Por default se usara amigable.
  • Versión: Versión del plugin

.

Además, CADA plugin que escriba deberá ser heredado de JawsPlugin, por ejemplo:

        class MyPlugin extends JawsPlugin

Soporte de traducción en su plugin

Como ya sabrá, Jaws trata de soportar multilenguajes, si UD. desea que su plugin sea oficial (Incluido en un release oficial) deberá cargar la función de traducción en su gadget, ¿Como?. Fácil, Cárguelo en el constructor del plugin:

  function MyPlugin ()
  {
    $this->LoadTranslation ();
    $this->_Name = "MyPlugin";
    $this->_Description = "My Plugin";
    $this->_Friendly = true;
    $this->_Version = 0.3;
    $this->_Example = "[myplugin]hello[/myplugin]";
  }

¿Como analizar texto?

Para poder analizar texto de entrada, deberá declarar un método llamado: ParseText que deberá recibir SOLO UN argumento. En este método se realizara el análisis del texto, o jugar con expresiones regulares. Sea uno u otro caso, deberá regresa el NUEVO HTML.

En el siguiente ejemplo, remplazamos cualquier palabra que coincida con ‘Jaws’ por ‘The Best’ y regresamos el nuevo HTML:

  function ParseText($html)
  {
       $newHTML = str_replace ("Jaws", "The Best", $html);
       return $newHTML;
  }

Si desea más ejemplos, siéntase libre de leer nuestros Plugins oficiales.

Agregando un WebControl

En el caso de que su plugin sea amigable, debería agregar un WebControl. El webcontrol será el que se use en el Editor de API de JAWS.

Habilitando su Plugin

Para habilitar su plugin deberá ejecutar las siguientes sentencias a su base de datos.

 INSERT INTO registry (name,value) VALUES('/plugins/parse_text/YourPluginName/enabled','true');
 INSERT INTO registry (name,value) VALUES('/plugins/parse_text/YourPluginName/use_in','blog,phoo,glossary');

Y editar /plugins/parse_text/enabled_items para incluir el nombre de su plugin en el editor de registro. Solo remplace el texto YourPluginName por el nombre de su plugin.

Un ejemplo

Ok, vamos a ver un pequeño ejemplo.

  class MyPlugin extends JawsPlugin
  {
 
    function MyPlugin ()
    {
         $this->LoadTranslation ();
         $this->_Name = "MyPlugin";
         $this->_Description = "My Plugin";
         $this->_Friendly = true;
         $this->_Version = 0.3;
         $this->_Example = "[myplugin]hello[/myplugin]";
    }
 
    function ParseText($html)
    {
         $newHTML = str_replace ("Jaws", "The Best", $html);
         return $newHTML;
    }
 
  }
 
  /var/www/wiki/htdocs/data/jaws/development/plugins/howtowrite.txt · Last modified: 2007/11/02 16:27