Lo que el Helper hace a grandes razgos
Que hace el modelo?
El modelo hara de intermediario entre nosotros y la base de datos en todo aquello que podamos automatizar.
Para crear una nueva instancia del modelo debemos ejecutar el siguiente
código. Por ejemplo, el módulo de secciones de contenidos:
$modelo = new HelperM("mcon_","seccion",1);
Donde "mcon_" es el prefijo de las tablas del módulo "seccion" es el nombre del módulo y 1 (podria ser 0 o false) es un valor booleano que dice si tendra idiomas multiples o no.
El modelo aplica aquí la convencion sobre configuracion asumiendo las convenciones por defecto pero pudiendo configurarlas el modelo deduce:
- La tabla principal se llama mcon_seccion y todos los campos que hay alli se mostraran en el formulario
- Como excepción a la regla anterior no se mostrarán el campo llamado "id" y campos marcados como "hidden" en el formulario
- La tabla por idiomas se llamara "mcon_seccionxidioma" y todos los campos que hayan alli se mostraran en el formulario permitiendo elegir el idioma
- Como excepción a la regla anterior no se mostrarán en el formulario el campo llamado "id_sección" ni los campos marcados como "hidden"
- Al guardar se filtra el arreglo $_POST dejando solo los datos que se llamen igual a los campos de la tabla "mcon_seccion" o "mcon_seccionxidioma"
- Cada dato pasará por una validación delegando dicha tarea a la clase field de cada tipo
- Se guardarán los datos en las tablas de la bd según corresponda
- etc...
La lista de convenciones esta explicada mas a fondo en la sección sobre convenciones en el modelo
De esta forma el modelo está en conocimiento de las características del módulo y puede generar una estructura de datos para enviarle a la Vista
Podemos ver mas claro el proceso en el ejemplo de la página anterior, donde la estructura de datos que se pasa del modelo a la vista es llamada $data
$vista->setTemplate("contacto");
// Setea y prepara el template [modulo]_contacto.htm
$data = $modelo->getData();
//
Obtiene la estructura de la tabla
$data = $modelo->loadDefault($data); // Cargar valores por defecto
$vista->createForm($data);
//
Crear el formulario
$vista->parseTemplate();
// Parsear el formulario y enviarlo al navegador
Paso siguiente: Que hace la Vista?