/** * * @param type $posicion * @param type $icono * @param type $propiedades */ public function addMarker($posicion, $icono, $propiedades) { $cache = Cache::iniciar(); $folder = $this->_kml->Document; //se crea el PATH absoluto desde la URL $icono = str_replace(base_url(), FCPATH, $icono); $ya_existe = array_search($icono, $this->_style_icons); if ($ya_existe === false) { $id_style = $this->_ci->string_core->rand_string(25); $style = $folder->addChild("Style"); $style->addAttribute("id", $id_style); $iconStyle = $style->addChild("IconStyle"); $icon = $iconStyle->addChild("Icon"); $name = $id_style . "." . $this->_imgExt($icono); $path = "icons/" . $name; $icon->addChild("href", $path); $cache->save(array("name" => $name, "file" => file_get_contents($icono)), $id_style); $this->_style_icons[$id_style] = $icono; } else { $id_style = $ya_existe; } $placemark = $folder->addChild("Placemark"); $placemark->addChild("styleUrl", "#" . $id_style); $point = $placemark->addChild("Point"); $point->addChild("coordinates", $posicion["lng"] . "," . $posicion["lat"] . ",0."); }
/** * Constructor */ public function __construct() { //ini_set('memory_limit', '64M'); $this->_ci =& get_instance(); $this->_ci->load->model("emergencia_model"); $this->_ci->load->library(array("cache", "pdf")); $this->_ci->load->helper(array("session", "modulo/usuario/usuario", "modulo/emergencia/emergencia", "modulo/emergencia/emergencia_reporte", "modulo/evento_reporte/layout")); $this->_cache = Cache::iniciar(); $this->_pdf = $this->_ci->pdf->load(); }
/** * Agrega icono a la subcapa * @param string $hash */ public function addIcono($hash) { $cache = Cache::iniciar(); if ($file = $cache->load($hash)) { $path = $this->_path . $file["filename"]; file_put_contents(FCPATH . $path, $file["content"]); $data = array("geometria_icono" => $path); $this->_ci->_capa_detalle_model->update($data, $this->_subcapa->geometria_id); } $cache->remove($hash); }
/** * Retorna imagen del perfil * @return string */ public function render() { $imagen = ""; $cache = Cache::iniciar(); if (!($imagen = $cache->load("imagen_perfil_" . $this->_id_usuario))) { $usuario = $this->_ci->_usuario_model->getById($this->_id_usuario); if (!is_null($usuario)) { $rut = explode("-", $usuario->usu_c_rut); $url = "http://192.168.10.165/static/images/personas/" . $rut[0] . ".jpg"; $url_midas = "http://midas.minsal.cl/static/images/personas/" . $rut[0] . ".jpg"; $headers = @get_headers($url); if (stripos($headers[0], "200 OK")) { $imagen = "<img width=\"" . $this->_width . "px\" class=\"img-circle\" src=\"" . $url_midas . "\" alt=\"\">"; } else { $imagen = "<img width=\"" . $this->_width . "px\" class=\"img-circle\" src=\"" . base_url("assets/img/usuario.png") . "\" alt=\"\">"; } } $cache->save($imagen, "imagen_perfil_" . $this->_id_usuario); } return $imagen; }
/** * * @param array $lista_kml */ public function guardar($lista_kml) { $guardados = array(); if (count($lista_kml) > 0) { foreach ($lista_kml as $kml_seleccionado) { $kml = $this->_emergencia_kml_model->getById($kml_seleccionado["id"]); if (is_null($kml)) { $cache = Cache::iniciar(); $file = $cache->load($kml_seleccionado["hash"]); $data = array("id_emergencia" => $this->_id_emergencia, "tipo" => $kml_seleccionado["tipo"], "archivo" => $kml_seleccionado["archivo"], "nombre" => $kml_seleccionado["nombre"], "kml" => $file["archivo"]); $id = $this->_emergencia_kml_model->query()->insert($data); $guardados[$kml_seleccionado["id"]] = $id; } else { $id = $kml->id; $guardados[$kml_seleccionado["id"]] = $kml->id; } $elementos_guardados = array(); if (count($kml_seleccionado["elementos"]) > 0) { foreach ($kml_seleccionado["elementos"] as $elemento_json) { $elemento = Zend_Json::decode($elemento_json); switch ($elemento["tipo"]) { case "PUNTO": $coordenadas = array("lat" => $elemento["coordenadas"]["lat"], "lon" => $elemento["coordenadas"]["lng"]); break; case "POLIGONO": $coordenadas = array("poligono" => array()); foreach ($elemento["coordenadas"] as $elemento_coordenada) { $coordenadas["poligono"][] = array($elemento_coordenada["lng"], $elemento_coordenada["lat"]); } break; case "LINEA": $coordenadas = array("linea" => array()); foreach ($elemento["coordenadas"] as $elemento_coordenada) { $coordenadas["linea"][] = array($elemento_coordenada["lat"], $elemento_coordenada["lng"]); } break; default: break; } if (isset($elemento["html"]) && $elemento["html"] != "") { $propiedades = $elemento["html"]; } else { $propiedades = Zend_Json::encode($elemento["propiedades"]); } $data_elemento = array("id_kml" => $id, "nombre" => $elemento["nombre"], "tipo" => $elemento["tipo"], "propiedades" => $propiedades, "coordenadas" => Zend_Json::encode($coordenadas)); if ($elemento["tipo"] == "PUNTO") { $data_elemento["icono"] = $this->_saveIcon($id, $elemento["primaria"], $elemento["icono"]); } if ($elemento["tipo"] == "MULTIPOLIGONO" || $elemento["tipo"] == "POLIGONO" || $elemento["tipo"] == "LINEA") { $data_elemento["color"] = $elemento["color"]; } $existe = $this->_emergencia_kml_elemento_model->getById($elemento["primaria"]); if (!is_null($existe)) { $this->_emergencia_kml_elemento_model->update($data_elemento, $existe->id); $elementos_guardados[] = $existe->id; } else { $elementos_guardados[] = $this->_emergencia_kml_elemento_model->insert($data_elemento); } } } $this->_emergencia_kml_elemento_model->deleteNotIn($id, $elementos_guardados); } } $this->_emergencia_kml_model->deleteNotIn($this->_id_emergencia, $guardados); $this->_limpiarIconosEliminados(); return $guardados; }
public function subir_CapaIconTemp() { $error = false; $this->load->helper(array("session", "debug")); $this->load->library("cache"); sessionValidation(); if (!isset($_FILES)) { show_error("No se han detectado archivos", 500, "Error interno"); } $tmp_name = $_FILES['input_icono_subcapa']['tmp_name']; $nombres = $_FILES['input_icono_subcapa']['name']; $size = $_FILES['input_icono_subcapa']['size']; $type = $_FILES['input_icono_subcapa']['type']; $fp = file_get_contents($tmp_name, 'r'); $nombre_cache_id = 'icon_subcapa_temp_' . uniqid(); $binary_path = 'media/tmp/' . $nombre_cache_id; $ftmp = fopen($binary_path, 'w'); fwrite($ftmp, $fp); $arr_cache = array('filename' => $nombres, 'nombre_cache_id' => $nombre_cache_id, 'content' => $fp, 'size' => $size, 'type' => $type); $cache = Cache::iniciar(); $cache->save($arr_cache, $nombre_cache_id); echo json_encode(array("uploaded" => 1, 'nombre_cache_id' => $nombre_cache_id, 'ruta' => base_url($binary_path))); }
/** * Guarda el reporte en cache temporal * @param binary $file * @return string */ protected function _guardarReporteTemporal($file, $codigo) { $hash = $this->string_core->rand_string(23); $cache = Cache::iniciar(); $cache->save(array("archivo" => $file, "archivo_nombre" => "reporte_" . $codigo . ".pdf", "mime" => "application/pdf", "tipo" => "pdf"), $hash); return $hash; }
/** * Prepara el archivo y lo coloca en directorio temporal * @param string $hash */ public function setFileHash($hash) { $this->_hash = $hash; $cache = Cache::iniciar(); if ($this->_file_info = $cache->load($hash)) { $this->_dir_temp .= $this->_ci->string_core->rand_string(21); mkdir($this->_dir_temp, 0755); file_put_contents($this->_dir_temp . "/" . $this->_file_info["archivo_nombre"], $this->_file_info["archivo"]); if ($this->_file_info["tipo"] == "kmz") { $filter = new Zend_Filter_Decompress(array('adapter' => 'Zip', 'options' => array('target' => $this->_dir_temp))); $compressed = $filter->filter($this->_dir_temp . "/" . $this->_file_info["archivo_nombre"]); if ($compressed) { unlink($this->_dir_temp . "/" . $this->_file_info["archivo_nombre"]); } } } }
/** * Muestra KML temporal * @throws Exception */ public function download_temporal() { $this->load->library(array("cache")); $params = $this->uri->uri_to_assoc(); $cache = Cache::iniciar(); if ($archivo = $cache->load($params["hash"])) { header("Content-Type: " . $archivo["mime"]); header("Content-Disposition: inline;filename=" . $archivo["archivo_nombre"]); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); echo $archivo["archivo"]; } }
/** * Guarda el archivo en cache * @return boolean */ protected function _saveToCache() { $cache = Cache::iniciar(); $cache->save(array("archivo" => file_get_contents($this->_target), "archivo_nombre" => $this->_file_name, "mime" => $this->_mime, "tipo" => $this->_file_ext), $this->_hash); $retorno = array("correcto" => true, "mime" => $this->_mime, "archivo_nombre" => $this->_file_name, "tipo" => $this->_file_ext, "hash" => $this->_hash); unlink($this->_target); return $retorno; }
/** * Crea archivo kml temporal */ public function ajax_exportar_kml_elemento() { ini_set('error_reporting', E_ALL ^ E_WARNING); $correcto = true; header('Content-type: application/json'); $params = $this->input->post(null, true); $this->load->library(array("kml/kml_create", "cache", "core/string/string_core")); $clave = $this->string_core->rand_string(20); try { $cache = Cache::iniciar(); $lista_elementos = Zend_Json::decode($params["elemento"]); foreach ($lista_elementos as $elemento) { print_r($elemento); die; $this->kml_create->addPoligon("PRUEBA", $elemento["coordenadas"], $elemento["color"], $elemento["informacion"]); } $lista_marcadores = Zend_Json::decode($params["marcadores"]); foreach ($lista_marcadores as $marcador) { $this->kml_create->addMarker($marcador["posicion"], $marcador["icono"], $marcador["informacion"]); } $cache->save($this->kml_create->getKml(), $clave); } catch (Exception $e) { $correcto = false; } echo Zend_Json::encode(array("file" => $clave, "images" => $this->kml_create->getStyleIcons(), "correcto" => $correcto)); }
function imagenPerfil($id_usuario) { $ci =& get_instance(); $ci->load->library(array("cache")); $ci->load->model("usuario_model", "_usuario_model"); $resultado = false; $cache = Cache::iniciar(); if (!($salida = $cache->load("imagen_perfil_array_" . $id_usuario))) { $usuario = $ci->_usuario_model->getById($id_usuario); if (!is_null($usuario)) { $rut = explode("-", $usuario->usu_c_rut); $url = "http://192.168.10.165/static/images/personas/" . $rut[0] . ".jpg"; $url_midas = "http://midas.minsal.cl/static/images/personas/" . $rut[0] . ".jpg"; $headers = @get_headers($url); if (stripos($headers[0], "200 OK")) { $imagen = $url_midas; $resultado = true; } else { $imagen = base_url("assets/img/usuario.png"); } $salida = array("url" => $imagen, "resultado" => $resultado); } $cache->save($salida, "imagen_perfil_array_" . $id_usuario); } return $salida; }
/** * Agrega archivo * @param string $hash * @param int $tipo * @param int $id */ public function addArchivo($hash, $descripcion, $tipo, $id = null, $id_usuario) { $cache = Cache::iniciar(); $archivo = $this->_ci->_archivo_model->getById($id); if (!is_null($archivo)) { $this->_agregados[] = $archivo->arch_ia_id; } else { if ($temporal = $cache->load($hash)) { $nuevo_hash = $this->_ci->_archivo_model->newHash(); $nombre_archivo = $nuevo_hash . "." . $temporal["tipo"]; file_put_contents(FCPATH . $this->_path . $nombre_archivo, $temporal["archivo"]); $data = array("arch_c_nombre" => $temporal["archivo_nombre"], "arch_c_descripcion" => $descripcion, "path" => $this->_path . $nombre_archivo, "arch_c_mime" => $temporal["mime"], "arch_c_tipo" => $tipo, "arch_c_hash" => $nuevo_hash, "usu_ia_id" => $id_usuario, "arch_f_fecha" => Date("Y-m-d H:i:s")); $this->_agregados[] = $this->_ci->_archivo_model->insert($data); } } return $this->_agregados[count($this->_agregados) - 1]; }