/**
  * Carga archivos asociados a una emergencia al mapa
  */
 public function ajax_kml_emergencia()
 {
     $this->load->library(array("kml/kml_conversiones"));
     header('Content-type: application/json');
     $data = array("correcto" => true, "resultado" => array("elemento" => array()));
     $params = $this->input->post(null, true);
     $emergencia = $this->_emergencia_model->getById($params["id"]);
     if (!is_null($emergencia)) {
         $configuracion = array();
         $mapa = $this->_emergencia_mapa_configuracion_model->getByEmergencia($params["id"]);
         if (!is_null($mapa)) {
             $configuracion = Zend_Json::decode($mapa->configuracion);
         }
         $lista_elementos = $this->_emergencia_kml_model->listaPorEmergencia($emergencia->eme_ia_id);
         if (count($lista_elementos) > 0) {
             foreach ($lista_elementos as $elemento) {
                 $oculto = false;
                 if (isset($configuracion["archivos_ocultos"]) && in_array($elemento["id"], $configuracion["archivos_ocultos"])) {
                     $oculto = true;
                 }
                 $data["correcto"] = true;
                 $data["resultado"]["elemento"][$elemento["id"]] = array("id" => $elemento["id"], "hash" => "archivo_importado_" . $elemento["id"], "oculto" => $oculto, "tipo" => strtoupper($elemento["tipo"]), "nombre" => strtoupper($elemento["nombre"]), "archivo" => $elemento["archivo"], "elementos" => $this->_emergencia_kml_elemento_model->listaPorKml($elemento["id"]));
             }
         }
     } else {
         $data["info"] = "La emergencia no tiene kml asociadados";
     }
     echo Zend_Json::encode($data);
 }
 /**
  * Guarda el icono
  * @param int $id_kml
  * @param string $icono_path
  * @return string
  */
 protected function _saveIcon($id_kml, $id_elemento, $icono_path)
 {
     if (!is_dir(FCPATH . "media/doc/kml")) {
         mkdir(FCPATH . "media/doc/kml");
     }
     if (!is_dir(FCPATH . "media/doc/kml/" . $id_kml)) {
         mkdir(FCPATH . "media/doc/kml/" . $id_kml);
     }
     $icono_anterior = "";
     if ($id_elemento != "") {
         $elemento = $this->_emergencia_kml_elemento_model->getById($id_elemento);
         if (!is_null($elemento)) {
             $icono_anterior = $elemento->icono;
         }
     }
     if (is_array($icono_path) and isset($icono_path['url'])) {
         $icono_path = $icono_path['url'];
     }
     $actualizar = false;
     $es_cache = strpos($icono_path, "hash");
     if ($es_cache === false) {
         if (!filter_var($icono_path, FILTER_VALIDATE_URL) === false) {
             $this->_lista_iconos[] = $icono_path;
         } else {
             $relative_path_icon = str_replace(base_url(), "", $icono_path);
             if (is_file(FCPATH . $relative_path_icon)) {
                 $relative_path = $relative_path_icon;
                 $info = pathinfo(FCPATH . $relative_path);
                 $icono = file_get_contents(FCPATH . $relative_path);
                 if ($icono_anterior != $relative_path && is_file(FCPATH . $relative_path)) {
                     $actualizar = true;
                     $this->_lista_iconos[] = FCPATH . $relative_path;
                 }
             }
         }
     } else {
         $cache = $this->_ci->cache->iniciar();
         $separado = explode("/", $icono_path);
         if ($imagen_cache = $cache->load($separado[count($separado) - 1])) {
             $icono = $imagen_cache["archivo"];
             $info["extension"] = $imagen_cache["tipo"];
             $actualizar = true;
         }
     }
     if ($actualizar) {
         $relative_path_final = "media/doc/kml/" . $id_kml . "/" . $this->_ci->random->rand_string(20) . "." . $info["extension"];
         $file = FCPATH . $relative_path_final;
         file_put_contents($file, $icono);
         return $relative_path_final;
     } else {
         return $icono_anterior;
     }
 }