Hola
Estamos con la versión 2.9.3 de g3w.
Estoy intentando personalizar los datos censales.
Quiero agregar un nuevo campo en el array $def.
Para ello intento personalizar la clase definicion_datos_censales dentro del directorio de las personalizaciones y extenderla de la original. Peor no me funciona…
class definicion_datos_censales extends \siu\conf\definicion_datos_censales
¿esta subida al COLAB la personalización para poder verla?
Para mi esta pasando lo siguiente:
Todos los formularios de Censo heredan de src/siu/operaciones/censo/_forms/form_comun.php. Ej: src/siu/operaciones/censo/_forms/form_principales.php
class form_principales extends form_comun
form_comun esta usando directamente la clase definicion_datos_censales dentro de la función crear_elementos, es decir ignora si hay personalizaciones.
Solución:
Personalizar src/siu/operaciones/censo/_forms/form_comun.php y en lugar de usar la clase definicion_datos_censales del SIU usa la personalizada, solamente deberías personalizar la función crear_elementos.
Hola
Gracias por la respuesta.
El punto es que cómo puedo “personalizar” los campos obligatorios desde ahí?
Veo que están definidos en src/siu/conf/definicion_datos_censales.php
Necesito que algunos que no son obligatorios, lo comiencen a ser.
Gracias!
Hice una prueba y no esta tomando lo personalizado porque directamente hace uso de la clase siu\conf\definicion_datos_censales.
Vas a tener que cambiar en los siguientes archivos para que tome los cambios:
src/siu/operaciones/censo/_forms/form_comun.php: Cambiar use siu\conf\definicion_datos_censales; por use nombre_pers\conf\definicion_datos_censales;
src/siu/modelo/transacciones/datos_censales.php: Cambiar use siu\conf\definicion_datos_censales; por use nombre_pers\conf\definicion_datos_censales;, también cambiar use siu\conf; por use nombre_pers\conf;
Con eso debería tomar la clase definicion_datos_censales personalizada (dentro del namespace nombre_pers\conf).
Esos cambios que mencionás, lo debería hacer dentro del mismo directorio de /src/siu ?
Intenté replicar dentro de mi directorio de personalizaciones lo siguiente:
<?php
namespace nombre_pers\operaciones\censo\_forms;
use siu\extension_kernel\form as form_base;
use kernel\kernel;
use siu\operaciones\censo\modelo;
use siu\modelo\datos\catalogo;
//use siu\conf\definicion_datos_censales;
use nombre_pers\conf\definicion_datos_censales;
use siu\conf\datos_comunes;
abstract class form_comun extends \siu\operaciones\censo\_forms\form_comun
{
}
y
<?php
namespace nombre_pers\modelo\transacciones;
use kernel\kernel;
use siu\modelo\datos\catalogo;
use siu\errores;
//use siu\conf;
use nombre_pers\conf;
use kernel\util\validador;
//use siu\conf\definicion_datos_censales;
use nombre_pers\conf\definicion_datos_censales;
use siu\conf\definicion_datos_censales_docente;
use kernel\error_kernel_db;
use siu\guarani;
class datos_censales extends \siu\modelo\transacciones\datos_censales
{
}
Junto con la clase definicion_datos_censales personalizada (dentro del namespace nombre_pers\conf), pero sigue sin tomarla…
Vas a tener que personalizar como te puse en la Respuesta #4.
Luego para que tome la personalización vas a tener que tocar las clases del SIU (quedo mal hecha esa parte), vas a tener que hacer lo que te puse en la Respuesta #6.
Esos cambios que mencionás, lo debería hacer dentro del mismo directorio de /src/siu ?