コード例 #1
0
ファイル: resultado.php プロジェクト: calonso-conabio/peces
 if ($pezobj->nacional_Importado == "Importado" || $pezobj->nacional_Importado == "Nacional e importado") {
     echo CHtml::image(Yii::app()->request->baseUrl . "/imagenes/aplicacion/importado.png", "Importado", array("title" => "Importado"));
 }
 echo "</div>";
 //Cuando tiene datos en la zona
 echo "<div id='dat_" . $pezobj->especie_id . "'>";
 //Imagenes peces
 echo "<div class='dima'>";
 if ($pezobj->tipo_imagen == 1) {
     echo CHtml::image(Yii::app()->request->baseUrl . "/imagenes/peces/" . $pezobj->imagen, $pezobj->nombre_cientifico, array('class' => 'ima'));
 } elseif ($pezobj->tipo_imagen == 2) {
     echo CHtml::image(Yii::app()->request->baseUrl . "/imagenes/siluetas/" . $pezobj->imagen, $pezobj->nombre_cientifico, array('class' => 'ima'));
 }
 echo "</div>";
 if ($pezobj->recomendacion == 1 && !empty($pezobj->peso)) {
     $imagen = Peces::peso_a_nombre_imagen($pezobj->peso);
     echo CHtml::image(Yii::app()->request->baseUrl . "/imagenes/semaforo/" . $imagen);
 }
 echo "</div>";
 // cierra  dat_
 echo "</div>";
 //cierra dresul_view
 echo "<div id ='dresul_body_" . $pezobj->especie_id . "'class='dresul_body' style='display:none'>";
 //Estados de conservacion
 $estados_conservacion = array();
 foreach ($pezobj->estadoConservacions as $j) {
     if ($j->Nivel1 == 1) {
         array_push($estados_conservacion, $j->nombre . CHtml::link(' (IUCN)', "http://www.biodiversidad.gob.mx/especies/catRiesMundo.html", array("style" => "color:#584B05;font-size:10px;", "target" => "_blank")));
     }
     if ($j->Nivel1 == 2) {
         array_push($estados_conservacion, $j->nombre . CHtml::link(' (CITES)', "http://www.biodiversidad.gob.mx/planeta/cites/index.html", array("style" => "color:#584B05;font-size:10px;", "target" => "_blank")));
コード例 #2
0
 /**
  * Resulatdo de las busquedas
  */
 public function actionResultado()
 {
     $condiciones = '';
     $union = '';
     $joins = '';
     $params = $_GET;
     $select = 'SELECT * FROM peces p ';
     $order = '';
     $flag_ficha = false;
     if (isset($params['especie_id']) && !empty($params['especie_id'])) {
         $flag_ficha = true;
         $condiciones = "especie_id = " . $params['especie_id'] . " AND ";
     } else {
         $flag_ficha = false;
         if (isset($params['nombre_comun']) && !empty($params['nombre_comun'])) {
             $condiciones .= "nombre_comun LIKE '%" . $params['nombre_comun'] . "%' AND ";
         }
         if (isset($params['nombre_cientifico']) && !empty($params['nombre_cientifico'])) {
             $condiciones .= "nombre_cientifico LIKE '%" . $params['nombre_cientifico'] . "%' AND ";
         }
         if (isset($params['grupo']) && !empty($params['grupo'])) {
             $condiciones .= "grupo_id = " . $params['grupo'] . " AND ";
         }
         //Las zonas varia de 1 a 6
         if (isset($params['zona']) && ((int) $params['zona'] > 0 && (int) $params['zona'] < 7)) {
             $joins .= CartaNacional::join();
             $condiciones .= "cn.Nivel1=" . (int) $params['zona'] . " AND cn.Nombre != 'Sin datos.' AND ";
         } elseif (isset($params['zona']) && (int) $params['zona'] == 7) {
             //Caso del importado
             $condiciones .= "(nacional_Importado='Importado' OR nacional_Importado='Nacional e Importado') AND ";
         }
         //Varia de 0 a 3 el valor de los radios
         if (isset($params['recomendacion']) && ((int) $params['recomendacion'] > -1 && (int) $params['recomendacion'] < 3)) {
             $condiciones .= "recomendacion=1 AND peso_promedio IS NOT NULL AND ";
             $order .= ' ORDER BY peso_promedio, tipo_imagen, nombre_comun ASC';
             if ((int) $params['recomendacion'] == 0) {
                 //Recomendable
                 $condiciones .= "peso REGEXP '^[01]|/[01]' AND peso != 0 AND ";
             }
             if ((int) $params['recomendacion'] == 1) {
                 //Poco recomendable
                 $condiciones .= "peso REGEXP '[23]' AND peso != 0 AND ";
             }
             if ((int) $params['recomendacion'] == 2) {
                 //No recomendable
                 $condiciones .= "peso REGEXP '[456789]' AND peso != 0 AND ";
             }
         } else {
             //busqueda sin recomendacion ni libre, te saca por default todos con recomendacion
             $order .= ' ORDER BY ISNULL(peso_promedio), peso_promedio, tipo_imagen, nombre_cientifico ASC';
         }
     }
     //decide cual tipo de busqueda es
     if (!empty($joins)) {
         $resultados = Yii::app()->db->createCommand($select . $joins . " WHERE " . substr($condiciones, 0, -5) . $order)->queryAll();
         $count = Yii::app()->db->createCommand("SELECT COUNT(*) as count FROM peces p " . $joins . " WHERE " . substr($condiciones, 0, -5))->queryAll();
         $pages = new CPagination($count[0]["count"]);
         $pages->setPageSize(50);
     } elseif (!empty($condiciones)) {
         $resultados = Yii::app()->db->createCommand($select . " WHERE " . substr($condiciones, 0, -5) . $order)->queryAll();
         $count = Yii::app()->db->createCommand("SELECT COUNT(*) as count FROM peces p WHERE " . substr($condiciones, 0, -5))->queryAll();
         $pages = new CPagination($count[0]["count"]);
         $pages->setPageSize(50);
     } else {
         //para ver todos los peces
         $resultados = Yii::app()->db->createCommand($select . $order)->queryAll();
         $count = Yii::app()->db->createCommand("SELECT COUNT(*) as count FROM peces p")->queryAll();
         $pages = new CPagination($count[0]["count"]);
         $pages->setPageSize(50);
     }
     if (count($resultados) > 0) {
         if (isset($params['json']) && !empty($params['json']) && (int) $params['json'] == 1) {
             header('Content-type: application/json; charset=UTF-8');
             if (isset($params['allow_o']) && $params['allow_o'] == '1') {
                 // Para poder consumir la respuesta del lado del cliente en cualquier servidor, ojo cambiar cuando se tenga el dominio correcto
                 header("Access-Control-Allow-Origin: *");
                 header("Access-Control-Allow-Methods: GET");
             }
             $data = array();
             $arr_obj = array();
             foreach ($resultados as $k) {
                 $json = array();
                 $pez = Peces::model()->findByPk($k["especie_id"]);
                 if ($pez->tipo_imagen == 1) {
                     $pez->imagen = str_replace('index.php/', '', Yii::app()->createAbsoluteUrl('imagenes/peces/' . $pez->imagen));
                 } elseif ($pez->tipo_imagen == 2) {
                     $pez->imagen = str_replace('index.php/', '', Yii::app()->createAbsoluteUrl('imagenes/siluetas/' . $pez->imagen));
                 }
                 $json["peces"] = $pez->attributes;
                 //Para la imgen del semaforo
                 if ($pez->recomendacion == 1) {
                     $json["peces"]["imagen_semaforo"] = str_replace('index.php/', '', Yii::app()->createAbsoluteUrl('imagenes/semaforo/' . Peces::peso_a_nombre_imagen($pez->peso)));
                 } else {
                     $json["peces"]["imagen_semaforo"] = "";
                 }
                 $json["grupo"] = !empty($pez->grupo) ? $pez->grupo->attributes : array();
                 $json["tipo_veda"] = !empty($pez->tipoVeda) ? $pez->tipoVeda->attributes : array();
                 if ($pez->cartaNacionals) {
                     $aux = array();
                     foreach ($pez->cartaNacionals as $k) {
                         array_push($aux, $k->attributes);
                     }
                     $json["carta_nacional"] = $aux;
                 }
                 if ($pez->distribucions) {
                     $aux = array();
                     foreach ($pez->distribucions as $k) {
                         array_push($aux, $k->attributes);
                     }
                     $json["distribucion"] = $aux;
                 }
                 if ($pez->estadoConservacions) {
                     $aux = array();
                     foreach ($pez->estadoConservacions as $k) {
                         array_push($aux, $k->attributes);
                     }
                     $json["estado_conservacion"] = $aux;
                 }
                 if ($pez->tipoCapturases) {
                     $aux = array();
                     foreach ($pez->tipoCapturases as $k) {
                         array_push($aux, $k->attributes);
                     }
                     $json["tipo_captura"] = $aux;
                 }
                 if (!$flag_ficha) {
                     array_push($data, $json);
                 } else {
                     echo preg_replace("/\\\\u([a-f0-9]{4})/e", "iconv('UCS-4LE','UTF-8',pack('V', hexdec('U\$1')))", json_encode($json));
                     //echo json_encode($json, JSON_UNESCAPED_UNICODE);
                 }
             }
             if (!$flag_ficha) {
                 echo preg_replace("/\\\\u([a-f0-9]{4})/e", "iconv('UCS-4LE','UTF-8',pack('V', hexdec('U\$1')))", json_encode($data));
                 //echo json_encode($data, JSON_UNESCAPED_UNICODE);
             }
         } else {
             $this->render('resultado', array('resultados' => $resultados, 'count' => $count[0]["count"], 'page_size' => 50, 'pages' => $pages));
         }
     } else {
         $this->render('resultado', array('vacio' => '<b>Tu b&uacute;squeda no di&oacute; ning&uacute;n resultado</b>'));
     }
 }