Inglés

Manual del desarrollador

Clases, propiedades y métodos mínimos

Table

Métodos de clase

init()
show_table()
setup()
create()

Ejemplo:

Table::init(); Table::show_table('INVOICES');

Cada tabla necesita un archivo TABLE_<tablename>.php que contendrá la definición de un objeto Table y su lista de campos (objetos tipo Field) y opcionalmente, un objeto de la clase defaultTableEvents asignado a su propiedad events.
Si la tabla ya existe el archivo será creado automáticamente.
Si no hay permisos de escritura se mostrará el código en el navegador para que podamos copiarlo y guardarlo
Si la tabla no existe se creará automáticamente.
Una vez exista el archivo podemos modificarlo, añadirle campos, modificarlos, etrc, sin problema. cada vez que se cambio a la estructura se deberá actualizar ésta con el método setup() del objeto Table.

Propiedades

tablename    // table name
cols         // Array of Field objects
events       // Instancia de la clase defaultTableEvents
page
page_num_items

Ejemplo de un archivo llamado TABLE_INVOICES.php

//ARCHIVO TABLE_INVOICES.php $id            = new Field(); $id->type      = 'int'; $id->len       = 5; $id->fieldname = 'ID'; $id->label     = 'Id';   $name = new Field(); $name->fieldname = 'NAME'; $name->label     = 'Nombre';    $name->type      = 'varchar'; $name->len       = 100; $name->editable  = true; $tabla = new TableMysql('INVOICES'); $tabla->title = 'Facturas'; $tabla->page = $page; $tabla->addCol($id); $tabla->addCol($name);

Ejemplo de sintaxis alternativa, usando el método addCols

//ARCHIVO TABLE_PRICES.php $products = [ 'PROD_01' => 'Bicicleta' , 'PROD_02' => 'Manga pastelera' , 'PROD_03' => 'Churro multicolor' ]; $tabla = new TableMysql( 'PRICES' ); $tabla->addCols([ $tabla->field( 'ID', 'int' )->len( 5)->editable(false)->hide(true), $tabla->field( 'FECHA', 'date' )->len(100)->required(true)->filtrable(true)->searchable(true), $tabla->field( 'PRODUCT', 'select' )->len( 10)->required(true)->searchable(true)->values($products), $tabla->field( 'AMOUNT', 'decimal' )->len( 10)->precission(3)->required(true) ]); $tabla->page = $page; $tabla->orderby = 'ID DESC';

En éste ejemplo, la variable products podría ser un array con valores leídos de una presunta tabla de productos
En los archivos TABLE_<tablename>.php  no se usa directamente la clase table sino alguna de sus descendientes TableMysql, TableSQLite, TableOracle o TableSQL

Field

Propiedades

type
len
fieldname
label
editable
filtrable
searchable
values
values_all

Ejemplos con fechas

// Modificar campo tipo date con sql $sql_add_yaer_to_fiald_date = "UPDATE TBNAME SET FDATE = DATE_ADD(FDATE, INTERVAL 1 YEAR) WHERE ....."; if($this->sql_exec($sql_add_yaer_to_fiald_date)) ...
// Modificar campo tipo date con PHP // Añadir un mes a fecha actual $fecha_1m = DateTime::createFromFormat('d/m/Y',date('d/m/Y'))->add(new DateInterval('P1M')); $fecha_str_1m = $fecha_1m->format('d/m/Y'); // Añadir 15 días a fecha actual $fecha_15d = DateTime::createFromFormat('d/m/Y',date('d/m/Y'))->add(new DateInterval('P15D')); $fecha_str_15d = $fecha_15d->format('d/m/Y'); // Añadir un año a fecha actual $fecha_1y = DateTime::createFromFormat('d/m/Y',date('d/m/Y'))->add(new DateInterval('P1Y')); $fecha_str_1y = $fecha_1y->format('Y'); // 1 de enero de siguiente año $fecha_str_31e = '31/01/'.$fecha_str_1y; $sql = "UPDATE tbname SET fdate='{$fecha_str_?}' WHERE .....";

Campo dblookup

Campo tipo select que obtiene los valores de otra tabla.

Ejemplo:

$type = new Field(); $type->fieldname = 'TYPE_ID'; $type->label = 'Tipo'; $type->type = 'select'; $type->len = 5; $type->values = $tabla->toarray('types', "SELECT ID, NAME FROM TB_TYPES WHERE ACTIVE=1 ORDER BY ID",true); $type->values_all = $tabla->toarray('types_all', "SELECT ID, NAME FROM TB_TYPES ORDER BY ID",true);

La propiedad values contendrá los valores que se mostrarán en el select. La propiedad values_all contendrá todos los valores entre lo que alguna vez se haya podido elegir. Porque habrá valores que se deban mostrar pero ya no sean seleccionables, por ejemplo, por estar inactivos, desactivados, sin stock, etc.
Los campos de la otra tabla deberán llamarse ID y NAME, o en el select ponerle AS ID y/o AS NAME, por ejemplo: "SELECT user_id AS ID, user_name AS NAME WHERE ...."

Campo lookup

Como dblookup pero en lugar de otra tabla usa un array. Ejemplo:

$pri = new Field(); $pri->fieldname = 'PRIORITY'; $pri->label = 'Prioridad'; $pri->type = 'select'; $pri->len = 5; $pri->values = [ 1=>'Baja', 2=>'Normal', 3=>'Alta' ];

Form

Clases

fieldset
FORM
formElement     // abstract. No puede ser instanciada directamente
formElementHtml
formInput
formInputProgress
formTextarea
formInputCCC    // deprecated
formSubmit
formButton
formHidden
formInputColor
formInputDate
formInputDateTime
formInputTime
formSelect
formSelectDb
formCheckbox
formRadio       // work in progress
formFile2       // old FormFile
formFile        // new input file with drang&drop, crop, etc. (work in progress)

Estas clases no necesitan ser usadas para un uso básico. La clase Table las crea dinámicamente según se necesiten.

Events

Se puede declarar una instancia de la clase defaultTableEvents y asignarla a la propiedad events de un objeto Table.
Estos son los métodos que se pueden implementar. Nótese que hay dos clases de eventos, los que permiten salida por pantalla y los que no. En los primeros se puede escribir código html, javascript, etc. y son aquellos cuyo nombre contiene Show o Print.


OnBeforeShow($owner)    
OnShow($owner) 
OnAfterShow($owner) 

OnDrawColTitle($owner,&$col) 
OnDrawRow($owner,&$row,&$class)
OnAfterDrawRow($owner,&$row,&$markup)
OnDrawCell($owner,&$row,&$col,&$cell)
OnCalculate($owner,&$row)

OnBeforeInsert($owner)
OnInsert($owner,&$result,&$post)
OnAfterInsert($owner,&$result,&$post)

OnBeforeUpdate($owner,$id)
OnUpdate($owner,&$result,&$post)
OnAfterUpdate($owner,&$result,&$post)

OnPostCol($owner,&$result,&$col,&$value)

OnDelete($owner,&$result,$id)
OnAfterDelete($owner,&$result)

OnFilter($owner,&$result,&$post)

OnBeforeShowForm($owner,&$form,$id) 
OnAfterShowForm($owner,&$form,$id) 

OnBeforeShowDetail($owner,&$row)    // deprecated *

OnBeforeSaveFile($owner,&$col,$filename,&$result )
OnSaveFile($owner,&$col,$file,$result)
OnAfterSaveFile($owner,&$col, $localfilename, &$result )

OnBeforePrint($owner, $template, $id)                   
OnPrint($owner, $template, $_item_tags, $_item_values)
OnBeforePrintDetail($owner, $template)  
OnPrintDetail($owner, $template, &$names, &$values)
OnAfterPrintDetail($owner, $template)
OnAfterPrint($owner, $template);

OnAfterCreate($owner);

















































Ésta página utiliza cookies propias y almacenamiento local para facilitar el uso de nuestra web. Si continua navegando, supone la aceptación de nuestra política de cookies. Tenga en cuenta que si las desactiva no podrá utilizar nuestra tienda.