public function executeIndex(sfWebRequest $request) { $culture = $this->getUser()->getCulture(); $cpos = new Criteria(); $cpos->add(SfReviewPeer::VALUE, 1); $cpos->add(SfReviewPeer::IS_ACTIVE, 1); //$cpos->add(SfReviewPeer::CULTURE, $culture); $this->totalUpReviews = SfReviewPeer::doCount($cpos); $cneg = new Criteria(); $cneg->add(SfReviewPeer::VALUE, -1); $cneg->add(SfReviewPeer::IS_ACTIVE, 1); //$cneg->add(SfReviewPeer::CULTURE, $culture); $this->totalDownReviews = SfReviewPeer::doCount($cneg); $exclude = ""; $this->reviewables = EntityManager::getTopEntities(6, $exclude, "WebEntity", true); $c = new Criteria(); $c->addDescendingOrderByColumn(PoliticoPeer::SUMU); $c->addAscendingOrderByColumn(PoliticoPeer::SUMD); $c->setLimit(5); $this->topPoliticos = PoliticoPeer::doSelect($c); $c = new Criteria(); $c->addDescendingOrderByColumn(PartidoPeer::SUMU); $c->addAscendingOrderByColumn(PartidoPeer::SUMD); $c->setLimit(5); $c->add(PartidoPeer::IS_ACTIVE, true); $this->partidosMasVotados = PartidoPeer::doSelect($c); $c = new Criteria(); $c->addDescendingOrderByColumn(PropuestaPeer::SUMU); $c->addAscendingOrderByColumn(PropuestaPeer::SUMD); $c->setLimit(5); $c->add(PropuestaPeer::IS_ACTIVE, true); $c->add(PropuestaPeer::CULTURE, $culture); $this->propuestasMasVotadas = PropuestaPeer::doSelect($c); //Totales /* $c = new Criteria(); $this->totalPoliticos = PoliticoPeer::doCount($c); $c = new Criteria(); $c->add(PartidoPeer::IS_ACTIVE, true); $this->totalPartidos = PartidoPeer::doCount($c); $c = new Criteria(); $c->add(PropuestaPeer::IS_ACTIVE, true); $c->add(PropuestaPeer::CULTURE, $culture); $this->totalPropuestas = PropuestaPeer::doCount($c); */ $this->response->addMeta('Description', sfContext::getInstance()->getI18N()->__('Comparte opiniones sobre políticos y partidos de España. Ranking de los políticos y partidos más votados.')); // Ultimos comentarios $filter = array(); $filter['culture'] = $culture; //$this->topReviews = SfReviewManager::getReviews($filter, 1, 5); $this->activities = SfReviewManager::getActivities($filter, 1, 5); // elecciones destacadas $convocatoriaActiva = sfConfig::get('sf_convocatoria_activa'); $this->convocatoria = ConvocatoriaPeer::retrieveByPk($convocatoriaActiva); }
/** * Executes index action * * @param sfRequest $request A request object */ public function executeShow(sfWebRequest $request) { $vanity = $request->getParameter('vanity'); $convocatoria = $request->getParameter('convocatoria'); $this->geoName = $request->getParameter('geo', false); $c = new Criteria(); $c->addJoin(ConvocatoriaPeer::ELECCION_ID, EleccionPeer::ID); $c->add(ConvocatoriaPeer::NOMBRE, $convocatoria); $c->add(EleccionPeer::VANITY, $vanity); $this->convocatoria = ConvocatoriaPeer::doSelectOne($c); $this->forward404Unless($this->convocatoria); // Enlaces $c = new Criteria(); $rCriterion = $c->getNewCriterion(EnlacePeer::CULTURE, null, Criteria::ISNULL); $rCriterion->addOr($c->getNewCriterion(EnlacePeer::CULTURE, $this->getUser()->getCulture())); $rCriterion->addOr($c->getNewCriterion(EnlacePeer::CULTURE, '')); $c->add($rCriterion); $c->add(EnlacePeer::CONVOCATORIA_ID, $this->convocatoria->getId()); $c->addAscendingOrderByColumn(EnlacePeer::ORDEN); $this->activeEnlaces = EnlacePeer::doSelect($c); $ret = $this->convocatoria->getResults($this->geoName); $this->partidos = $ret['partidos']; $this->totalEscanyos = $ret['totalEscanyos']; $this->minSumu = $ret['minSumu']; $this->minSumd = $ret['minSumd']; $this->lastDate = $ret['lastDate']; $this->apellidos = $ret['apellidos']; $this->institucionName = $ret['institucionName']; $this->circus = $ret['circus']; // Politicos $criteria = new Criteria(); $criteria->addJoin(PoliticoListaPeer::POLITICO_ID, PoliticoPeer::ID); $criteria->addJoin(PoliticoListaPeer::LISTA_ID, ListaPeer::ID); $criteria->add(ListaPeer::CONVOCATORIA_ID, $this->convocatoria->getId()); if ($this->geoName) { $criteria->addJoin(ListaPeer::CIRCUNSCRIPCION_ID, CircunscripcionPeer::ID); $criteria->addJoin(CircunscripcionPeer::GEO_ID, GeoPeer::ID); $criteria->add(GeoPeer::NOMBRE, $this->geoName); } $criteria->addDescendingOrderByColumn(PoliticoPeer::SUMU); $criteria->addAscendingOrderByColumn(PoliticoPeer::SUMD); $criteria->setLimit(5); $this->topPoliticos = PoliticoPeer::doSelect($criteria); // Metas $this->title = ($this->geoName ? $this->geoName . ': ' : '') . $this->convocatoria->getEleccion()->getNombre() . " " . $this->convocatoria->getNombre(); $this->response->setTitle($this->title); $description = sfContext::getInstance()->getI18N()->__("%1%.%2%: listas%3%, partidos, candidatos, previsión de escaños, votos de los usuarios, ...", array('%1%' => $this->convocatoria->getEleccion()->getNombre(), '%2%' => sfContext::getInstance()->getI18N()->__("%dia% de %mes%", array('%dia%' => format_date($this->convocatoria->getFecha(), ' d'), '%mes%' => format_date($this->convocatoria->getFecha(), 'MMMM'))), '%3%' => $this->geoName ? ' ' . $this->geoName : '')); $this->response->addMeta('Description', $description); }
public static function retrieveForAutoSelect($q, $limit) { $criteria = new Criteria(); $pieces = explode(" ", $q); $criterions = array(); $idx = 0; $criteria->addJoin(ConvocatoriaPeer::ELECCION_ID, EleccionI18nPeer::ID); foreach ($pieces as $piece) { sfContext::getInstance()->getLogger()->debug("A SEARCH PIECE {$piece}"); $criterions[$idx] = $criteria->getNewCriterion(EleccionI18nPeer::NOMBRE_CORTO, '%' . $piece . '%', Criteria::LIKE); $criteria->addAnd($criterions[$idx]); $idx++; } $criteria->addAscendingOrderByColumn(EleccionI18nPeer::NOMBRE_CORTO); $criteria->setLimit($limit); $convocatorias = array(); foreach (ConvocatoriaPeer::doSelect($criteria) as $convocatoria) { $convocatorias[$convocatoria->getId()] = (string) $convocatoria; } return $convocatorias; }
/** * Populates the object using an array. * * This is particularly useful when populating an object from one of the * request arrays (e.g. $_POST). This method goes through the column * names, checking to see whether a matching key exists in populated * array. If so the setByName() method is called for that column. * * You can specify the key type of the array by additionally passing one * of the class type constants BasePeer::TYPE_PHPNAME, BasePeer::TYPE_STUDLYPHPNAME, * BasePeer::TYPE_COLNAME, BasePeer::TYPE_FIELDNAME, BasePeer::TYPE_NUM. * The default key type is the column's phpname (e.g. 'AuthorId') * * @param array $arr An array to populate the object from. * @param string $keyType The type of keys the array uses. * @return void */ public function fromArray($arr, $keyType = BasePeer::TYPE_PHPNAME) { $keys = ConvocatoriaPeer::getFieldNames($keyType); if (array_key_exists($keys[0], $arr)) { $this->setId($arr[$keys[0]]); } if (array_key_exists($keys[1], $arr)) { $this->setEleccionId($arr[$keys[1]]); } if (array_key_exists($keys[2], $arr)) { $this->setNombre($arr[$keys[2]]); } if (array_key_exists($keys[3], $arr)) { $this->setFecha($arr[$keys[3]]); } if (array_key_exists($keys[4], $arr)) { $this->setCreatedAt($arr[$keys[4]]); } if (array_key_exists($keys[5], $arr)) { $this->setImagen($arr[$keys[5]]); } if (array_key_exists($keys[6], $arr)) { $this->setClosedAt($arr[$keys[6]]); } if (array_key_exists($keys[7], $arr)) { $this->setTotalEscanyos($arr[$keys[7]]); } if (array_key_exists($keys[8], $arr)) { $this->setMinSumu($arr[$keys[8]]); } if (array_key_exists($keys[9], $arr)) { $this->setMinSumd($arr[$keys[9]]); } }
protected function execute($arguments = array(), $options = array()) { // initialize the database connection $databaseManager = new sfDatabaseManager($this->configuration); $connection = $databaseManager->getDatabase($options['connection'] ? $options['connection'] : null)->getConnection(); $handle = fopen("php://stdin", "r"); $line = fgets($handle); while ($line = fgets($handle)) { $data = explode(";", "{$line}"); $c = new Criteria(); $c->add(PartidoPeer::ABREVIATURA, $data[5]); $partido = PartidoPeer::doSelectOne($c); if (!$partido) { echo "Not found: (" . $data[5] . ")\n"; continue; } $circu = CircunscripcionPeer::retrieveByPK($data[4]); $convocatoria = ConvocatoriaPeer::retrieveByPK($data[3]); $c = new Criteria(); $c->add(ListaPeer::CONVOCATORIA_ID, $data[3]); $c->add(ListaPeer::CIRCUNSCRIPCION_ID, $data[4]); $c->add(ListaPeer::PARTIDO_ID, $partido->getId()); $lista = ListaPeer::doSelectOne($c); if (!$lista) { $lista = new Lista(); $lista->setPartido($partido); $lista->setCircunscripcion($circu); $lista->setConvocatoria($convocatoria); $lista->save(); echo "Created lista ({$partido}, {$circu})\n"; } $politicos = false; $c = new Criteria(); $c->add("concat(nombre, ' ', apellidos)", trim($data[2])); //$c->add('fullname', utf8_encode( trim($data[2]) ), Criteria::EQUAL); $politicos = PoliticoPeer::doSelect($c); if (count($politicos) != 0) { echo "(ASIGNADO) " . $data[2] . "\n"; $politico = $politicos[0]; } else { echo "(NUEVO) " . $data[2] . "\n"; $politico = new Politico(); $nombreApellidos = explode(" ", $data[2]); $nombre = array_shift($nombreApellidos); $apellidos = implode(" ", $nombreApellidos); $politico->setNombre($nombre); $politico->setApellidos($apellidos); if ($data[7] != '1') { if (count($data) > 10 && trim($data[10]) != '') { $c = new Criteria(); $c->add(PartidoPeer::ABREVIATURA, $data[5]); $partido = PartidoPeer::doSelectOne($c); if ($partido) { $politico->setPartido($partido); } } else { $politico->setPartido($lista->getPartido()); } } if ($data[1] && trim($data[1]) != '') { $politico->setSexo($data[1] == "hombre" ? 'H' : 'M'); } $politico->save(); $politicoI18n = new PoliticoI18n(); $politicoI18n->setPolitico($politico); $politicoI18n->setCulture('es'); $politicoI18n->save(); $politicoI18n = new PoliticoI18n(); $politicoI18n->setPolitico($politico); $politicoI18n->setCulture('ca'); $politicoI18n->save(); } $c = new Criteria(); $c->add(PoliticoListaPeer::LISTA_ID, $lista->getId()); $c->add(PoliticoListaPeer::POLITICO_ID, $politico->getId()); $pl = PoliticoListaPeer::doSelectOne($c); if (!$pl) { $pl = new PoliticoLista(); $pl->setLista($lista); $pl->setPolitico($politico); } else { echo "Ya estaba.\n"; } if ($data[6] != '1') { $pl->setOrden($data[0]); } $pl->save(); //echo $data[2]; } fclose($handle); }
protected function execute($arguments = array(), $options = array()) { $sfContext = sfContext::createInstance($this->configuration); $controller = $sfContext->getController(); $this->cultures = array('ca' => 'cat', 'es' => 'es'); $culture = $options['culture']; // initialize the database connection $databaseManager = new sfDatabaseManager($this->configuration); $connection = $databaseManager->getDatabase($options['connection'] ? $options['connection'] : null)->getConnection(); //foreach($this->cultures as $culture => $ext){ $sfContext->getUser()->setCulture($culture); // **************** HOME ********************** $this->writeToSitemap("voota-{$culture}", $controller->genUrl("@homepage", true), $culture); // **************** Ultimas opiniones ********************** $this->writeToSitemap("voota-{$culture}", $controller->genUrl("@ultimas_opiniones_{$culture}", true), $culture); $this->writeToSitemap("voota-{$culture}", $controller->genUrl("@ultimas_opiniones_politicos_{$culture}", true), $culture); $this->writeToSitemap("voota-{$culture}", $controller->genUrl("@ultimas_opiniones_partidos_{$culture}", true), $culture); $this->writeToSitemap("voota-{$culture}", $controller->genUrl("@ultimas_opiniones_propuestas_{$culture}", true), $culture); $this->writeToSitemap("voota-{$culture}", $controller->genUrl("@ultimas_opiniones_otras_{$culture}", true), $culture); $this->writeToSitemap("voota-{$culture}", $controller->genUrl("@ultimas_opiniones_feed_{$culture}", true), $culture); $this->writeToSitemap("voota-{$culture}", $controller->genUrl("@ultimas_opiniones_politicos_feed_{$culture}", true), $culture); $this->writeToSitemap("voota-{$culture}", $controller->genUrl("@ultimas_opiniones_partidos_feed_{$culture}", true), $culture); $this->writeToSitemap("voota-{$culture}", $controller->genUrl("@ultimas_opiniones_propuestas_feed_{$culture}", true), $culture); $this->writeToSitemap("voota-{$culture}", $controller->genUrl("@ultimas_opiniones_otras_feed_{$culture}", true), $culture); // **************** varias ********************** $this->writeToSitemap("voota-{$culture}", $controller->genUrl("@about", true), $culture); $this->writeToSitemap("voota-{$culture}", $controller->genUrl("@rules", true), $culture); $this->writeToSitemap("voota-{$culture}", $controller->genUrl("@search", true), $culture); $this->writeToSitemap("voota-{$culture}", $controller->genUrl("@contact", true), $culture); // **************** Fichas POLITICOS ********************** $c = new Criteria(); //$c->setLimit(5); $politicos = PoliticoPeer::doSelect($c); foreach ($politicos as $politico) { $this->writeToSitemap("politico-{$culture}", $controller->genUrl("politico/show?id=" . $politico->getVanity(), true), $culture); } // **************** Fichas PARTIDOS ********************** $c = new Criteria(); $c->add(PartidoPeer::IS_ACTIVE, true); $partidos = PartidoPeer::doSelect($c); foreach ($partidos as $partido) { $this->writeToSitemap("partido-{$culture}", $controller->genUrl("partido/show?id=" . $partido->getAbreviatura(), true), $culture); } // **************** Fichas PROPUESTAS ********************** $c = new Criteria(); $c->add(PropuestaPeer::IS_ACTIVE, true); $c->add(PropuestaPeer::CULTURE, $culture); $propuestas = PropuestaPeer::doSelect($c); foreach ($propuestas as $propuesta) { $this->writeToSitemap("propuesta-{$culture}", $controller->genUrl("propuesta/show?id=" . $propuesta->getVanity(), true), $culture); } // **************** Fichas USUARIOS ********************** $c = new Criteria(); $c->add(SfGuardUserPeer::IS_ACTIVE, true); $usuarios = SfGuardUserPeer::doSelect($c); foreach ($usuarios as $usuario) { $this->writeToSitemap("usuario-{$culture}", $controller->genUrl("perfil/show?username="******"politico-feed-{$culture}", $controller->genUrl("politico/show?id=" . $politico->getVanity(), true), $culture); } // **************** feeds PARTIDOS ********************** $c = new Criteria(); $c->add(PartidoPeer::IS_ACTIVE, true); $partidos = PartidoPeer::doSelect($c); foreach ($partidos as $partido) { $this->writeToSitemap("partido-feed-{$culture}", $controller->genUrl("partido/feed?id=" . $partido->getAbreviatura(), true), $culture); } // **************** feeds PROPUESTAS ********************** $c = new Criteria(); $c->add(PropuestaPeer::IS_ACTIVE, true); $c->add(PropuestaPeer::CULTURE, $culture); $propuestas = PropuestaPeer::doSelect($c); foreach ($propuestas as $propuesta) { $this->writeToSitemap("propuesta-feed-{$culture}", $controller->genUrl("propuesta/feed?id=" . $propuesta->getVanity(), true), $culture); } // **************** feeds USUARIOS ********************** $c = new Criteria(); $c->add(SfGuardUserPeer::IS_ACTIVE, true); $usuarios = SfGuardUserPeer::doSelect($c); foreach ($usuarios as $usuario) { $this->writeToSitemap("usuario-feed-{$culture}", $controller->genUrl("perfil/feed?username="******"propuesta-ranking-{$culture}", $controller->genUrl("propuesta/ranking", true), $culture); $pager = EntityManager::getPropuestas($culture); $idx = 1; while ($idx < $pager->getLastPage()) { $idx++; $this->writeToSitemap("propuesta-ranking-{$culture}", $controller->genUrl("propuesta/ranking?page={$idx}", true), $culture); } // **************** ranking POLITICOS ********************** $this->writeToSitemap("politico-ranking-{$culture}", $controller->genUrl("politico/ranking", true), $culture); $pager = EntityManager::getPoliticos(false, false, $culture); $idx = 1; while ($idx < $pager->getLastPage()) { $idx++; $this->writeToSitemap("politico-ranking-{$culture}", $controller->genUrl("politico/ranking?page={$idx}", true), $culture); } # ranking de polis filtrados por partido $c = new Criteria(); $c->add(PartidoPeer::IS_ACTIVE, true); $partidos = PartidoPeer::doSelect($c); foreach ($partidos as $partido) { $this->writeToSitemap("politico-ranking-{$culture}", $controller->genUrl("politico/ranking?partido=" . $partido->getAbreviatura(), true), $culture); $pager = EntityManager::getPoliticos($partido->getAbreviatura(), false, $culture); $idx = 1; while ($idx < $pager->getLastPage()) { $idx++; $this->writeToSitemap("politico-ranking-{$culture}", $controller->genUrl("politico/ranking?partido=" . $partido->getAbreviatura() . "&page={$idx}", true), $culture); } # ranking de polis filtrados por partido e insti $c = new Criteria(); $c->add(InstitucionPeer::IS_ACTIVE, true); $c->addJoin(PoliticoInstitucionPeer::INSTITUCION_ID, InstitucionPeer::ID); $c->addJoin(PoliticoPeer::ID, PoliticoInstitucionPeer::POLITICO_ID); $c->add(PoliticoPeer::PARTIDO_ID, $partido->getId()); $instis = InstitucionPeer::doSelect($c); foreach ($instis as $insti) { $this->writeToSitemap("politico-ranking-{$culture}", $controller->genUrl("politico/ranking?partido=" . $partido->getAbreviatura() . "&institucion=" . $insti->getVanity(), true), $culture); $pager = EntityManager::getPoliticos($partido->getAbreviatura(), $insti->getVanity(), $culture); $idx = 1; while ($idx < $pager->getLastPage()) { $idx++; $this->writeToSitemap("politico-ranking-{$culture}", $controller->genUrl("politico/ranking?partido=" . $partido->getAbreviatura() . "&institucion=" . $insti->getVanity() . "&page={$idx}", true), $culture); } } } # ranking de polis filtrados por insti $c = new Criteria(); $c->add(InstitucionPeer::IS_ACTIVE, true); $instis = InstitucionPeer::doSelect($c); foreach ($instis as $insti) { $this->writeToSitemap("politico-ranking-{$culture}", $controller->genUrl("politico/ranking?partido=all&institucion=" . $insti->getVanity(), true), $culture); $pager = EntityManager::getPoliticos(false, $insti->getVanity(), $culture); $idx = 1; while ($idx < $pager->getLastPage()) { $idx++; $this->writeToSitemap("politico-ranking-{$culture}", $controller->genUrl("politico/ranking?partido=all&institucion=" . $insti->getVanity() . "&page={$idx}", true), $culture); } } // **************** ranking PARTIDOS ********************** $this->writeToSitemap("partido-ranking-{$culture}", $controller->genUrl("partido/ranking", true), $culture); $pager = EntityManager::getPartidos(false, $culture); $idx = 1; while ($idx < $pager->getLastPage()) { $idx++; $this->writeToSitemap("partido-ranking-{$culture}", $controller->genUrl("partido/ranking?page={$idx}", true), $culture); } $c = new Criteria(); $c->add(InstitucionPeer::IS_ACTIVE, true); $instis = InstitucionPeer::doSelect($c); foreach ($instis as $insti) { $this->writeToSitemap("partido-ranking-{$culture}", $controller->genUrl("partido/ranking?institucion=" . $insti->getVanity(), true), $culture); $pager = EntityManager::getPartidos($insti->getVanity(), $culture); $idx = 1; while ($idx < $pager->getLastPage()) { $idx++; $this->writeToSitemap("partido-ranking-{$culture}", $controller->genUrl("partido/ranking?institucion=" . $insti->getVanity() . "&page={$idx}", true), $culture); } } // **************** elecciones ********************** $c = new Criteria(); $convocatorias = ConvocatoriaPeer::doSelect($c); foreach ($convocatorias as $convocatoria) { $this->writeToSitemap("elecciones-{$culture}", $controller->genUrl('eleccion/show?vanity=' . $convocatoria->getEleccion()->getVanity() . '&convocatoria=' . $convocatoria->getNombre(), true), $culture); $used = array(); foreach ($convocatoria->getListasJoinCircunscripcion() as $geoLista) { if (!in_array($geoLista->getCircunscripcion()->getGeo(), $used)) { $used[] = $geoLista->getCircunscripcion()->getGeo(); $this->writeToSitemap("elecciones-{$culture}", $controller->genUrl('eleccion/show?geo=' . $geoLista->getCircunscripcion()->getGeo()->getNombre() . '&vanity=' . $convocatoria->getEleccion()->getVanity() . '&convocatoria=' . $convocatoria->getNombre(), true), $culture); } $this->writeToSitemap("elecciones-{$culture}", $controller->genUrl('lista/show?partido=' . $geoLista->getPartido()->getAbreviatura() . '&geo=' . $geoLista->getCircunscripcion()->getGeo()->getNombre() . '&vanity=' . $convocatoria->getEleccion()->getVanity() . '&convocatoria=' . $convocatoria->getNombre(), true), $culture); } } //} $this->closeAll($culture); }
public function executeAutoCompleteCo($request) { $this->getResponse()->setContentType('application/json'); $convocatorias = ConvocatoriaPeer::retrieveForAutoSelect($request->getParameter('q'), $request->getParameter('limit')); return $this->renderText(json_encode($convocatorias)); }
/** * Executes index action * * @param sfRequest $request A request object */ public function executeShow(sfWebRequest $request) { $vanity = $request->getParameter('vanity'); $convocatoria = $request->getParameter('convocatoria'); $this->geoName = $request->getParameter('geo'); $partido = $request->getParameter('partido'); $order = $request->getParameter("o", ""); $c = new Criteria(); $c->addJoin(ListaPeer::CIRCUNSCRIPCION_ID, CircunscripcionPeer::ID); $c->addJoin(CircunscripcionPeer::GEO_ID, GeoPeer::ID); $c->addJoin(ListaPeer::PARTIDO_ID, PartidoPeer::ID); $c->addJoin(ListaPeer::CONVOCATORIA_ID, ConvocatoriaPeer::ID); $c->addJoin(ConvocatoriaPeer::ELECCION_ID, EleccionPeer::ID); $c->add(ConvocatoriaPeer::NOMBRE, $convocatoria); $c->add(GeoPeer::NOMBRE, $this->geoName); $c->add(PartidoPeer::ABREVIATURA, $partido); $c->add(EleccionPeer::VANITY, $vanity); $this->lista = ListaPeer::doSelectOne($c); $this->forward404Unless($this->lista); // Geos $c = new Criteria(); $c->addJoin(ListaPeer::CIRCUNSCRIPCION_ID, CircunscripcionPeer::ID); $c->addJoin(CircunscripcionPeer::GEO_ID, GeoPeer::ID); $c->add(ListaPeer::CONVOCATORIA_ID, $this->lista->getConvocatoria()->getId()); $c->add(ListaPeer::PARTIDO_ID, $this->lista->getPartido()->getId()); $c->addAscendingOrderByColumn(GeoPeer::NOMBRE); $c->setDistinct(); $this->geos = GeoPeer::doSelect($c); $instituciones = $this->lista->getConvocatoria()->getEleccion()->getEleccionInstitucions(); $this->institucionName = $instituciones[0]->getInstitucion(); // Lista Voota $c = new Criteria(); $c->add(ConvocatoriaPeer::NOMBRE, $convocatoria); $this->convocatoria = ConvocatoriaPeer::doSelectOne($c); $this->order = $order ? $order : 'pd'; /* if ($this->convocatoria->getClosedAt()){ $c = new Criteria(); $c->addJoin(ListaCallePeer::POLITICO_ID, PoliticoPeer::ID); $c->addJoin(PoliticoListaPeer::POLITICO_ID, PoliticoPeer::ID); $c->add(PoliticoListaPeer::LISTA_ID, $this->lista->getId()); if ($this->order == "pa"){ $c->addAscendingOrderByColumn(ListaCallePeer::SUMU); } else if ($this->order == "pd") { $c->addDescendingOrderByColumn(ListaCallePeer::SUMU); $c->addAscendingOrderByColumn(ListaCallePeer::SUMD); } else if ($this->order == "na"){ $c->addAscendingOrderByColumn(ListaCallePeer::SUMD); } else if ($this->order == "nd") { $c->addDescendingOrderByColumn(ListaCallePeer::SUMD); $c->addAscendingOrderByColumn(ListaCallePeer::SUMU); } $c->setDistinct(); $this->politicosListaVoota = PoliticoPeer::doSelect( $c ); } else { $c = new Criteria(); $c->addJoin(PoliticoListaPeer::POLITICO_ID, PoliticoPeer::ID); $c->add(PoliticoListaPeer::LISTA_ID, $this->lista->getId()); if ($this->order == "pa"){ $c->addAscendingOrderByColumn(PoliticoPeer::SUMU); } else if ($this->order == "pd") { $c->addDescendingOrderByColumn(PoliticoPeer::SUMU); $c->addAscendingOrderByColumn(PoliticoPeer::SUMD); } else if ($this->order == "na"){ $c->addAscendingOrderByColumn(PoliticoPeer::SUMD); } else if ($this->order == "nd") { $c->addDescendingOrderByColumn(PoliticoPeer::SUMD); $c->addAscendingOrderByColumn(PoliticoPeer::SUMU); } $this->politicosListaVoota = PoliticoPeer::doSelect( $c ); } */ $listaElectoral = new ListaElectoral($this->lista->getConvocatoriaId(), $this->lista->getPartidoId(), $this->lista->getCircunscripcion()->getGeo()->getNombre(), $this->order); $this->politicosListaVoota = $listaElectoral->getPoliticos(); // Lista oficial $c = new Criteria(); $c->addJoin(PoliticoListaPeer::POLITICO_ID, PoliticoPeer::ID); $c->add(PoliticoListaPeer::LISTA_ID, $this->lista->getId()); $c->add(PoliticoListaPeer::ORDEN, null, Criteria::ISNOTNULL); $c->add(PoliticoListaPeer::ORDEN, 0, Criteria::GREATER_THAN); $c->addAscendingOrderByColumn(PoliticoListaPeer::ORDEN); $this->politicosListaOficial = PoliticoPeer::doSelect($c); // Metas $this->title = sfContext::getInstance()->getI18N()->__("Lista electoral %1% %2% %3%, %4%", array('%1%' => $this->lista->getPartido(), '%2%' => $this->lista->getConvocatoria()->getEleccion()->getNombre(), '%3%' => $this->lista->getConvocatoria()->getNombre(), '%4%' => $this->lista->getCircunscripcion()->getGeo())); $this->response->setTitle($this->title); $description = sfContext::getInstance()->getI18N()->__("Lista oficial del partido vs Lo que dice la calle: %1%, circunscripcón de %2%, %3% %4%", array('%1%' => $this->lista->getPartido()->getNombre(), '%2%' => $this->lista->getCircunscripcion()->getGeo(), '%3%' => $this->lista->getConvocatoria()->getEleccion()->getNombre(), '%4%' => $this->lista->getConvocatoria()->getNombre())); $this->response->addMeta('Description', $description); }
/** * Selects a collection of ConvocatoriaI18n objects pre-filled with all related objects. * * @param Criteria $criteria * @param PropelPDO $con * @param String $join_behavior the type of joins to use, defaults to Criteria::LEFT_JOIN * @return array Array of ConvocatoriaI18n objects. * @throws PropelException Any exceptions caught during processing will be * rethrown wrapped into a PropelException. */ public static function doSelectJoinAll(Criteria $criteria, $con = null, $join_behavior = Criteria::LEFT_JOIN) { $criteria = clone $criteria; // Set the correct dbName if it has not been overridden if ($criteria->getDbName() == Propel::getDefaultDB()) { $criteria->setDbName(self::DATABASE_NAME); } ConvocatoriaI18nPeer::addSelectColumns($criteria); $startcol2 = ConvocatoriaI18nPeer::NUM_COLUMNS - ConvocatoriaI18nPeer::NUM_LAZY_LOAD_COLUMNS; ConvocatoriaPeer::addSelectColumns($criteria); $startcol3 = $startcol2 + (ConvocatoriaPeer::NUM_COLUMNS - ConvocatoriaPeer::NUM_LAZY_LOAD_COLUMNS); $criteria->addJoin(ConvocatoriaI18nPeer::ID, ConvocatoriaPeer::ID, $join_behavior); // symfony_behaviors behavior foreach (sfMixer::getCallables(self::getMixerPreSelectHook(__FUNCTION__)) as $sf_hook) { call_user_func($sf_hook, 'BaseConvocatoriaI18nPeer', $criteria, $con); } $stmt = BasePeer::doSelect($criteria, $con); $results = array(); while ($row = $stmt->fetch(PDO::FETCH_NUM)) { $key1 = ConvocatoriaI18nPeer::getPrimaryKeyHashFromRow($row, 0); if (null !== ($obj1 = ConvocatoriaI18nPeer::getInstanceFromPool($key1))) { // We no longer rehydrate the object, since this can cause data loss. // See http://propel.phpdb.org/trac/ticket/509 // $obj1->hydrate($row, 0, true); // rehydrate } else { $cls = ConvocatoriaI18nPeer::getOMClass(false); $obj1 = new $cls(); $obj1->hydrate($row); ConvocatoriaI18nPeer::addInstanceToPool($obj1, $key1); } // if obj1 already loaded // Add objects for joined Convocatoria rows $key2 = ConvocatoriaPeer::getPrimaryKeyHashFromRow($row, $startcol2); if ($key2 !== null) { $obj2 = ConvocatoriaPeer::getInstanceFromPool($key2); if (!$obj2) { $cls = ConvocatoriaPeer::getOMClass(false); $obj2 = new $cls(); $obj2->hydrate($row, $startcol2); ConvocatoriaPeer::addInstanceToPool($obj2, $key2); } // if obj2 loaded // Add the $obj1 (ConvocatoriaI18n) to the collection in $obj2 (Convocatoria) $obj2->addConvocatoriaI18n($obj1); } // if joined row not null $results[] = $obj1; } $stmt->closeCursor(); return $results; }
/** * Selects a collection of {@link Convocatoria} objects with a {@link ConvocatoriaI18n} translation populated. * * @param Criteria $criteria * @param string $culture * @param PropelPDO $con * @param string $join_behavior * * @return array */ public static function doSelectWithI18n(Criteria $criteria, $culture = null, $con = null, $join_behavior = Criteria::LEFT_JOIN) { $criteria = clone $criteria; if (null === $culture) { $culture = sfPropel::getDefaultCulture(); } // Set the correct dbName if it has not been overridden if ($criteria->getDbName() == Propel::getDefaultDB()) { $criteria->setDbName(self::DATABASE_NAME); } ConvocatoriaPeer::addSelectColumns($criteria); $startcol = ConvocatoriaPeer::NUM_COLUMNS - ConvocatoriaPeer::NUM_LAZY_LOAD_COLUMNS; ConvocatoriaI18nPeer::addSelectColumns($criteria); $criteria->addJoin(ConvocatoriaPeer::ID, ConvocatoriaI18nPeer::ID, $join_behavior); $criteria->add(ConvocatoriaI18nPeer::CULTURE, $culture); foreach (sfMixer::getCallables('BaseConvocatoria:doSelectJoin:doSelectJoin') as $sf_hook) { call_user_func($sf_hook, 'Convocatoria', $criteria, $con); } $stmt = BasePeer::doSelect($criteria, $con); $results = array(); while ($row = $stmt->fetch(PDO::FETCH_NUM)) { $key1 = ConvocatoriaPeer::getPrimaryKeyHashFromRow($row, 0); if (null !== ($obj1 = ConvocatoriaPeer::getInstanceFromPool($key1))) { // We no longer rehydrate the object, since this can cause data loss. // See http://propel.phpdb.org/trac/ticket/509 // $obj1->hydrate($row, 0, true); // rehydrate } else { $cls = ConvocatoriaPeer::getOMClass(false); $obj1 = new $cls(); $obj1->hydrate($row); ConvocatoriaPeer::addInstanceToPool($obj1, $key1); } // if $obj1 already loaded $key2 = ConvocatoriaI18nPeer::getPrimaryKeyHashFromRow($row, $startcol); if ($key2 !== null) { $obj2 = ConvocatoriaI18nPeer::getInstanceFromPool($key2); if (!$obj2) { $cls = ConvocatoriaI18nPeer::getOMClass(false); $obj2 = new $cls(); $obj2->hydrate($row, $startcol); ConvocatoriaI18nPeer::addInstanceToPool($obj2, $key2); } // if obj2 already loaded $obj1->setConvocatoriaI18nForCulture($obj2, $culture); } // if joined row was not null $results[] = $obj1; } $stmt->closeCursor(); return $results; }
protected function execute($arguments = array(), $options = array()) { // initialize the database connection $databaseManager = new sfDatabaseManager($this->configuration); $connection = $databaseManager->getDatabase($options['connection'] ? $options['connection'] : null)->getConnection(); $handle = fopen("php://stdin", "r"); $line = fgets($handle); while ($line = fgets($handle)) { $data = explode(";", "{$line}"); $c = new Criteria(); $c->add(GeoPeer::NOMBRE, $data[3]); $geos = GeoPeer::doSelect($c); $aGeo = false; foreach ($geos as $geo) { if ($geo->getGeoRelatedByGeoId() != null && $geo->getGeoRelatedByGeoId()->getCodigo() && $geo->getGeoRelatedByGeoId()->getCodigo() != '') { //echo 'geo: ' . $geo->getNombre() . "\n"; $aGeo = $geo; } } if (!$aGeo) { echo 'Geo not found: (' . $data[3] . ")\n"; continue; } $c = new Criteria(); $c->add(PartidoPeer::ABREVIATURA, $data[5]); $partido = PartidoPeer::doSelectOne($c); if (!$partido) { $partido = new Partido(); $partido->setAbreviatura($data[5]); $partido->setIsActive(true); $partido->setNombre($data[5], 'es'); $partido->setNombre($data[5], 'ca'); $partido->save(); echo "Created partido ({$partido})\n"; } $c = new Criteria(); $c->add(CircunscripcionPeer::GEO_ID, $aGeo->getId()); $circu = CircunscripcionPeer::doSelectOne($c); $c = new Criteria(); $c->addJoin(ConvocatoriaPeer::ELECCION_ID, EleccionPeer::ID); $c->addJoin(EleccionInstitucionPeer::ELECCION_ID, EleccionPeer::ID); $c->addJoin(InstitucionPeer::ID, EleccionInstitucionPeer::INSTITUCION_ID); $c->add(InstitucionPeer::GEO_ID, $aGeo->getId()); $convocatoria = ConvocatoriaPeer::doSelectOne($c); if (!$convocatoria) { echo "Convocatoria not found: ({$geo})\n"; continue; } $c = new Criteria(); $c->add(ListaPeer::CONVOCATORIA_ID, $convocatoria->getId()); $c->add(ListaPeer::CIRCUNSCRIPCION_ID, $circu->getId()); $c->add(ListaPeer::PARTIDO_ID, $partido->getId()); $lista = ListaPeer::doSelectOne($c); if (!$lista) { $lista = new Lista(); $lista->setPartido($partido); $lista->setCircunscripcion($circu); $lista->setConvocatoria($convocatoria); $lista->save(); echo "Created lista ({$partido}, {$circu})\n"; } $politicos = false; $c = new Criteria(); $c->add("concat(nombre, ' ', apellidos)", trim($data[2])); //$c->add('fullname', utf8_encode( trim($data[2]) ), Criteria::EQUAL); $politicos = PoliticoPeer::doSelect($c); if (count($politicos) != 0) { echo "(ASIGNADO) " . $data[2] . "\n"; $politico = $politicos[0]; } else { echo "(NUEVO) " . $data[2] . "\n"; $politico = new Politico(); $nombreApellidos = explode(" ", $data[2]); $nombre = array_shift($nombreApellidos); $apellidos = implode(" ", $nombreApellidos); $politico->setNombre($nombre); $politico->setApellidos($apellidos); if ($data[7] != '1') { if (trim($data[10]) != '') { $c = new Criteria(); $c->add(PartidoPeer::ABREVIATURA, $data[5]); $partido = PartidoPeer::doSelectOne($c); if ($partido) { $politico->setPartido($partido); } } else { $politico->setPartido($lista->getPartido()); } } $politico->setSexo($data[1] == "hombre" ? 'H' : 'M'); $politico->save(); $politicoI18n = new PoliticoI18n(); $politicoI18n->setPolitico($politico); $politicoI18n->setCulture('es'); $politicoI18n->save(); $politicoI18n = new PoliticoI18n(); $politicoI18n->setPolitico($politico); $politicoI18n->setCulture('ca'); $politicoI18n->save(); } $c = new Criteria(); $c->add(PoliticoListaPeer::LISTA_ID, $lista->getId()); $c->add(PoliticoListaPeer::POLITICO_ID, $politico->getId()); $pl = PoliticoListaPeer::doSelectOne($c); if (!$pl) { $pl = new PoliticoLista(); $pl->setLista($lista); $pl->setPolitico($politico); } else { echo "Ya estaba.\n"; } $pl->setOrden($data[0]); $pl->save(); } fclose($handle); }
/** * Selects a collection of Enlace objects pre-filled with all related objects except sfGuardUser. * * @param Criteria $criteria * @param PropelPDO $con * @param String $join_behavior the type of joins to use, defaults to Criteria::LEFT_JOIN * @return array Array of Enlace objects. * @throws PropelException Any exceptions caught during processing will be * rethrown wrapped into a PropelException. */ public static function doSelectJoinAllExceptsfGuardUser(Criteria $criteria, $con = null, $join_behavior = Criteria::LEFT_JOIN) { $criteria = clone $criteria; // Set the correct dbName if it has not been overridden // $criteria->getDbName() will return the same object if not set to another value // so == check is okay and faster if ($criteria->getDbName() == Propel::getDefaultDB()) { $criteria->setDbName(self::DATABASE_NAME); } EnlacePeer::addSelectColumns($criteria); $startcol2 = EnlacePeer::NUM_COLUMNS - EnlacePeer::NUM_LAZY_LOAD_COLUMNS; PartidoPeer::addSelectColumns($criteria); $startcol3 = $startcol2 + (PartidoPeer::NUM_COLUMNS - PartidoPeer::NUM_LAZY_LOAD_COLUMNS); PoliticoPeer::addSelectColumns($criteria); $startcol4 = $startcol3 + (PoliticoPeer::NUM_COLUMNS - PoliticoPeer::NUM_LAZY_LOAD_COLUMNS); PropuestaPeer::addSelectColumns($criteria); $startcol5 = $startcol4 + (PropuestaPeer::NUM_COLUMNS - PropuestaPeer::NUM_LAZY_LOAD_COLUMNS); ConvocatoriaPeer::addSelectColumns($criteria); $startcol6 = $startcol5 + (ConvocatoriaPeer::NUM_COLUMNS - ConvocatoriaPeer::NUM_LAZY_LOAD_COLUMNS); $criteria->addJoin(EnlacePeer::PARTIDO_ID, PartidoPeer::ID, $join_behavior); $criteria->addJoin(EnlacePeer::POLITICO_ID, PoliticoPeer::ID, $join_behavior); $criteria->addJoin(EnlacePeer::PROPUESTA_ID, PropuestaPeer::ID, $join_behavior); $criteria->addJoin(EnlacePeer::CONVOCATORIA_ID, ConvocatoriaPeer::ID, $join_behavior); // symfony_behaviors behavior foreach (sfMixer::getCallables(self::getMixerPreSelectHook(__FUNCTION__)) as $sf_hook) { call_user_func($sf_hook, 'BaseEnlacePeer', $criteria, $con); } $stmt = BasePeer::doSelect($criteria, $con); $results = array(); while ($row = $stmt->fetch(PDO::FETCH_NUM)) { $key1 = EnlacePeer::getPrimaryKeyHashFromRow($row, 0); if (null !== ($obj1 = EnlacePeer::getInstanceFromPool($key1))) { // We no longer rehydrate the object, since this can cause data loss. // See http://propel.phpdb.org/trac/ticket/509 // $obj1->hydrate($row, 0, true); // rehydrate } else { $cls = EnlacePeer::getOMClass(false); $obj1 = new $cls(); $obj1->hydrate($row); EnlacePeer::addInstanceToPool($obj1, $key1); } // if obj1 already loaded // Add objects for joined Partido rows $key2 = PartidoPeer::getPrimaryKeyHashFromRow($row, $startcol2); if ($key2 !== null) { $obj2 = PartidoPeer::getInstanceFromPool($key2); if (!$obj2) { $cls = PartidoPeer::getOMClass(false); $obj2 = new $cls(); $obj2->hydrate($row, $startcol2); PartidoPeer::addInstanceToPool($obj2, $key2); } // if $obj2 already loaded // Add the $obj1 (Enlace) to the collection in $obj2 (Partido) $obj2->addEnlace($obj1); } // if joined row is not null // Add objects for joined Politico rows $key3 = PoliticoPeer::getPrimaryKeyHashFromRow($row, $startcol3); if ($key3 !== null) { $obj3 = PoliticoPeer::getInstanceFromPool($key3); if (!$obj3) { $cls = PoliticoPeer::getOMClass(false); $obj3 = new $cls(); $obj3->hydrate($row, $startcol3); PoliticoPeer::addInstanceToPool($obj3, $key3); } // if $obj3 already loaded // Add the $obj1 (Enlace) to the collection in $obj3 (Politico) $obj3->addEnlace($obj1); } // if joined row is not null // Add objects for joined Propuesta rows $key4 = PropuestaPeer::getPrimaryKeyHashFromRow($row, $startcol4); if ($key4 !== null) { $obj4 = PropuestaPeer::getInstanceFromPool($key4); if (!$obj4) { $cls = PropuestaPeer::getOMClass(false); $obj4 = new $cls(); $obj4->hydrate($row, $startcol4); PropuestaPeer::addInstanceToPool($obj4, $key4); } // if $obj4 already loaded // Add the $obj1 (Enlace) to the collection in $obj4 (Propuesta) $obj4->addEnlace($obj1); } // if joined row is not null // Add objects for joined Convocatoria rows $key5 = ConvocatoriaPeer::getPrimaryKeyHashFromRow($row, $startcol5); if ($key5 !== null) { $obj5 = ConvocatoriaPeer::getInstanceFromPool($key5); if (!$obj5) { $cls = ConvocatoriaPeer::getOMClass(false); $obj5 = new $cls(); $obj5->hydrate($row, $startcol5); ConvocatoriaPeer::addInstanceToPool($obj5, $key5); } // if $obj5 already loaded // Add the $obj1 (Enlace) to the collection in $obj5 (Convocatoria) $obj5->addEnlace($obj1); } // if joined row is not null $results[] = $obj1; } $stmt->closeCursor(); return $results; }
/** * Returns the number of related Convocatoria objects. * * @param Criteria $criteria * @param boolean $distinct * @param PropelPDO $con * @return int Count of related Convocatoria objects. * @throws PropelException */ public function countConvocatorias(Criteria $criteria = null, $distinct = false, PropelPDO $con = null) { if ($criteria === null) { $criteria = new Criteria(EleccionPeer::DATABASE_NAME); } else { $criteria = clone $criteria; } if ($distinct) { $criteria->setDistinct(); } $count = null; if ($this->collConvocatorias === null) { if ($this->isNew()) { $count = 0; } else { $criteria->add(ConvocatoriaPeer::ELECCION_ID, $this->id); $count = ConvocatoriaPeer::doCount($criteria, false, $con); } } else { // criteria has no effect for a new object if (!$this->isNew()) { // the following code is to determine if a new query is // called for. If the criteria is the same as the last // one, just return count of the collection. $criteria->add(ConvocatoriaPeer::ELECCION_ID, $this->id); if (!isset($this->lastConvocatoriaCriteria) || !$this->lastConvocatoriaCriteria->equals($criteria)) { $count = ConvocatoriaPeer::doCount($criteria, false, $con); } else { $count = count($this->collConvocatorias); } } else { $count = count($this->collConvocatorias); } } return $count; }
public function __construct($convocatoria_id, $partido_id, $geoName, $order = "pd") { $this->geoName = $geoName; $this->convocatoriaId = $convocatoria_id; $this->partidoId = $partido_id; $this->convocatoria = ConvocatoriaPeer::retrieveByPK($convocatoria_id); if ($this->convocatoria->getClosedAt()) { $query = "SELECT DISTINCT p.id, p.vanity, p.nombre, p.apellidos, p.imagen, l.sumu, l.sumd, r.last_date lastDate, p.sf_guard_user_id\n\t\t\tFROM politico p\n\t\t\tLEFT JOIN sf_guard_user u ON u.id = p.sf_guard_user_id\n\t\t\tINNER JOIN lista_calle l ON l.politico_id = p.id "; if ($geoName) { $query .= "INNER JOIN circunscripcion c ON c.id = l.circunscripcion_id "; $query .= "INNER JOIN geo g ON g.id = c.geo_id "; } $query .= "LEFT JOIN (SELECT entity_id, MAX(IFNULL(r.modified_at, r.created_at)) last_date FROM sf_review r WHERE r.value = 1 AND r.sf_review_type_id = 1 GROUP BY entity_id, sf_review_type_id) r ON (r.entity_id = p.id) "; $query .= "WHERE l.convocatoria_id = ? "; if ($partido_id) { $query .= "AND l.partido_id = ? "; } if ($geoName) { $query .= "AND g.nombre = ? "; } switch ($order) { case 'pa': $query .= "ORDER BY l.sumu ASC, l.sumd DESC, r.last_date DESC, p.apellidos ASC, p.nombre ASC;"; break; case 'pd': $query .= "ORDER BY l.sumu DESC, l.sumd ASC, r.last_date DESC, p.apellidos ASC, p.nombre ASC;"; break; case 'na': $query .= "ORDER BY l.sumd ASC, l.sumu DESC, r.last_date DESC, p.apellidos ASC, p.nombre ASC;"; break; case 'nd': $query .= "ORDER BY l.sumd DESC, l.sumu ASC, r.last_date DESC, p.apellidos ASC, p.nombre ASC;"; break; } $connection = Propel::getConnection(); $statement = $connection->prepare($query); $idx = 1; $statement->bindValue($idx++, $convocatoria_id); if ($partido_id) { $statement->bindValue($idx++, $partido_id); } if ($geoName) { $statement->bindValue($idx++, $geoName); } $statement->execute(); $this->politicos = $statement->fetchAll(PDO::FETCH_CLASS, 'Candidato'); } else { $query = "SELECT DISTINCT p.*, r.last_date lastDate\n\t\t\tFROM politico p\n\t\t\tINNER JOIN politico_lista pl ON pl.politico_id = p.id\n\t\t\tINNER JOIN lista l ON l.id = pl.lista_id "; if ($geoName) { $query .= "INNER JOIN circunscripcion c ON c.id = l.circunscripcion_id "; $query .= "INNER JOIN geo g ON g.id = c.geo_id "; } $query .= "LEFT JOIN (SELECT entity_id, MAX(IFNULL(r.modified_at, r.created_at)) last_date FROM sf_review r WHERE r.value = 1 AND r.sf_review_type_id = 1 GROUP BY entity_id, sf_review_type_id) r ON (r.entity_id = p.id) "; $query .= "WHERE l.convocatoria_id = ? "; if ($partido_id) { $query .= "AND l.partido_id = ? "; } if ($geoName) { $query .= "AND g.nombre = ? "; } switch ($order) { case 'pa': $query .= "ORDER BY p.sumu ASC, p.sumd DESC, r.last_date DESC, p.apellidos ASC, p.nombre ASC;"; break; case 'pd': $query .= "ORDER BY p.sumu DESC, p.sumd ASC, r.last_date DESC, p.apellidos ASC, p.nombre ASC;"; break; case 'na': $query .= "ORDER BY p.sumd ASC, p.sumu DESC, r.last_date DESC, p.apellidos ASC, p.nombre ASC;"; break; case 'nd': $query .= "ORDER BY p.sumd DESC, p.sumu ASC, r.last_date DESC, p.apellidos ASC, p.nombre ASC;"; break; } $connection = Propel::getConnection(); $statement = $connection->prepare($query); $idx = 1; $statement->bindValue($idx++, $convocatoria_id); if ($partido_id) { $statement->bindValue($idx++, $partido_id); } if ($geoName) { $statement->bindValue($idx++, $geoName); } $statement->execute(); $this->politicos = $statement->fetchAll(PDO::FETCH_CLASS, 'Candidato'); //echo (time()-$initTime). "-5 ($convocatoria_id , $partido_id , $geoName , $order)<br>"; } $this->numEscanyos = false; }
/** * Get the associated Convocatoria object * * @param PropelPDO Optional Connection object. * @return Convocatoria The associated Convocatoria object. * @throws PropelException */ public function getConvocatoria(PropelPDO $con = null) { if ($this->aConvocatoria === null && $this->id !== null) { $this->aConvocatoria = ConvocatoriaPeer::retrieveByPk($this->id); /* The following can be used additionally to guarantee the related object contains a reference to this object. This level of coupling may, however, be undesirable since it could result in an only partially populated collection in the referenced object. $this->aConvocatoria->addConvocatoriaI18ns($this); */ } return $this->aConvocatoria; }
public function executeSearch(sfWebRequest $request) { $culture = $this->getUser()->getCulture(); $this->page = $this->getRequestParameter('page', 1); $tag = $request->getParameter("tag", false); $tag = str_replace("_2E_", ".", $tag); if ($tag) { $this->q = "#{$tag}"; } else { $this->q = $request->getParameter("q"); } $request->setAttribute("q", $this->q); $resultsArray = array(); $cl = $this->resetSphinxClient(); $needle = $this->q; $this->ext = ""; if (strlen($needle) > 0 && strpos($needle, '#') === 0) { $this->ext = "_tag"; $needle = substr($needle, 1); } else { $needle = SfVoUtil::stripAccents($this->q); } $this->politicoCounts = false; $this->partidoCounts = false; $this->propuestaCounts = false; if ($needle) { if ($this->ext == "_tag") { $cl->SetMatchMode(SPH_MATCH_PHRASE); $cl->SetSortMode(SPH_SORT_EXTENDED, "cnt DESC"); $this->politicoCounts = array(); $this->partidoCounts = array(); $this->propuestaCounts = array(); $indexes = "partido_tag_{$culture}, politico_tag_{$culture}, propuesta_tag_{$culture}"; $this->res = $cl->Query($needle, $indexes); if ($this->res !== false) { $this->total = $this->res['total']; $this->totalFound = $this->res['total_found']; $cl->SetLimits(($this->page - 1) * $this->limit, $this->limit); $this->res = $cl->Query($needle, $indexes); } } else { $cl->SetFieldWeights(array('abreviatura_partido' => 5, 'nombre' => 5, 'apellidos' => 5, 'alias' => 5, 'titulo' => 5, 'nombre_insti' => 8, 'nombre_ele' => 9)); $cl->SetSortMode(SPH_SORT_EXPR, "@weight + ( 1 * votes/max_votes )"); $indexes = "politico_{$culture}, partido_{$culture},propuesta_{$culture}, institucion_{$culture}, usuario, eleccion_{$culture}"; $this->res = $cl->Query($needle, $indexes); if ($this->res !== false) { $this->total = $this->res['total']; $this->totalFound = $this->res['total_found']; $cl->SetLimits(($this->page - 1) * $this->limit, $this->limit); $this->res = $cl->Query($needle, $indexes); } } if ($this->res !== false && isset($this->res["matches"]) && is_array($this->res["matches"])) { foreach ($this->res["matches"] as $match) { //echo "<pre>";print_r( $match );echo "</pre>"; switch ($match['attrs']['type']) { case 1: if ($this->ext == "_tag") { $this->politicoCounts[$match['attrs']['politico_id']] = $match['attrs']['cnt']; $resultsArray[] = PoliticoPeer::retrieveByPK($match['attrs']['politico_id']); } else { $resultsArray[] = PoliticoPeer::retrieveByPK($match['id']); } break; case 2: if ($this->ext == "_tag") { $this->partidoCounts[$match['attrs']['partido_id']] = $match['attrs']['cnt']; $resultsArray[] = PartidoPeer::retrieveByPK($match['attrs']['partido_id']); } else { $resultsArray[] = PartidoPeer::retrieveByPK($match['id']); } break; case 3: if ($this->ext == "_tag") { $this->propuestaCounts[$match['attrs']['propuesta_id']] = $match['attrs']['cnt']; $resultsArray[] = PropuestaPeer::retrieveByPK($match['attrs']['propuesta_id']); } else { $resultsArray[] = PropuestaPeer::retrieveByPK($match['id']); } break; case 101: $resultsArray[] = InstitucionPeer::retrieveByPK($match['id']); break; case 102: $resultsArray[] = SfGuardUserPeer::retrieveByPK($match['id']); break; case 103: $resultsArray[] = ConvocatoriaPeer::retrieveByPK($match['id']); break; } } } } $this->results = $resultsArray; $this->title = sfContext::getInstance()->getI18N()->__('"%1%" en Voota', array('%1%' => $this->q)); $descStr = ""; foreach ($resultsArray as $idx => $result) { if ($idx < 3) { $descStr .= ($descStr ? ', ' : '') . $result; } } $this->response->addMeta('Description', sfContext::getInstance()->getI18N()->__('Resultados de la búsqueda "%1%" en Voota: %2%, ...', array('%1%' => $this->q, '%2%' => $descStr))); $this->response->setTitle($this->title); }
public function executeShow(sfWebRequest $request) { $abreviatura = $request->getParameter('id'); $culture = $this->getUser()->getCulture("es"); $this->institucion = $request->getParameter("institucion"); if ($this->institucion == '') { $this->institucion = "0"; } $c = new Criteria(); $c->add(PartidoPeer::ABREVIATURA, $abreviatura, Criteria::EQUAL); $this->partido = PartidoPeer::doSelectOne($c); $this->forward404Unless($this->partido); $this->forward404Unless($this->partido->getIsActive()); if ($this->partido->getAbreviatura() != $abreviatura) { $this->redirect('partido/show?id=' . $this->partido->getAbreviatura(), 301); } // Estabamos vootando antes del login ? $sfr_status = $this->getUser()->getAttribute('sfr_status', false, 'sf_review'); if ($sfr_status) { $aSfrStatus = array(); foreach ($sfr_status as $key => $value) { $aSfrStatus[$key] = $value; } $this->sfr_status = $aSfrStatus; $request->setAttribute('sfr_status', $aSfrStatus); $this->getUser()->setAttribute('sfr_status', false, 'sf_review'); } else { $this->getUser()->setAttribute('sfr_status', false, 'sf_review'); $this->sfr_status = false; } if ($this->partido->getImagen() != '') { $imageFileName = $this->partido->getImagen(); } else { $imageFileName = "p_unknown.png"; } $this->image = "cc_{$imageFileName}"; $pu = $this->getUser()->getAttribute('pageU'); $pd = $this->getUser()->getAttribute('pageD'); $c = $this->getUser()->getAttribute('review_c'); if ($c != '' && $pu != '') { $resU = BaseSfReviewManager::NUM_REVIEWS * ($pu - 1); $this->pageU = $pu; } else { $resU = BaseSfReviewManager::NUM_REVIEWS; $this->pageU = 2; } if ($c != '' && $pd != '') { $resD = BaseSfReviewManager::NUM_REVIEWS * ($pd - 1); $this->pageD = $pd; } else { $resD = BaseSfReviewManager::NUM_REVIEWS; $this->pageD = 2; } $id = $this->partido->getId(); $this->positives = SfReviewManager::getReviewsByEntityAndValue($request, Partido::NUM_ENTITY, $id, 1, $resU); $this->negatives = SfReviewManager::getReviewsByEntityAndValue($request, Partido::NUM_ENTITY, $id, -1, $resD); $positiveCount = $this->positives->getNbResults(); $negativeCount = $this->negatives->getNbResults(); $this->getUser()->setAttribute('pageU', ''); $this->getUser()->setAttribute('pageD', ''); $this->totalCount = $positiveCount + $negativeCount; if ($this->totalCount > 0) { $this->positivePerc = intval($positiveCount * 100 / $this->totalCount); $this->negativePerc = 100 - $this->positivePerc; } else { $this->positivePerc = 0; $this->negativePerc = 0; } // Enlaces $c = new Criteria(); $rCriterion = $c->getNewCriterion(EnlacePeer::CULTURE, null, Criteria::ISNULL); $rCriterion->addOr($c->getNewCriterion(EnlacePeer::CULTURE, $this->getUser()->getCulture())); $rCriterion->addOr($c->getNewCriterion(EnlacePeer::CULTURE, '')); $c->add($rCriterion); $c->add(EnlacePeer::PARTIDO_ID, $id); $c->addAscendingOrderByColumn(EnlacePeer::ORDEN); $this->activeEnlaces = EnlacePeer::doSelect($c); $this->twitterUser = FALSE; foreach ($this->activeEnlaces as $enlace) { if (preg_match("/twitter\\.com\\/#!\\/(.*)\$/is", $enlace->getUrl(), $matches)) { $this->twitterUser = $matches[1]; break; } if (preg_match("/twitter\\.com\\/(.*)\$/is", $enlace->getUrl(), $matches)) { $this->twitterUser = $matches[1]; break; } } // Politicos mas votados $c = new Criteria(); $c->addJoin(array(PoliticoPeer::ID, PoliticoI18nPeer::CULTURE), array(PoliticoI18nPeer::ID, "'{$culture}'"), Criteria::LEFT_JOIN); $c->add(PoliticoPeer::VANITY, null, Criteria::ISNOTNULL); $c->add(PoliticoPeer::PARTIDO_ID, $this->partido->getId()); $c->addDescendingOrderByColumn(PoliticoPeer::SUMU); $c->addAscendingOrderByColumn(PoliticoPeer::SUMD); $this->politicos = new sfPropelPager('Politico', 6); $this->politicos->setCriteria($c); $this->politicos->init(); // Lista de instituciones $c = new Criteria(); $c->addJoin(InstitucionPeer::ID, PoliticoInstitucionPeer::INSTITUCION_ID); $c->addJoin(PoliticoInstitucionPeer::POLITICO_ID, PoliticoPeer::ID); $c->addJoin(PoliticoPeer::PARTIDO_ID, PartidoPeer::ID); $c->add(PoliticoPeer::PARTIDO_ID, $this->partido->getId()); $c->add(InstitucionPeer::IS_MAIN, true); $c->setDistinct(); $c->addAscendingOrderByColumn(InstitucionPeer::ORDEN); $this->instituciones = InstitucionPeer::doSelect($c); // Lista de listas $this->listasGenerales = false; $this->listasAutonomicas = false; $this->listasMunicipales = false; foreach ($this->partido->getListas() as $lista) { //$lista->getCircunscripcion()->getGeo() foreach ($lista->getConvocatoria()->getEleccion()->getEleccionInstitucions() as $insti) { $geo = $insti->getInstitucion()->getGeo(); if ($geo->getId() == 1) { $this->listasGenerales = true; } elseif ($geo->getGeoRelatedByGeoId()->getId() == 1) { $this->listasAutonomicas = true; } elseif ($geo->getGeoRelatedByGeoId()->getGeoRelatedByGeoId()->getId() == 1) { } elseif ($geo->getGeoRelatedByGeoId()->getGeoRelatedByGeoId()->getGeoRelatedByGeoId()->getId() == 1) { $this->listasMunicipales = true; } } } $this->pageTitle = $this->partido->getNombre() . " (" . $this->partido->getAbreviatura() . ")"; $this->title = $this->pageTitle . ' - Voota'; $this->response->addMeta('Title', $this->title); $descripcion = $this->partido->getAbreviatura() . ": " . sfContext::getInstance()->getI18N()->__('presentación, opiniones de usuarios a favor y en contra, políticos mejor valorados y enlaces. ', array()) . SfVoUtil::cutToLength($this->partido->getPresentacion(), 140, '...', true); $this->response->addMeta('Descripcion', $descripcion); // Listas de electorales $convocatoriaActiva = sfConfig::get('sf_convocatoria_activa'); $this->convocatoria = ConvocatoriaPeer::retrieveByPk($convocatoriaActiva); $c = new Criteria(); $c->add(ListaPeer::PARTIDO_ID, $this->partido->getId()); $c->add(ListaPeer::CONVOCATORIA_ID, $convocatoriaActiva); $c->addJoin(ListaPeer::CIRCUNSCRIPCION_ID, CircunscripcionPeer::ID); $c->addJoin(CircunscripcionPeer::GEO_ID, GeoPeer::ID); $c->addAscendingOrderByColumn(GeoPeer::NOMBRE); $this->listas = ListaPeer::doSelect($c); /* paginador */ $this->partidosPager = EntityManager::getPager($this->partido); /* / paginador */ // Feed $request->setAttribute('rssTitle', $this->title . " Feed RSS"); $request->setAttribute('rssFeed', 'partido/feed?id=' . $this->partido->getVanity()); }