Estoy tratando de utilizar el esquema de personalizaciones de Diaguita en la versión 2.1.0 pero no estoy pudiendo lograrlo. Les detallo los paso para ver si me está faltando algo.
Como ejemplo, voy a colocar la operación “Items” que se encuentra dentro de “Solicitud de Bienes y Servicios”.
En esa operación existe un objeto llamado “cuadro” que es del tipo “cuadro”. En el detalle de ese objeto, el punto de montaje es personalización y la url es “extension_toba/componentes/diaguita_pers_ei_cuadro.php”
Si voy a ese archivo tiene la siguiente estructura:
<?php
class diaguita_pers_ei_cuadro extends diaguita_ei_cuadro
{
}
?>
Hasta ahí todo bien. El tema es que yo quiero redefinir el método “conf__cuadro” de dicho objeto para que lo cargue de otra manera. En este caso simplemente quiero reemplazar una columna por una nueva que está personalizada.
Lo que no logro hacer es que al momento de crear el método:
function conf__cuadro(diaguita_pers_ei_cuadro $cuadro)
{
}
tome el código que genero ahí dentro. Probé de colocar un ei_arbol y no aparece; mientras que ese ei_arbol lo coloco en la clase original que se encuentra en el archivo:
php/solicitud_suministro/ci_items_solicitados.php, sí aparece la respuesta del ei_arbol.
¿Me está faltando algún paso en especial?
Espero haber explicado correctamente mi problemática.
que bueno que esten viendo de personalizar!! Te comento que estamos mejorando un poco la documetación para que puedan trabajar con las personalizaciones en la versión 2.1 de SIU-Diaguita, cuando este listo va a estar disponible en la Wiki.
Bien, como una característica de Toba, las clases del nucleo (CI, CN, EI_CUADRO, etc., etc.) ya están creadas y definidas como personalizadas (y por ello ya existen en el directorio aplicacion/personalizacion/php/extension_toba) de modo que todos los componentes de SIU-Diaguita extienden de esas clases y/o hacen uso directo si dicho componente no requiere cambios adicionales.
Y da la casualidad de que ese cuadro que ubicaron, no requiere ninguna redefinición y por ende usa la clase estandar de cuadros, presente ya en el punto de montaje de personalización.
El problema radica en que la clase diaguita_pers_ei_cuadro no es la que maneja o escucha los eventos (conf(), conf__(), etc). Esto lo hace la clase CI (ci_ficha_solicitud_suministro en el caso de tu ejemplo) y es donde si te funcionó el ei_arbol.
Ok. Entonces lo que debería hacer es replicar en personalizacion/php la carpeta “solicitud_suministro” y ahí crear el archivo ci_items_solicitados.php (por lo que ví, este es el archivo que me controla el conf del cuadro de ítems) y ahí dejar solamente el método conf__cuadro.
Ahora, solamente basta con crear este directorio y ese archivo? Por lo que ví en la wiki hay que correr unos comandos toba para que te regeneren las clases o algo así.
Tiene también algo que ver el archivo “diaguita_pers_autoload.php” que se encuentra dentro de personalizacion/php?