Detalle de la definición de def. $def es una array asociativo que contiene la definicion de todos los parámetros de la aplicación. Listado Podemos dividir al listado en tres secciones. 1. Campos a listar 1. Para definir que columnas deben aparecer en el listado primero tenemos que pasar la sql a ejecutar. Lo hacemos con “sql_recuperacion” de la forma $def['sql_recuperacion']. 2. Es importante agregar el texto "{filtro}" en la sql a fin de poder cambiar la sql en función de las opciones que seleccione el usuario, la sentencia debe quedar como : $def['sql_recuperacion'] = ‘select * from tabla where {filtro}’; Pudiendo agregar nuestros propios filtros $def['sql_recuperacion'] = ‘select * from tabla where codigo>100 and {filtro}’; 3. Se debe tener en cuenta que no es necesario listar todos los campos de una tabla sino solo los necesarios. 4. Para definir que campos deben aparecer en el listado se usa un array asociativo que usa como clave los nombres de columnas y que define como se comportará la columna. $def[‘campos_listado’] = array(‘codigo’=>array(‘titulo’=>’Código’ ), ‘texto’=>array(‘Titulo’=>’Texto’,’transformar’=>’solo30’ ) ) ; En primer caso se usa la columna tal como sale de la base de datos, en el segundo caso se transforman los valores usando la función solo30 que debe estar definida y accesible desde el script. Otros parámetros que pueden definirse son: 1. align: define la alineacion dentro de la celda.Valores posibles: left, center o right. 2. ancho: usado para la impresion en pdf, se especifica en milímetros, ejemplo : 'ancho'=>30, también puede usarse la expresión 'max' para una única columna que usará el espacio sobrante de todas las otras. 3. transformarplus: pasa todos los valores de la fila a la funcion indicada, así podemos por ejemplo concatenar o realizar un cálculo usando estos valores. Por ejemplo: 'transformarplus'=>'preciototal'. Ver ejemplo citas_access.php . 4. transfomarv: transforma en forma automática usando un array asociativo pasado como parámetro. Por ej: 'transformarv'=>'sino' (suponiendo que la columna tenga el valor 't' y exista un array asociativo llamado $sino que tenga la clave 't' se mostrará el valor para esa clave. 2. Opciones de búsqueda que tendrá el listado 1. Se debe primero definir las columnas desde donde se podrá buscar. Para esto usamos el array def con la clave campos_busqueda, por ejemplo. $def['campos_busqueda'] = array('cita' => 'Cita', 'autor' => 'Autor') A fin de evitar ambigüedad en selects de varias tablas podemos usar tambien la tabla donde realizamos la búsqueda. Por ej: $def['campos_busqueda'] = array('citas.cita' => 'Cita', 'autores.nombre' => 'Autor') 2. Se debe especificar que aparezca el cuadro de búsquedas. $def['mostrar_menu_busqueda' ] = 1 ; 3. Orden en el listado 1. Podemos hacer que aparezca un selector de ordenamiento en el listado (este orden e aplica por sql ) 2. Definición: $def ['ordenes_listado'] se debe especificar el o los campos por los que ordenar y el texto para el selector. $def ['ordenes_listado'] 'autor'=>'Autor') ; = array('cita'=>'texto de la cita', 3. Para seleccionar el orden por default podemos usar $def['orden_default'], será seleccionado automaticamente cuando no hayamnos optado por uno. Otros parámetros importantes 1. Paginado : permite especificar cuantos registros deben aparecer por página en los listados. Uso: $v->paginado = 50 ; 2. Permisos : 1. Se permite definir que botones aparecen en el listado, los tres botones importantes son “nuevo”, “editar”,”borrar” para usarlo simplemente se debe definir el array de permisos de la forma , $v>permisos['nuevo'=>1, 'editar'=>1, 'borrar'=0 ] ; 2. Otros botón es exportación a XLS tambien con $v->permisos['xls'] = 1; Armado de los formularios de Edición Los formularios de edición de registros y registro nuevo se arman usando el array campos_edicion Es un array asociativo en donde las claves son los campos a recuperar y guardar en la tabla de la base de datos. Ejemplo básico (dos campos de texto , uno largo (que acepta multilineas) y otro corto ) . $def['campos_edicion'] = array('cita' => array('titulo' => 'Cita' , 'tipo' => 'TEXTAREA' , 'args' => ' COLS="60" ROWS="5"' , 'requerido' => 1), 'autor' => array('titulo' => 'Autor de la cita', 'tipo' => 'TEXT' , 'args' => ' size="50" maxlength="200"' , 'ayuda' => 'Autor de la cita nombre completo' , 'requerido'=>1 ) ) ; Eso se vería más o menos así Otros componentes utilizables en los formularios: 1. Calendario: se muestra un campo editable que al recibir el foco presenta el calendario javascript para seleccionar la fecha ( no usar) 2. Calendario2: se muestra un campo editable junto con un botón donde podemos acceder al calendario popup. El formato de la fecha es dd/mm/YYYY y está manejado por una máscara por lo que se puede ingresar sin las barras y el dato es verificable. 3. RADIOGROUP: presenta un grupo de radios, requiere un array con opciones para presentar ej: 'sexo'=>array('titulo'=>'Sexo', 'tipo'=>'RADIOGROUP', 'opciones'=>array('M'=>'masculino', 'F'=>'femenino'), 'defecto'=>'M' ) Con el valor por defecto podemos forzar una de las opciones para los registros nuevos o que no tengan ese valor cargado. 4. SELECT: presenta un selector simple, requiere un array con opciones para presentar ej: 'sexo'=>array('titulo'=>'Sexo', 'tipo'=>'SELECT' , 'opciones'=>array('M'=>'masculino', 'F'=>'femenino'), 'defecto'=>'M' ) 5. Numero : tipo de campo especial que acepta solo numeros (sin puntos solo del 0 al 9) usa máscara para evitar el ingreso y valida por php y javascript6. CHECKBOX: presenta un campo checkbox. Ej: 'hijos'=>array('titulo'=>'Hijos' , 'tipo'=>'CHECKBOX', 'checked'=>'1') checked es el valor que toma el campo cuando está marcado y contra el que se debe comparar desde la recuperacion de la base de datos 7. Password : se usa igual que text solo que oculta con asteriscos los caracteres ingresados.