function ver($codigo, $offset = null) { $options['limit'] = $this->side_panel_limit; //Obtengo fichas destacadas $fichasDestacadas = Doctrine::getTable('Ficha')->MasDestacadas($this->side_panel_limit); $data['fichasDestacadas'] = $fichasDestacadas; $offset = $this->input->get('offset', true) ? $this->input->get('offset', true) - 1 : 0; $per_page = 10; $servicio = Doctrine::getTable('Servicio')->find($codigo); //Ordenar por titulo A->Z $fichas = Doctrine::getTable('Ficha')->findFichaOnServicio($codigo, array('limit' => $per_page, 'offset' => $offset)); $nfichas = Doctrine::getTable('Ficha')->findFichaOnServicio($codigo, array('justCount' => TRUE)); $entidad = $servicio->Entidad; $data['categorytabs_closed'] = TRUE; $data['title'] = '' . $servicio->nombre; $data['content'] = 'servicios/ver_v2'; $data['servicio'] = $servicio; $data['fichas'] = $fichas; $data['entidad'] = $entidad; $config['base_url'] = url_buscador(); $config['total_rows'] = $nfichas; $config['per_page'] = $per_page; $this->pagination->initialize($config); $data['base_url'] = site_url('servicios/ver/' . $codigo . '/'); $data['per_page'] = $per_page; $data['offset'] = $offset; $data['total'] = $nfichas; $data['paginacion'] = $this->pagination->create_links(); //habilitamos el cache $this->output->cache($this->config->item('cache')); $this->load->view('template_v2', $data); }
public function filtros() { $per_page = 10; //Se obtienen los parametros de busqueda definidos en el input del usuario $buscar = $this->input->get('buscar'); $offset = (int) $this->input->get('offset'); $exacto = $this->input->get('exacto'); $empresa = $vista_pymes = $this->input->get('e') && $this->input->get('e') == 1 ? true : false; $filtro_etapa_empresa = $this->input->get('ee') ? explode(',', $this->input->get('ee')) : array(); $filtro_tema_empresa = $this->input->get('te') ? explode(',', $this->input->get('te')) : array(); $filtro_apoyo_estado = $this->input->get('ae') ? explode(',', $this->input->get('ae')) : array(); $filtro_venta_anual = $this->input->get('va') ? explode(',', $this->input->get('va')) : array(); $filtro_rubro = $this->input->get('r') ? explode(',', $this->input->get('r')) : array(); $filtro_fps = is_numeric($this->input->get('fps')) ? $this->input->get('fps') : ''; //Se hace la busqueda en Sphinx $this->load->library('sphinxclient'); $this->sphinxclient->setServer($this->config->item('sphinx_host'), (int) $this->config->item('sphinx_port')); $this->sphinxclient->SetFieldWeights(array('keywords' => 10, 'titulo' => 100, 'sic' => 10)); $this->sphinxclient->SetMatchMode(SPH_MATCH_EXTENDED); $this->sphinxclient->setRankingMode(SPH_RANK_EXPR, 'bm25 + 10*(sum(lcs*user_weight)/max_lcs) + 10*(hits/max_hits)'); $this->sphinxclient->setLimits(0, 1000); //Sugerencias en base a diccionario $suggest = null; $query = trim($buscar); if (!$exacto) { $correccion = Doctrine::getTable('Diccionario')->corregirTexto($query); if ($correccion != $query) { //Es decir, hubo una correccion $suggest = $query; $query = $correccion; } } /* if (!empty($filtro_etapa_empresa) && empty($filtro_apoyo_estado)) { $this->sphinxclient->setFilter('etapa_empresa_id', $filtro_etapa_empresa); } */ if (!empty($filtro_tema_empresa)) { $this->sphinxclient->setFilter('tema_empresa_id', $filtro_tema_empresa); } if (!empty($filtro_apoyo_estado)) { $this->sphinxclient->setFilter('apoyo_estado_id', $filtro_apoyo_estado); } else { $ids = array(); if ($this->input->get('ee')) { $query_ae = Doctrine_Query::create()->select('ee.id, ae.id as apoyo_id, ae.nombre')->from('EtapaEmpresa ee, ee.ApoyosEstado ae')->where('ee.id = ?', $this->input->get('ee')); //echo $query_ae->getSqlQuery(); $query_data = $query_ae->execute(); $aIds = $query_data->toArray(); foreach ($aIds[0]['ApoyosEstado'] as $value) { $ids[] = $value['id']; } } else { $query_ae = Doctrine_Query::create()->select('id')->from('ApoyoEstado')->execute(); $aIds = $query_ae->toArray(); foreach ($aIds as $value) { $ids[] = $value['id']; } } $this->sphinxclient->setFilter('apoyo_estado_id', $ids); } if (!empty($filtro_venta_anual)) { $this->sphinxclient->setFilter('tipo_empresa_id', $filtro_venta_anual); } if (!empty($filtro_rubro)) { $this->sphinxclient->setFilter('rubro_id', $filtro_rubro); } if (!empty($filtro_fps)) { $this->sphinxclient->SetSelect('*,' . 'IF( (puntaje_fps_min <= ' . $filtro_fps . ' AND puntaje_fps_max >= ' . $filtro_fps . ') OR (puntaje_fps_min = 0 AND puntaje_fps_max >= ' . $filtro_fps . '), 1, 0)' . ' as filtro_fps'); $this->sphinxclient->setFilter('filtro_fps', array(1)); } $result = $this->sphinxclient->query($query, 'redchile_fichas'); //Se hace el match de los resultados de Sphinx con el modelo en Doctrine. $doctrine_query = Doctrine_Query::create()->from('Ficha f')->where('f.maestro = 0 AND f.publicado = 1'); if ($result['total'] > 0) { $page_results = array_slice($result['matches'], $offset, $per_page, TRUE); $matches = array_keys($page_results); $doctrine_query->whereIn('f.id', $matches); $doctrine_query->orderBy('FIELD (id, ' . implode(',', $matches) . ')'); } else { $doctrine_query->where('0'); } $fichas = $doctrine_query->execute(); $total_fichas = $result['total']; //Se configura la paginacion $this->pagination->initialize(array('base_url' => url_buscador(), 'total_rows' => $total_fichas, 'per_page' => $per_page)); $etapas_empresa = Doctrine::getTable('EtapaEmpresa')->findAll()->toArray(); $temas_empresa = Doctrine::getTable('TemaEmpresa')->findAll()->toArray(); $apoyos_estado = array(); if ($filtro_etapa_empresa) { $apoyos_estado = Doctrine::getTable('ApoyoEstado')->getApoyoByEtapa($filtro_etapa_empresa)->toArray(); } $ventas_anuales = Doctrine::getTable('TipoEmpresa')->findAll()->toArray(); $rubros = Doctrine::getTable('Rubro')->findAll()->toArray(); //Pasamos los parametros a la vista y cargamos la vista. $data['buscar'] = $buscar; //La busqueda original del usuario $data['empresa'] = $empresa; //Es busqueda de ChilAtiende Empresas? $data['query'] = $query; //La busqueda que se hizo realmente $data['suggest'] = $suggest; //Sugerencia de alternativa $data['fichas'] = $fichas; $data['offset'] = $offset; $data['total_fichas'] = $total_fichas; $data['vista_filtros'] = 'filtro_pyme'; $data['etapas_empresa'] = $etapas_empresa; $data['filtro_etapa_empresa'] = $filtro_etapa_empresa; $data['temas_empresa'] = $temas_empresa; $data['filtro_tema_empresa'] = $filtro_tema_empresa; $data['apoyos_estado'] = $apoyos_estado; $data['filtro_apoyo_estado'] = $filtro_apoyo_estado; $data['ventas_anuales'] = $ventas_anuales; $data['filtro_venta_anual'] = $filtro_venta_anual; $data['rubros'] = $rubros; $data['filtro_rubro'] = $filtro_rubro; $data['filtro_fps'] = $filtro_fps; $data['promocionados'] = array(); $data['title'] = 'Resultados de Búsqueda'; $data['content'] = 'busqueda/resultado_v2'; $template = $empresa ? 'template_emprendete_v2' : 'template_v2'; $this->load->view($template, $data); }
?> <h2>Instituciones</h2> <ul id="institucion" class="text-small toggable"> <?php foreach ($instituciones as $institucion) { $activo = in_array($institucion->codigo, $filtro_institucion); ?> <li class="<?php echo $activo ? 'on' : ''; ?> "> <a class="<?php echo $activo ? 'on' : ''; ?> " href="<?php echo url_buscador('i', $institucion->codigo, $activo, false); ?> "><?php echo $institucion->nombre; ?> </a> </li> <?php } ?> </ul> <?php } ?>
<?php } ?> </ul> <h2>Rubros</h2> <ul> <?php if (!isset($filtro_rubro)) { $filtro_rubro = array(); } foreach ($rubros as $r) { $activo = in_array($r['id'], $filtro_rubro); ?> <li> <a href="<?php echo url_buscador('r', $r['id'], $activo, false); ?> " class="<?php echo $activo ? 'on' : ''; ?> "><?php echo $r['nombre']; ?> </a> </li> <?php } ?> </ul> <h2>Ficha Protección Social</h2> <ul>
echo $query ? ' para "' . htmlspecialchars($query) . '"' : ''; ?> .</strong></p> <p>Sugerencias:</p> <ul> <li>Asegúrate de que todas las palabras estén escritas correctamente.</li> <li>Prueba diferentes palabras clave.</li> <li>Prueba palabras clave más generales.</li> </ul> </div> </div> <?php if ($suggest) { ?> <div class="alert alert-warning">Quizás quisiste decir: <a href="<?php echo url_buscador('buscar', $suggest); ?> "><?php echo $suggest; ?> </a></div> <?php } ?> </div> <?php } ?> </div> </div> </div>
</a> <span>(<?php echo $institucion->numero_fichas; ?> )</span> <p><?php echo $institucion->nombre; ?> </p> <?php } else { ?> <a class="<?php echo $activo ? 'on' : ''; ?> " href="<?php echo url_buscador('instituciones', $institucion->codigo, $activo, true); ?> "><?php echo $institucion->nombre . ($institucion->sigla ? ' (' . $institucion->sigla . ')' : ''); ?> </a> <span>(<?php echo $institucion->numero_fichas; ?> )</span> <?php } ?> </li> <?php }