Hola!
Necesito agregar una nueva sección en uno de los formularios de preinscripción 3.4.0. Pude hacerlo agregando los campos y la sección además de en el manejador de datos, en la plantilla y en el formulario, en siu\operaciones_comun\util_form. Pero si extiendo esa clase para personalizarla no utiliza el archivo personalizado (si lo hago en la original todo funciona como espero). Imagino que tendría que redefinir la llamada de esa clase al namespace de mis personalizaciones, pero no logro encontrar donde se hace esa llamada.
El problema es que está implementado como un servicio estático, por lo tanto por ahora también hay que personalizar la clase consumidora. En próximas versiones lo reemplazaremos por instanciaciones mediante el patrón singleton, para permitir personalizar más fácilmente esos casos. Para más información podés ver este otro post, donde se trata un caso similar.
Hola Fernando!
El tema es que la clase consumidora es ella misma, yo necesito modificar el metodo get_campos_secciones, el cual se usa en la siguiente funcion:
static function get_campos_seccion($seccion)
{
$datos = self::get_campos_secciones();
if (isset($datos[$seccion])) {
return $datos[$seccion];
}
return array();
}
Si en esta misma clase, hago:
use untref\operaciones\_comun\util_form as util_form_untref;
static function get_campos_seccion($seccion)
{
$datos = util_form_untref::get_campos_secciones();
if (isset($datos[$seccion])) {
return $datos[$seccion];
}
return array();
}
Y en util_form_untref redefino get_campos_secciones, funciona.
Pero en realidad no serviría como personalización ya que me veo obligado a modificar el archivo original. Hay alguna alternativa para esto?
Claro, comprendo… Mirá, a los efectos de ser puristas, se le podría buscar una vuelta, pero tendrías que personalizar varios archivos (todos aquellos donde se utilice ‘get_campos_seccion’). Ahora, sabiendo que los consumos de servicios estáticos van a cambiar en la próxima versión para facilitar estas personalizaciones, podrías dejarlo así, en el archivo original, pero por favor documentalo bien, para que vos o quien esté a cargo cuando liberemos la próxima versión sepa que hay que adaptarlo.