コード例 #1
0
ファイル: actions.class.php プロジェクト: voota/voota
 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);
 }
コード例 #2
0
ファイル: actions.class.php プロジェクト: voota/voota
 /**
  * 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);
 }
コード例 #3
0
ファイル: ConvocatoriaPeer.php プロジェクト: voota/voota
 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;
 }
コード例 #4
0
ファイル: BaseConvocatoria.php プロジェクト: voota/voota
 /**
  * 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]]);
     }
 }
コード例 #5
0
 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);
 }
コード例 #6
0
ファイル: genSitemapTask.class.php プロジェクト: voota/voota
 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);
 }
コード例 #7
0
ファイル: actions.class.php プロジェクト: voota/voota
 public function executeAutoCompleteCo($request)
 {
     $this->getResponse()->setContentType('application/json');
     $convocatorias = ConvocatoriaPeer::retrieveForAutoSelect($request->getParameter('q'), $request->getParameter('limit'));
     return $this->renderText(json_encode($convocatorias));
 }
コード例 #8
0
ファイル: actions.class.php プロジェクト: voota/voota
 /**
  * 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);
 }
コード例 #9
0
 /**
  * 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;
 }
コード例 #10
0
ファイル: BaseConvocatoriaPeer.php プロジェクト: voota/voota
 /**
  * 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;
 }
コード例 #11
0
ファイル: loadMunisTask.class.php プロジェクト: voota/voota
 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);
 }
コード例 #12
0
ファイル: BaseEnlacePeer.php プロジェクト: voota/voota
 /**
  * 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;
 }
コード例 #13
0
ファイル: BaseEleccion.php プロジェクト: voota/voota
 /**
  * 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;
 }
コード例 #14
0
ファイル: ListaElectoral.class.php プロジェクト: voota/voota
 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;
 }
コード例 #15
0
ファイル: BaseConvocatoriaI18n.php プロジェクト: voota/voota
 /**
  * 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;
 }
コード例 #16
0
ファイル: actions.class.php プロジェクト: voota/voota
 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);
 }
コード例 #17
0
ファイル: actions.class.php プロジェクト: voota/voota
 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());
 }