/** * 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; } }