Example #1
0
 /**
  * Guarda en sesion aquellas propiedades del componente marcadas anteriormente como pertenecientes a sesion
  * @ignore 
  */
 function guardar_estado_sesion()
 {
     //Busco las propiedades que se desea persistir entre las sesiones
     if (count($this->_propiedades_sesion) > 0) {
         for ($a = 0; $a < count($this->_propiedades_sesion); $a++) {
             //Existe la propiedad
             $nombre_prop = $this->_propiedades_sesion[$a];
             if (isset($this->{$nombre_prop})) {
                 //Si la propiedad es un array que posee objetos, lo serializo
                 //a mano para no tener problemas con la desserializacion automatica de la sesion
                 //que requiere todos los includes del proyecto antes del session start
                 if (is_array($this->{$nombre_prop})) {
                     $posee_objetos = array_posee_objetos($this->{$nombre_prop});
                 } else {
                     $posee_objetos = false;
                 }
                 if (is_object($this->{$nombre_prop}) || $posee_objetos) {
                     $temp[$this->_propiedades_sesion[$a]] = serialize($this->{$nombre_prop});
                     //Dejo la marca de que serialize un OBJETO.
                     $temp["toba__indice_objetos_serializados"][] = $this->_propiedades_sesion[$a];
                 } else {
                     $temp[$this->_propiedades_sesion[$a]] = $this->{$nombre_prop};
                 }
             }
         }
         if (isset($temp)) {
             $temp['toba__descripcion_objeto'] = '[' . get_class($this) . '] ' . $this->_info['nombre'];
             toba::memoria()->set_dato_operacion($this->_id_ses_grec, $temp);
         } else {
             //Si existia y las propiedades pasaron a null, hay que borrarlo
             toba::memoria()->eliminar_dato_operacion($this->_id_ses_grec);
         }
     }
 }
Example #2
0
/**
 * Determina si alguna componente recursiva del arreglo es un objeto php
 * @param array $variable
 * @return boolean
 */
function array_posee_objetos($variable)
{
    foreach ($variable as $elemento) {
        if (is_object($elemento)) {
            return true;
        }
        if (is_array($elemento)) {
            return array_posee_objetos($elemento);
        }
    }
    return false;
}