Aunque modificar las fuentes de SIVeL, como con cualquier otro
proyecto requiere previo estudio de estas, algunos detalles facilitarán
la labor: se emplean estándares de programación de Pear; se cuenta
con pruebas de regresión que facilitan la detección de errores que
podrían introducirse al modificar las fuentes; se emplean librerías
estándares de Pear (resaltamos
DB_DataObject_FormBuilder
).
En cuanto a base de datos se emplea SQL estándar.
Para las partes en PHP se emplean estándares de PEAR
(ver [pearcs])
que se verifican parcialmente
con la herramienta phpcs
del paquete PHP_CodeSniffer (ver
[phpcs]), la cual
una vez instalada puede ejecutarse con:
herram/estandares.sh
Los errores quedarán en el archivo /tmp/e
Siguiendo el estándar adoptado para PHP, las fuentes
incluyen comentarios que permiten
generar documentación técnica con la herramienta
phpdoc
(ver [phpdoc]).
Se genera con:
sudo pear install PhpDocumentor make tecdoc
El resultado queda en el directorio tdoc
o puede consultarse en
http://sivel.sf.net/1.0//tec/.
En cuanto a base de datos la estructura en SQL (ver [sqlpost]) está en el archivo estructura.sql
y los datos iniciales en archivos con nombres de la forma
datos-*.sql
. A continuación se incluye un grafo extaido de
estructura.sql
y generado
con GraphViz (ver [graphviz]).
La interfaz se desarrolló en PHP (ver [php]) empleando diversas librerías de Pear (ver [pear]), entre las que destacamos:
DB_DataObject_FormBuilder
Que permite generar formularios
semiautomáticamente a partir de
objetos
DB_DataObject
empleando algún
sistema de presentación como
HTML_QuickForm
(ver
[dbdataobjectformbuilder]).
DB_DataObject
Que abstrae una base de datos SQL, identificando tablas con clases y registros con objetos (ver [dbdataobject]).
Se empleo programación orientada a objetos, las clases y su jerarquía pueden verse en la documentación técnica (ver Sección 4.2, “Documentación técnica”)
Modificar la ficha de captura es posiblemente la operación más compleja en las fuentes de SIVeL, pues puede requerir cambiar la estructura de la base de datos, cambiar la forma de las búsquedas, los reportes y los conteos. El diseño actual de SIVeL permite hacer varios cambios al formulario de captura con relativa facilidad así como añadir tablas básicas y que las búsquedas por Consulta Externa operen sobre nuevos datos añadidos a la ficha. Para esto tenga en cuenta:
El único dato indispensable para abrir un caso es la fecha. Para agregar un presunto responsable requiere una clasificación de violencia. Para agregar una víctima requiere clasificación de violencia y presunto responsable.
Considere nuevos datos que se pondrán y su ubicación.
Modifique el modelo de datos para dar espacio a nuevos datos, preferiblemente en una nueva tabla o en su defecto en una tabla existente.
Se sugiere que los cambios que deban hacerse a la base se especifiquen
en SQL en un script nuevo (digamos
miorganizaion.sql
) que
pueda ejecutarse después
de crear la base típica de SIVeL (i.e procurar
no modificar
estructura.sql
). También
se sugiere no eliminar campos ni tablas de
la base de datos, sino más bien no hacerlos
visibles en la interfaz.
Si requiere agregar una nueva tabla tenga en cuenta:
Agregar definición en
miorganizacion.sql
y
ejecutar con bin/psql.sh
.
Agregar alfabéticamente definición de tabla
y llaves en sivel.ini
e
integridad referencial
en sivel.links.ini
--en
el primero los códigos resultan de la
suma de:
128 NOT NULL 1 INTEGER 2 VARCHAR o TEXT 4 DATE 8 TIME 16 BOOLEAN 32 LOG TEXT 64 BLOB
Crear archivo con datos de tabla como
descendiente de DB_DataObject, el nombre
debe ser el mismo de la tabla primera letra
mayúscula y demás minúsculas. Esta clase
deberá tener toda la información necesaria
para editar información de la tabla desde
el menú tablas básicas (uno simple para
emplear como plantilla es
Escrito_caso.php
)
Si efectivamente la tabla agregada es
una tabla básica agregar referencia en la
variable tablas_basicas
en el archivo aut/conf.php
Para efectuar cambios a la interfaz tener en cuenta:
Puede crear o modificar una pestaña, cada pestaña corresponde a un archivo de interfaz, cuyo nombre
comienza con Pag
(PagMemo.php
es uno simple para comenzar)
Algunos detalles de la presentación de la información de una pestaña se determinan en las
clases que corresponden a tablas,
y que son descendientes de DB_DataObject
. Los detalles
por cuadrar los específica la librería
DB_DataObject_FormBuilder
. En estas mismas clases puede
cuadrar otros detalles con las funciones preGenerateForm
y postGenerateForm
que se llaman antes y después
de generar el formulario.
Si necesita agregar
o eliminar pestañas asegure que se referencian las pestañas
en el orden que se desean en la variable ficha_tabuladores
de aut/conf.php
. Puede verse la descripción de las
funciones por definir en PagBaseSimple
(ver documentación técnica) y como orden posible para probar después de hacer
cambios se sugiere:
Vea que la interfaz sea como la espera modificando
la constructora de la clase y
las funciones iniVar
,
nullVar
,
formularioAgrega
y
formularioValores
.
Verifique que se procesen los datos examinando la
base de datos después de cambiarse de pestaña.
Note que tras procesar cada
pestaña debe llamarse la función
funcionario_caso
Agregue instrucciones para eliminar en las funciones
eliminaDep
y
elimina
.
Agregue información para búsquedas desde Consulta
Web en la función datosBusqueda
.