public function executeRanking(sfWebRequest $request) { $p = $request->getParameter("p"); $i = $request->getParameter("i"); $culture = $this->getUser()->getCulture("es"); $partido = $request->getParameter("partido", false); $institucion = $request->getParameter("institucion", false); $redir = false; if ($institucion === ALL_FORM_VALUE) { $redir = true; $institucion = false; } $page = $request->getParameter("page", ""); $order = $request->getParameter("o", ""); $this->forward404Unless(!($order && $order != 'pd' && $order != 'pa' && $order != 'nd' && $order != 'na')); if ($order == 'pd' || $page == '1' || !$institucion && $partido == ALL_URL_STRING) { $qs = ''; foreach ($request->getParameterHolder()->getAll() as $key => $value) { if ($key != 'module' && $key != 'action' && !($order == 'pd' && $key == 'o' || $page == '1' && $key == 'page') && ($key != 'partido' || ($institucion || $partido != ALL_URL_STRING))) { $qs .= ($qs ? '&' : '?') . "{$key}={$value}"; } } $this->redirect("politico/ranking{$qs}", 301); } $this->order = $order ? $order : 'pd'; $page = $page ? $page : 1; if (!$partido) { $partido = ALL_FORM_VALUE; } if (!$institucion) { $institucion = ALL_FORM_VALUE; } $this->partido = ALL_FORM_VALUE; $this->institucion = ALL_FORM_VALUE; if ($p != '' || $i != '' || $redir) { $url = $this->generateRankingUrl($partido, $institucion, $p, $i, $page); $this->redirect($url); } $this->partidoAC = ''; if ($partido && $partido != ALL_URL_STRING) { $this->partido = $partido; $aPartidoCriteria = new Criteria(); $aPartidoCriteria->add(PartidoPeer::ABREVIATURA, $this->partido); $aaPartido = PartidoPeer::doSelectOne($aPartidoCriteria); $this->forward404Unless($aaPartido); $this->partidoAC = $aaPartido->getAbreviatura() . ', ' . $aaPartido->getNombre(); } else { $this->partido = ALL_URL_STRING; } $this->institucionAC = ''; if ($institucion && $institucion != ALL_URL_STRING) { $this->institucion = $institucion; $aInstitucionCriteria = new Criteria(); $aInstitucionCriteria->addJoin(array(InstitucionPeer::ID, InstitucionI18nPeer::CULTURE), array(InstitucionI18nPeer::ID, "'{$culture}'"), Criteria::INNER_JOIN); $aInstitucionCriteria->add(InstitucionI18nPeer::VANITY, $this->institucion); $aInstitucion = InstitucionPeer::doSelectOne($aInstitucionCriteria); $this->forward404Unless($aInstitucion); if ($aInstitucion->getVanity() != $institucion) { $url = $this->generateRankingUrl($partido, $aInstitucion->getVanity()); $params = $request->getParameterHolder()->getAll(); foreach ($params as $key => $value) { if ($key != 'module' && $key != 'action' && $key != 'partido' && $key != 'institucion') { $url .= "&{$key}={$value}"; } } $this->redirect($url, 301); } $this->institucionAC = $aInstitucion->getNombre(); } $filter = array('type' => 'politico', 'partido' => $partido, 'institucion' => $institucion, 'culture' => $culture, 'page' => $page, 'order' => $this->order); $this->getUser()->setAttribute("filter_" . Politico::NUM_ENTITY, $filter); $this->politicosPager = EntityManager::getPoliticos($partido, $institucion, $culture, $page, $this->order, EntityManager::PAGE_SIZE, &$totalUp, &$totalDown); $this->totalUp = $totalUp; $this->totalDown = $totalDown; $rule = sfContext::getInstance()->getRouting()->getCurrentRouteName(); $params = ""; foreach ($request->getParameterHolder()->getAll() as $name => $value) { if ($name != 'module' && $name != 'action' && $name != 'o' && $name != 'page') { if ($params === "") { $params .= "?"; } else { $params .= "&"; } $params .= "{$name}={$value}"; } } $this->route = "politico/ranking{$params}"; $this->pageTitle = sfContext::getInstance()->getI18N()->__('Ranking de políticos', array()); $this->pageTitle .= $this->partido == 'all' ? '' : ', ' . $this->partido; $this->pageTitle .= $this->institucion == '0' ? '' : ", "; if (isset($aInstitucion)) { $this->pageTitle .= $aInstitucion->getNombre(); } switch ($this->order) { case 'pa': $orderTxt = sfContext::getInstance()->getI18N()->__('votos positivos inverso'); break; case 'nd': $orderTxt = sfContext::getInstance()->getI18N()->__('votos negativos'); break; case 'na': $orderTxt = sfContext::getInstance()->getI18N()->__('votos negativos inverso'); break; default: $orderTxt = sfContext::getInstance()->getI18N()->__('ordenado por votos positivos inverso'); } if ($this->order != 'pd') { $this->pageTitle .= ", {$orderTxt}"; } if ($page && $page != 1) { $this->pageTitle .= " " . sfContext::getInstance()->getI18N()->__('(Pág. %1%)', array('%1%' => $page)); } $this->title = $this->pageTitle . ' - Voota'; $description = sfContext::getInstance()->getI18N()->__('Ranking de políticos', array()); if (isset($aaPartido)) { if ($this->partido != '0' && $aaPartido) { $description .= ", " . $aaPartido->getNombre(); } } else { $description .= ", " . sfContext::getInstance()->getI18N()->__('todos los partidos'); } if ($aInstitucion && $aInstitucion->getGeo() && $this->institucion != '0') { $description .= ", " . $aInstitucion->getNombre() . " (" . $aInstitucion->getGeo()->getNombre() . ", España)"; } $description .= ", {$orderTxt}"; if ($page && $page != 1) { $description .= " " . sfContext::getInstance()->getI18N()->__('(Pág. %1%)', array('%1%' => $page)); } $this->response->addMeta('Description', $description); $this->response->setTitle($this->title); }
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); }
private function entities_politician($data) { $sort = $this->getRequestParameter("sort", 'positive'); $page = $this->getRequestParameter("page", '1'); $limit = $this->getRequestParameter("limit", self::PAGE_SIZE); $institution = $this->getRequestParameter("institution", ''); $party = $this->getRequestParameter("party", ''); if ($sort != 'positive' && $sort != 'negative') { throw new BadRequestException('Invalid sort value.'); } $pager = EntityManager::getPoliticos($party, $institution, $this->getUser()->getCulture("es"), $page, $sort == 'positive' ? "pd" : "nd", $limit); $entities = array(); foreach ($pager->getResults() as $politico) { $entities[] = new Entity($politico); } return $entities; }