From c64a4b5ee229adce6e0d0adb68c73ddb4f8a2e72 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Mart=C3=ADn=20Marrese?= Date: Fri, 27 Jun 2003 16:53:52 +0000 Subject: [PATCH] - ABM de sistemas terminado. - ABM de asociaciones entre permisos y sistemas terminado. --- doc/uml/Samurai.xmi | 96 ++++++---- sistema/conf/confSecciones.php | 16 +- sistema/local_lib/Sistema.php | 193 +++++++++++++++++++- sistema/local_lib/Sistema/consultas.php | 12 +- sistema/local_lib/prepend.php | 3 +- sistema/www/.htaccess | 4 +- sistema/www/sistemas-permisos.php | 32 ---- sistema/www/{ => sistemas}/sistemas-abm.php | 9 +- sistema/www/sistemas/sistemas-permisos.php | 179 ++++++++++++++++++ sistema/www/{ => sistemas}/sistemas.php | 8 +- 10 files changed, 447 insertions(+), 105 deletions(-) delete mode 100644 sistema/www/sistemas-permisos.php rename sistema/www/{ => sistemas}/sistemas-abm.php (98%) create mode 100644 sistema/www/sistemas/sistemas-permisos.php rename sistema/www/{ => sistemas}/sistemas.php (91%) diff --git a/doc/uml/Samurai.xmi b/doc/uml/Samurai.xmi index 6922b94..b91c3a4 100644 --- a/doc/uml/Samurai.xmi +++ b/doc/uml/Samurai.xmi @@ -9,7 +9,7 @@ - + @@ -108,7 +108,26 @@ - + + + + + + + + + + + + + + + + + + + + @@ -120,6 +139,8 @@ + @@ -163,70 +184,70 @@ x2c:include: DB.php" name="DB" static="0" scope="200" /> - + - - - - - - - + + + + + + + - - + + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + @@ -279,11 +300,14 @@ x2c:include: DB.php" name="DB" static="0" scope="200" /> + + + @@ -299,8 +323,10 @@ x2c:include: DB.php" name="DB" static="0" scope="200" /> + + diff --git a/sistema/conf/confSecciones.php b/sistema/conf/confSecciones.php index c87da9e..988a500 100644 --- a/sistema/conf/confSecciones.php +++ b/sistema/conf/confSecciones.php @@ -34,11 +34,11 @@ 'db_name' => 'samurai', //Directorios web del sistema, salvo el root, todos son opcionales //Si no se ponen, o estan vacias se asume lo que dice el comentario al lado de cada una - 'directorios' => array ( 'root' => '/www/sistemas/samurai', // obligatorio -// 'imagenes' => '/www/sistemas/samurai/www/images', // /www/images - 'estilos' => '', // /www/css - 'js' => '', // /www/js - 'www' => '', // /www/ + 'directorios' => array ( 'root' => '/sistemas/samurai', // obligatorio +// 'imagenes' => '/sistemas/samurai/www/images', // /images + 'estilos' => '', // /css + 'js' => '', // /js + 'www' => '', // / ), //Directorios del file system. Si no se pone se asume lo que esta comentado. Son opcionales 'directorios_fs' => array ('cache' => '', // /tmp @@ -112,14 +112,14 @@ 'imagenComun' => 'sistemas', 'imagenMouseOn' => '', 'imagenSelect' => '', - 'link' => 'sistemas', + 'link' => 'sistemas/sistemas', 'tipoMenu' => 'oculto', 'hijos' => array ( array ( 'nombre' => 'ABM Sistemas', 'imagenComun' => '', 'imagenMouseOn' => '', 'imagenSelect' => '', - 'link' => 'sistemas-abm', + 'link' => 'sistemas/sistemas-abm', 'subhijos' => array ( '', ), ), @@ -127,7 +127,7 @@ 'imagenComun' => '', 'imagenMouseOn' => '', 'imagenSelect' => '', - 'link' => 'sistemas-permisos', + 'link' => 'sistemas/sistemas-permisos', 'subhijos' => array ( '', ), ), diff --git a/sistema/local_lib/Sistema.php b/sistema/local_lib/Sistema.php index 59e4db5..65e54b4 100644 --- a/sistema/local_lib/Sistema.php +++ b/sistema/local_lib/Sistema.php @@ -115,6 +115,37 @@ class Sistema { */ var $_permisos; + /** + * Array con los permisos asociados al sistema + * + * @var array $asociaciones + * @access private + */ + var $_asociaciones; + + /** + * Gets Asociaciones. + * + * @return array + * @access public + */ + function getAsociaciones() + { + return $this->_asociaciones; + } + /** + * Sets Asociaciones. + * + * @param array $asociaciones Asociaciones. + * + * @return void + * @access public + */ + function setAsociaciones($asociaciones) + { + $this->_asociaciones = $asociaciones; + } + // ~X2C // +X2C Operation 243 @@ -419,14 +450,30 @@ class Sistema { } } $tmp = $sql['obtener_permisos']; + $tmp.= $sql['borrar_permisos2']; $dbh = $this->_db->prepare($tmp); - $tmp = array ($this->getId()); - $res = $this->_db->execute($dbh,$tmp); - $tmp = array(); + $tmp = array ($this->getId(),''); + $res = $this->_db->execute($dbh,$tmp); + $tmp = array(); + $i = 0; while ($re = $res->fetchRow(DB_FETCHMODE_ORDERED)) { $tmp[] = $re['0']; + $i++; } $this->_permisos = $tmp; + $tmp = $sql['obtener_permisos']; + $tmp.= $sql['obtener_permisos2']; + $dbh = $this->_db->prepare($tmp); + $tmp = array ($this->getId()); + $res = $this->_db->execute($dbh,$tmp); + $tmp = array(); + $i = 0; + while ($re = $res->fetchRow(DB_FETCHMODE_ORDERED)) { + $tmp[$i]['id'] = $re['0']; + $tmp[$i]['obs'] = $re['1']; + $i++; + } + $this->_asociaciones = $tmp; } // -X2C @@ -588,7 +635,7 @@ class Sistema { //Borro los permisos que tiene asignado el sistema //Borro absolutamente todos los permisos que tiene asociado -> No hay vuelta a atras - $this->_borrarPermisosDb($idSistema, false); + $this->_borrarPermisosDb($idSistema); } // -X2C @@ -623,7 +670,7 @@ class Sistema { trigger_error('Error al tratar de insertar el sistema -> '.var_dump($res), E_USER_ERROR); } //Borro los permisos que no tengan observaciones - $this->_borrarPermisosDb($idSistema, true); + $this->_borrarPermisosDb($idSistema, ''); //Grabo los permisos que selecciono $this->_grabarPermisosDb($idSistema); } @@ -648,7 +695,7 @@ class Sistema { $datos = array ($permiso['0'], $idSistema, $this->getResponsable()); $res = $this->_db->execute($re, $datos); if (DB::isError($res)) { - trigger_error('Error en perm_sist -> '.$res, E_USER_ERROR); + trigger_error('Error en perm_sist -> '.var_dump($res), E_USER_ERROR); } } } @@ -661,22 +708,148 @@ class Sistema { * Borra los permisos que tenga asociado el sistema segun el criterio de observaciones * * @param int $idSistema Identificador del sistema - * @param bool $observaciones Si es false borra todas las asociaciones que tenga el sistema. Si es true borra solo aquellas que tengan observaciones = '' + * @param bool $observaciones Null u observacion de la asociacion a borrar + * @param int $idPermiso Identificador del permiso a borrar * * @return void * @access private */ - function _borrarPermisosDb($idSistema, $observaciones)// ~X2C + function _borrarPermisosDb($idSistema, $observaciones = null, $idPermiso = null)// ~X2C { $sql = include 'Sistema/consultas.php'; $datos[] = $idSistema; $tmp = $sql['borrar_permisos']; - if ($observaciones) { + if (isset($observaciones)) { $tmp.= $sql['borrar_permisos2']; - $datos[] = ''; + $datos[] = $observaciones; + } + if (isset($idPermiso)) { + $tmp.= $sql['borrar_permisos3']; + $datos[] = $idPermiso; } $dbh = $this->_db->prepare($tmp); $res = $this->_db->execute($dbh, $datos); + if (DB::isError($res)) { + trigger_error('Error al tratar de borrar la relacion entre permiso y sistema -> '.var_dump($res), E_USER_ERROR); + } + } + // -X2C + + + // +X2C Operation 312 + /** + * Guarda en base las nuevas asociaciones que se van cargando y actualiza los datos del sistema. + * + * @param int $idPermiso Identificador del Permiso + * @param string $observacion Observacion a agregar + * + * @return bool + * @access public + */ + function guardarAsociacion($idPermiso, $observacion = '')// ~X2C + { + $error = true; + if (!$this->_existeAsociacion($idPermiso, $observacion)) { + //Guardo la asociacion + //Grabo el sistema + $datos = array( + 'id_permiso' => $idPermiso, + 'id_sistema' => $this->getId(), + 'observaciones' => $observacion, + 'responsable' => $this->getResponsable(), + ); + $res = $this->_db->autoExecute('perm_sist', $datos, DB_AUTOQUERY_INSERT); + //Recargo los datos del sistema + $this->_obtenerDatosDb(); + $error = false; + } + return $error; + } + // -X2C + + // +X2C Operation 313 + /** + * Elimina una asociacion de la base, y actualiza los datos del sistema. + * + * @param int $idPermiso Identificador del permiso a borrar + * @param string $observacion Observacion de la asociacion a borrar (Puede ser vacia) + * + * @return bool + * @access public + */ + function eliminarAsociacion($idPermiso, $observacion = '')// ~X2C + { + $error = false; + //Elimino la asociacion + $this->_borrarPermisosDb($this->getId(), $observacion, $idPermiso); + //Recargo los datos del sistema + $this->_obtenerDatosDb(); + return $error; + } + // -X2C + + // +X2C Operation 314 + /** + * Actualiza los datos de la asociacion en la base de datos. + * + * @param int $idPermiso Identificador del permiso + * @param int $idPermiso_ant Identificador del permiso anterior + * @param string $observacion Observacion a insertar + * @param string $obs_ant Observacion anterior + * + * @return bool + * @access public + */ + function modificarAsociacion($idPermiso, $idPermiso_ant, $observacion = '', $obs_ant = '')// ~X2C + { + $error = true; + //Busco la nueva asociacion + if (!$this->_existeAsociacion($idPermiso, $observacion)) { + //Actualizo la asociacion + $datos = array( + 'id_permiso' => $idPermiso, + 'id_sistema' => $this->getId(), + 'observaciones' => $observacion, + 'responsable' => $this->getResponsable(), + ); + $this->_db->autoExecute('perm_sist', + $datos, + DB_AUTOQUERY_UPDATE, + 'id_sistema = '.$this->getId().' AND id_permiso = '.$idPermiso_ant.' AND observaciones =\''.$obs_ant.'\''); + + //Recargo los datos del sistema + $this->_obtenerDatosDb(); + $error = false; + } + return $error; + } + // -X2C + + // +X2C Operation 315 + /** + * Chequea si existe la asociacion + * + * @param int $idPermiso Id del permiso a chequear + * @param string $observacion Observacion a chequear + * + * @return bool + * @access private + */ + function _existeAsociacion($idPermiso, $observacion)// ~X2C + { + $sql = include 'Sistema/consultas.php'; //Incluyo las consultas de este objeto nada mas. + $tmp = $sql['obtener_permisos'].$sql['obtener_permisos3'].$sql['obtener_permisos4']; + $dbh = $this->_db->prepare($tmp); + $tmp = array ($this->getId(),$idPermiso,$observacion); + $res = $this->_db->execute($dbh,$tmp); + $re = $res->fetchRow(); + + if (is_null($re)) { + return false; + } + else { + return true; + } } // -X2C diff --git a/sistema/local_lib/Sistema/consultas.php b/sistema/local_lib/Sistema/consultas.php index 2d1fe2e..142340b 100644 --- a/sistema/local_lib/Sistema/consultas.php +++ b/sistema/local_lib/Sistema/consultas.php @@ -25,14 +25,16 @@ // return array ( //OBTENER DATOS - 'obtener_datos_sistema' => 'SELECT id_sistema, nombre_sistema, desc_sistema, fecha_inicio, fecha_fin, fecha_implementacion, contacto, - responsable - FROM sistema ', + 'obtener_datos_sistema' => 'SELECT id_sistema, nombre_sistema, desc_sistema, fecha_inicio, fecha_fin, fecha_implementacion, contacto,responsable FROM sistema ', 'obtener_datos_sistema2' => ' WHERE id_sistema = ? ', - 'obtener_permisos' => 'SELECT id_permiso FROM perm_sist WHERE id_sistema = ? ORDER BY id_permiso', + 'obtener_permisos' => 'SELECT id_permiso, observaciones FROM perm_sist WHERE id_sistema = ?', + 'obtener_permisos2' => ' ORDER BY id_permiso', + 'obtener_permisos3' => ' AND id_permiso = ?', + 'obtener_permisos4' => ' AND observaciones = ?', 'obtener_max_id_sistemas' => 'SELECT IFNULL(max(id_sistema), 1) as id_sistema FROM sistema', //BORRAR DATOS 'borrar_permisos' => 'DELETE FROM perm_sist WHERE id_sistema = ? ', - 'borrar_permisos2' => ' and observaciones = ?', + 'borrar_permisos2' => ' AND observaciones = ?', + 'borrar_permisos3' => ' AND id_permiso = ?', ); ?> diff --git a/sistema/local_lib/prepend.php b/sistema/local_lib/prepend.php index 31a95f1..faba42d 100644 --- a/sistema/local_lib/prepend.php +++ b/sistema/local_lib/prepend.php @@ -3,8 +3,7 @@ require_once 'MECON/general.php'; -//prepend_include_path('/home/mmarrese/public_html/meconlib/tronco/lib/'); -prepend_include_path('/var/www/intranet/www/sistemas/samurai'); +prepend_include_path('/var/www/sistemas/samurai'); require_once 'MECON/Marco.php'; require_once 'local_lib/Samurai_DB.php'; diff --git a/sistema/www/.htaccess b/sistema/www/.htaccess index d3ef963..a43dbb6 100644 --- a/sistema/www/.htaccess +++ b/sistema/www/.htaccess @@ -1,3 +1,3 @@ -php_value auto_prepend_file "../local_lib/prepend.php" -php_value auto_append_file "../local_lib/append.php" +php_value auto_prepend_file "/var/www/sistemas/samurai/local_lib/prepend.php" +php_value auto_append_file "/var/www/sistemas/samurai/local_lib/append.php" #php_value allow_call_time_pass_reference On diff --git a/sistema/www/sistemas-permisos.php b/sistema/www/sistemas-permisos.php deleted file mode 100644 index bc6b8f0..0000000 --- a/sistema/www/sistemas-permisos.php +++ /dev/null @@ -1,32 +0,0 @@ - -// +----------------------------------------------------------------------+ -// -// $Id$ -// $Author$ -// $URL$ -// $Date$ -// $Rev$ -// - -//ARMAR UNA TABLA CON UN SELECT UN TEXT Y UN BOTON AGREGAR -//ABAJO LISTA CON LOS PERMISOS - -//SE SELECCIONA UN PERMISO SE SETEA O NO LA OBSERVACION Y SE AGREGA. - -?> diff --git a/sistema/www/sistemas-abm.php b/sistema/www/sistemas/sistemas-abm.php similarity index 98% rename from sistema/www/sistemas-abm.php rename to sistema/www/sistemas/sistemas-abm.php index 70cf4d7..72a0259 100644 --- a/sistema/www/sistemas-abm.php +++ b/sistema/www/sistemas/sistemas-abm.php @@ -177,11 +177,8 @@ $SISTEMA->setFechaImplementacion(); } $SISTEMA->setContacto($contacto->getValue()); - $SISTEMA->setPermisos($permisos->getSelected()); - $SISTEMA->setResponsable($responsable->_text); //TODO URGENTE Modificar esto. No tiene hay metodo static::getValue() - $FORM->freeze(); $SISTEMA->guardarDatos($aceptar->getValue()); header('Location: sistemas'); @@ -192,10 +189,8 @@ $renderer =& new HTML_QuickForm_Renderer_Tabla('width="100%"'); $FORM->accept($renderer); - - - $MARCO = new Marco ('../conf/confSecciones.php'); - $MARCO->addTitle('Nuevo Sistema'); + $MARCO = new Marco ('../../conf/confSecciones.php'); + $MARCO->addTitle('ABM Sistema'); $MARCO->addBody($renderer->toHtml()); $MARCO->display(); // diff --git a/sistema/www/sistemas/sistemas-permisos.php b/sistema/www/sistemas/sistemas-permisos.php new file mode 100644 index 0000000..e10b0b3 --- /dev/null +++ b/sistema/www/sistemas/sistemas-permisos.php @@ -0,0 +1,179 @@ + +// +----------------------------------------------------------------------+ +// +// $Id: sistemas-permisos.php 21 2003-06-25 22:26:30Z mmarre e +// $Author$ +// $URL$ +// $Date$ +// $Rev$ +// + require_once 'HTML/QuickForm.php'; + require_once 'MECON/HTML/QuickForm/Renderer/Tabla.php'; + require_once 'MECON/HTML/Tabla.php'; + +//OBTENGO EL ID DEL SISTEMA + //El id de sistema viene por get o por post, no hay otra posibilidad + $idSistema = 0; + if (isset($_GET['idSistema'])) { + $idSistema = $_GET['idSistema']; + } + elseif (isset($_POST['idSistema'])) { + $idSistema = $_POST['idSistema']; + } +// +//CREO LOS OBJETO NECESARIOS + $SAMURAI = new Samurai($DB); + $FORM = new HTML_QuickForm ('sistemas_permisos','post','sistemas-permisos'); + $SISTEMA = new Sistema ($DB, $idSistema); + $TABLASIST = new Tabla ('cellpadding=2'); + $TABLAPERM = new Tabla ('cellpadding=2'); +// + $SISTEMA->setResponsable($_SESSION['samurai']['login']); +//AGREGO LA INFORMACION DEL SISTEMA + $row = array ('Id', 'Nombre', 'Descripcion'); + $TABLASIST->addRow($row, 'cabecera'); + $row = array ($SISTEMA->getId(), $SISTEMA->getNombre(), $SISTEMA->getDescripcion()); + $TABLASIST->addRow($row, 'comun'); +// +//AGREGO LOS ELEMENTOS DEL FORM + //Obtengo la lista de permisos + $PERMISOS = $SAMURAI->getSelectPermisos(); + //Agrego elementos + $FORM->addElement ('header', 'cabecera' , 'Agregar una asociacion'); + $FORM->addElement ('hidden', 'idSistema' , $idSistema); + $FORM->addElement ('select', 'permisos' , 'Permisos' , $PERMISOS, array('size' => '1')); + $FORM->addElement ('hidden', 'permant'); + $FORM->addElement ('hidden', 'obsant'); + $FORM->addElement ('text' , 'observacion', 'Observacion', array('size' => '30')); + $group[] = HTML_QuickForm::createElement('submit', 'aceptar' , 'Grabar'); + $FORM->addGroup($group,'botones', '', ', '); +// +//VALIDO EL FORMULARIO + if ($FORM->validate()) { + $idPermiso =& $FORM->getElement ('permisos' ); + $idPerm_ant =& $FORM->getElement ('permant' ); + $observacion =& $FORM->getElement ('observacion'); + $obs_ant =& $FORM->getElement ('obsant' ); + $group =& $FORM->getElement ('botones' ); + $group =& $group->getElements('aceptar' ); + $aceptar =& $group[0]; + + $tmp = $idPermiso->getSelected(); + $tmp = $tmp['0']; + if ($aceptar->getValue() == 'Grabar') { + $error = $SISTEMA->guardarAsociacion($tmp, $observacion->getValue()); + } + elseif ($aceptar->getValue() == 'Modificar') { + $error = $SISTEMA->modificarAsociacion($tmp, $idPerm_ant->getValue(), $observacion->getValue(), $obs_ant->getValue()); + } + elseif ($aceptar->getValue() == 'Eliminar') { + $error = $SISTEMA->eliminarAsociacion($tmp, $observacion->getValue()); + } + + if ($error) { + $group = array (); + $group[] = HTML_QuickForm::createElement('static', 'error' , 'Error', 'La asociacion ya existe, modifique alguno de sus datos.'); + $group[] = HTML_QuickForm::createElement('submit', 'aceptar' , 'Grabar'); + $FORM->removeElement('botones'); + $FORM->addGroup($group,'botones', '', '
'); + } + else { + $idPermiso->setSelected(null); + $observacion->setValue(null); + $aceptar->setValue('Grabar'); + } + } +// +//VERIFICO COMO DEBO LLAMAR AL BOTON SUBMIT + if (isset($_GET['accion'])) { + $group =& $FORM->getElement ('botones'); + $group =& $group->getElements('aceptar'); + $aceptar =& $group[0]; + + if ($_GET['accion'] == 'm') { + $aceptar->setValue('Modificar'); + } + elseif ($_GET['accion'] == 'e') { + $aceptar->setValue('Eliminar'); + $FORM->freeze(); + } + } +// +//CAPTURO SI HAY ACCION -> MODIFICAR O ELIMINAR -> MUESTRO LOS DATOS EN EL FORM + if (isset($_GET['accion'])) { + $idPermiso =& $FORM->getElement ('permisos' ); + $idPerm_ant =& $FORM->getElement ('permant' ); + $observacion =& $FORM->getElement ('observacion'); + $obs_ant =& $FORM->getElement ('obsant' ); + $idPermiso->setSelected($_GET['idPermiso']); + $idPerm_ant->setValue($_GET['idPermiso']); + $observacion->setValue($_GET['observacion']); + $obs_ant->setValue($_GET['observacion']); + } +// +//AGREGO LA INFORMACION DE LAS ASOCIACIONES + $aHref = ''; + $aHrefModif = $aHref.'Modificar'; + $aHrefElim = $aHref.'Eliminar'; + $row = array ('Nombre', 'Observacion', 'Modif.', 'Elim.'); + $TABLAPERM->addRow($row, 'cabecera'); + + $asocs = $SISTEMA->getAsociaciones(); + + $idPerm_ant =& $FORM->getElement ('permant' ); + $obs_ant =& $FORM->getElement ('obsant' ); + + foreach ($asocs as $key => $asoc) { + $estilo = 'comun'; + $permiso = new Permiso($DB, $asoc['id']); + $Modif = ereg_replace('##PERMISO##', $asoc['id'] , $aHrefModif); + $Elim = ereg_replace('##PERMISO##', $asoc['id'] , $aHrefElim); + $Modif = ereg_replace('##OBS##' , $asoc['obs'], $Modif); + $Elim = ereg_replace('##OBS##' , $asoc['obs'], $Elim); + $Modif = ereg_replace('##ACCION##' , 'm', $Modif); + $Elim = ereg_replace('##ACCION##' , 'e', $Elim); + + if ($permiso->getId() == $idPerm_ant->getValue() && $asoc['obs'] == $obs_ant->getValue()) { + $estilo = 'titulo'; + } + + $row = array ($permiso->getDescripcion(), $asoc['obs'], $Modif, $Elim); + $TABLAPERM->addRow($row, $estilo); + } + +// +//DIBUJO LA PAGINA + $renderer =& new HTML_QuickForm_Renderer_Tabla('width="100%"'); + $FORM->accept($renderer); + + $MARCO = new Marco ('../../conf/confSecciones.php'); + $MARCO->addTitle('Asociar Permisos y Sistemas'); + //AGREGO LA TABLA DEL SISTEMA + $MARCO->addBody($TABLASIST); + $MARCO->addBody('
'); + //AGREGO LA TABLA DEL FORM + $MARCO->addBody($renderer); + $MARCO->addBody('
'); + //AGREGO LA TABLA DE PERMISOS + $MARCO->addBody($TABLAPERM); + $MARCO->display(); +// +//FIN + +?> diff --git a/sistema/www/sistemas.php b/sistema/www/sistemas/sistemas.php similarity index 91% rename from sistema/www/sistemas.php rename to sistema/www/sistemas/sistemas.php index c6e5f7d..5aac445 100644 --- a/sistema/www/sistemas.php +++ b/sistema/www/sistemas/sistemas.php @@ -26,9 +26,9 @@ require_once 'MECON/HTML/Tabla.php'; $aHref = ''; - $aHrefModif = $aHref.''; - $aHrefElim = $aHref.''; - $aHrefPerm = ''; + $aHrefModif = $aHref.'Modificar Sistema'; + $aHrefElim = $aHref.'Eliminar Sistema'; + $aHrefPerm = 'Definir Permisos'; $body = ''; @@ -74,7 +74,7 @@ $body.=$TABLA2->toHtml(1); $body.=$TABLA->toHtml().'
'; - $MARCO = new Marco ('../conf/confSecciones.php'); + $MARCO = new Marco ('../../conf/confSecciones.php'); $MARCO->addBody($body); $MARCO->display(); ?> -- 2.43.0