Creo nos hemos salido un poco del tema, y para ayudar a tico74, te posteo un poco de codigo de como puede "funcionar" tu clase.
Código PHP:
/**
Pensando en una tabla asi:
idCliente - Autonumerico
RazonSocial - Texto
FechaRegistro - Date
FechaModificacion - Date
Calle - Texto
Numero - Numero
Colonia - Texto
CP - Numero
Logo - Texto
**/
$config = array(
'server' => "localhost",
'username' => "root",
'password' => '',
'database' => 'test_bd',
);
GeckoDB::setDefaultConfig( $config );
$logoFormat = new GeckoCellFormatterPicture();
$logoFormat->setPath( getcwd() . '/uploads/pictures/' );
class Clientes extends GeckoModuleManager {
protected $_table = 'clientes';
protected $_gridColumns = array(
"idCliente",
"RazonSocial",
"Logo",
);
protected $_gridColumnFormat = array(
"Logo" => $logoFormat,
);
protected function setUpForm() {
$razonSocialField = new GeckoFormFieldText();
$razonSocialField->setRequired(true);
$razonSocialField->setLength(100);
$logoField = new GeckoFormFieldPicture();
$logoField->setUploadPath( getcwd() . '/uploads/pictures/' );
$logoField->setMaxPictureSize( 100 * 1024 ); // 100 kb
$logoField->setAllowedPictureTypes( GeckoFormFieldPicture::IMG_JPG & GeckoFormFieldPicture::IMG_GIF & GeckoFormFieldPicture::IMG_PNG );
$dateField = new GeckoFormFieldDate();
$dateField->setPastEnabled(0); // No pueden seleccionar una fecha en el "pasado"
$dateField->setRequired(true);
$cpField = new GeckoFormFieldNumber();
$cpField->setLength( 6 );
$fields = array(
"RazonSocial" => $razonSocialField,
"Logo" => $logoField,
"FechaRegistro" => $fechaField,
"CP" => $cpField,
"Numero" => null, // Los pasamos como null para que "dibujen" un campo de texto normal.
"Calle" => null,
"Colonia" => null,
);
$this->setFormFields( $fields );
}
protected function onUpdate( $fields ) {
$fields['FechaModificacion'] = date( "Y-m-d" );
return parent::onUpdate($fields);
}
}
$clientes = new Clientes(); // Construimos una instancia del modulo
echo $clientes; // esto llama a __toString() que "dibuja" la salida, ya sea el grid, o un formulario. etc.