Herramientas de usuario

Herramientas del sitio


waine:doc:widgets_definidos_por_herencia

Widgets definidos por adaptación

Aunque waine dispone de una importante cantidad de widgets predefinidos, también permite a los desarrolladores la implementación de sus propios widgets. Existen dos formas para hacerlo:

  1. mediante la herencia

Cualquiera que sea el método elegido los nuevos widgets se definirán o serán incluidos en el fichero userwdg.inc

Procedimiento general para creación de widgets por herencia

El procedimiento para crear un nuevo widget utilizando la herencia consta de los siguientes pasos:

  1. Crear una nueva clase de widget heredando de una de las clases ya existentes, bien una clase básica widget, mwidget, bien de cualquier otro widget definido mediante una clase.
  2. Crear un objeto de la neva clase definida
  3. Registrar el nuevo objeto en el pool de widget disponibles.

1. Crear una nueva clase de widget heredando de una clase existente

La herencia en PHP se define empleando la palabra reservada extends. La nueva clase reescribiría los métodos necesarios de la clase padre para definir un nuevo comportamiento.

   class mleditbox extends widget
   {
       function RenderR($IN_name, $IN_value, $IN_fld, $IN_lstval)
       {
          return($this->DefaultRender($this->strh,$IN_name, $IN_value, $IN_fld, $IN_lstval).waine_mlstr($IN_value));
       }

       function RenderL($IN_name, $IN_value, $IN_fld, $IN_lstval)
       {
          return($this->DefaultRender($this->strl,$IN_name, waine_mlstr($IN_value), $IN_fld, $IN_lstval));
       }
   }

2. Crear un objeto de la nueva clase definida

Los objetos en PHP se crean empleando el operador new. Una forma simple de crear un nuevo objeto sería la siguiente:

 $newwdg=new mleditbox() ;

3. Registrar el nuevo objeto en el pool de widget disponibles

Por último queda poner a disposición del sistema el widget creado. Para ello hay que registrar el objeto creado en el pool de widgets del sistema. Esta acción se realiza con la siguiente instrucción:

$WDGPOOL->add('mleditbox',$newwdg);
waine/doc/widgets_definidos_por_herencia.txt · Última modificación: 2021/09/07 11:11 (editor externo)