public function executeFeed(sfWebRequest $request) { $vanity = $request->getParameter('id'); $s = $request->getParameter('s', 0); $culture = $this->getUser()->getCulture(); $c = new Criteria(); $c->add(PropuestaPeer::VANITY, $vanity); $entity = PropuestaPeer::doSelectOne($c); $this->forward404Unless($entity); if ($entity->getCulture() != $culture) { $this->redirect("@homepage"); } $filter = array(); $filter['type_id'] = Propuesta::NUM_ENTITY; $filter['entity_id'] = $entity->getId(); $reviews = SfReviewManager::getReviews($filter); $title = sfContext::getInstance()->getI18N()->__('%1% en Voota.es', array('%1%' => $entity)); $description = sfContext::getInstance()->getI18N()->__('Opiniones sobre %1%, %2% votos a favor y %3% votos en contra', array('%1%' => $entity, '%2%' => $entity->getSumu(), '%3%' => $entity->getSumd())); $feed = new sfRssFeed(); $feed->setTitle($title); $feed->setLanguage($culture); $feed->setSubtitle($description); $feed->setDescription($description); $feed->setLink('propuesta/show?id=' . $entity->getVanity()); $domainExt = $culture == 'ca' ? "cat" : $culture; $feed->setAuthorName("Voota.{$domainExt}"); $feedImage = new sfFeedImage(); $feedImage->setLink('propuesta/show?id=' . $entity->getVanity()); $feedImage->setImage(S3Voota::getImagesUrl() . '/' . $entity->getImagePath() . '/cc_' . $entity->getImagen()); $feedImage->setTitle($entity); $feed->setImage($feedImage); foreach ($reviews as $review) { $item = new sfFeedItem(); $item->setTitle(sfContext::getInstance()->getI18N()->__('%1%, voota %2%.', array('%1%' => $review->getSfGuardUser(), '%2%' => $review->getValue() == -1 ? sfContext::getInstance()->getI18N()->__('en contra') : sfContext::getInstance()->getI18N()->__('a favor')))); $item->setLink('sfReviewFront/show?id=' . SfVoUtil::reviewPermalink($review)); $item->setAuthorName($review->getSfGuardUser()); $item->setPubdate($review->getCreatedAt('U')); $item->setUniqueId($review->getId()); $avatar = S3Voota::getImagesUrl() . '/usuarios/cc_s_' . $review->getSfGuardUser()->getProfile()->getImagen(); $text = $culture == $review->getCulture() || !$review->getCulture() ? $review->getText() : ''; $img = $review->getSfGuardUser()->getProfile()->getImagen() ? "<img src=\"{$avatar}\" alt =\"" . $review->getSfGuardUser() . "\" /> " : ""; $content = "{$text}"; $item->setDescription($content); $feed->addItem($item); } $this->feed = $feed; }
public function executeReviews() { $this->page = $this->page ? $this->page : 1; sfContext::getInstance()->getRequest()->setAttribute('page', $this->page); $filter = array(); if (isset($this->sfReviewType)) { $filter['type_id'] = $this->sfReviewType; } if (isset($this->entityId)) { $filter['entity_id'] = $this->entityId; } if (isset($this->value)) { $filter['value'] = $this->value; } if (isset($this->filter)) { $filter['textFilter'] = $this->filter; } if (isset($this->userId)) { $filter['userId'] = $this->userId; } if (isset($this->culture)) { $filter['culture'] = $this->culture; } $sfr_status = sfContext::getInstance()->getRequest()->getAttribute('sfr_status', false); $this->reviewsPager = SfReviewManager::getReviews($filter, $this->page, 20 * ($sfr_status && !$sfr_status['t'] ? $sfr_status['pag'] : 1)); }
public function executeShow(sfWebRequest $request) { $vanity = $request->getParameter('username'); $this->f = $request->getParameter('f'); $culture = $this->getUser()->getCulture(); $this->sfReviewType = $request->getParameter("type_id", false); $this->text = $request->getParameter("t", false); $c = new Criteria(); $c->add(SfGuardUserProfilePeer::VANITY, $vanity, Criteria::EQUAL); $userProfile = SfGuardUserProfilePeer::doSelectOne($c); $this->forward404Unless($userProfile); $this->user = $userProfile->getsfGuardUser(); if (!$this->user->getIsActive() && is_numeric($userProfile->getFacebookUid())) { $user = SfGuardUserPeer::retrieveByPK($userProfile->getFacebookUid()); $this->forward404Unless($user); $this->redirect('perfil/show?username='******'perfil/show?username='******'', Criteria::NOT_EQUAL); $this->enlaces = EnlacePeer::doSelect($c); $c = new Criteria(); $c->add(PropuestaPeer::SF_GUARD_USER_ID, $userProfile->getUserId()); $c->addDescendingOrderByColumn('created_at'); $this->propuestas = PropuestaPeer::doSelect($c); //$this->reviews = SfReviewManager::getReviewsByUser($this->user->getId(), $this->f); $filterText = ''; switch ($this->sfReviewType) { case '1': $filterText = sfContext::getInstance()->getI18N()->__('políticos'); break; case '2': $filterText = sfContext::getInstance()->getI18N()->__('partidos'); break; case '3': $filterText = sfContext::getInstance()->getI18N()->__('propuestas políticas'); break; case 'null': $filterText = sfContext::getInstance()->getI18N()->__('otros comentarios'); break; } //if (!$filterText){ $this->title = sfContext::getInstance()->getI18N()->__('Página de usuario de %1% en Voota', array('%1%' => trim($this->user) ? $this->user : $this->user->getProfile()->getVanity())); /*} else { $this->title = sfContext::getInstance()->getI18N()->__('Opiniones de %1% sobre %2% en Voota', array( '%1%' => trim($this->user)?$this->user:$this->user->getProfile()->getVanity() , '%2%' => $filterText )); }*/ $this->response->setTitle($this->title); $filter = array(); if (isset($this->sfReviewType)) { $filter['type_id'] = $this->sfReviewType; $filter['textFilter'] = $this->text ? 'text' : false; $filter['userId'] = $userProfile->getUserId(); $filter['culture'] = $culture; } $this->reviewsPager = SfReviewManager::getReviews($filter, 1, 3); //if (!$filterText){ $descripcion = SfVoUtil::cutToLength($userProfile->getPresentacion(), 155, '...', true); /*} else { if ($this->reviewsPager->getNbResults() == 0){ $descripcion = sfContext::getInstance()->getI18N()->__('%1% aún no se ha animado a comentar', trim($this->user)?$this->user:$this->user->getProfile()->getVanity()); } else { $descripcion = sfContext::getInstance()->getI18N()->__('%1% ha comentado sobre', array('%1%' => trim($this->user)?$this->user:$this->user->getProfile()->getVanity())). ': '; foreach ($this->reviewsPager->getResults() as $idx => $review){ $type = $review->getSfReviewTypeId(); if (! $type){ $parentReview = $review->getSfReviewRelatedBySfReviewId(); $aEntityId = $parentReview->getEntityId(); $aTypeId = $parentReview->getSfReviewTypeId(); } else { $aTypeId = $type; $aEntityId = $review->getEntityId(); } $reviewType = SfReviewTypePeer::retrieveByPK ( $aTypeId ); $peer = $reviewType->getModel() .'Peer'; //$entity = $peer::retrieveByPK($aEntityId); $entity = call_user_func("$peer::retrieveByPK", $aEntityId); $descripcion .= ($idx != 0?', ':'').(!$type?sfContext::getInstance()->getI18N()->__('otro comentario sobre'). ' ':'').($aTypeId==Propuesta::NUM_ENTITY?"\"$entity\"":$entity); } } }*/ $this->response->addMeta('Description', $descripcion ? $descripcion : sfContext::getInstance()->getI18N()->__('Votos y opiniones de %1% sobre políticos y partidos de España', array('%1%' => trim($this->user) ? $this->user : $this->user->getProfile()->getVanity()))); // Feed $request->setAttribute('rssTitle', $this->title . " Feed RSS"); $request->setAttribute('rssFeed', 'perfil/feed?username=' . $this->user->getProfile()->getVanity()); }
public function executeFeed(sfWebRequest $request) { $this->page = $request->getParameter("page", "1"); $this->entityId = $request->getParameter("entityId", false); $this->value = $request->getParameter("value", false); $this->sfReviewType = $request->getParameter("type_id", false); $this->text = $request->getParameter("t", false); $this->entity = false; $this->filter = false; $culture = $this->getUser()->getCulture(); $filter = array(); //$filter['culture'] = $culture; if ($this->sfReviewType) { $filter['type_id'] = $this->sfReviewType; } if ($this->text) { $filter['textFilter'] = 'text'; } $reviewsPager = SfReviewManager::getReviews($filter); $str = ''; switch ($this->sfReviewType) { case 1: $str = sfContext::getInstance()->getI18N()->__("políticos"); break; case 2: $str = sfContext::getInstance()->getI18N()->__("partidos"); break; case 3: $str = sfContext::getInstance()->getI18N()->__("propuestas"); break; case "null": $str = sfContext::getInstance()->getI18N()->__("respuestas a otros comentarios"); break; } $title = sfContext::getInstance()->getI18N()->__("Últimas opiniones%1% en Voota.", array('%1%' => $str ? " " . sfContext::getInstance()->getI18N()->__("sobre") . " {$str}" : "")); $reviews = $reviewsPager->getResults(); $description = ($reviews[0]->getAnonymous() ? sfContext::getInstance()->getI18N()->__('anónimo') : (trim($reviews[0]->getSfGuardUser()) ? $reviews[0]->getSfGuardUser() : $reviews[0]->getSfGuardUser()->getProfile())) . " (" . ago(strtotime($reviews[0]->getModifiedAt() ? $reviews[0]->getModifiedAt() : $reviews[0]->getCreatedAt())) . "), " . ($reviews[1]->getAnonymous() ? sfContext::getInstance()->getI18N()->__('anónimo') : (trim($reviews[1]->getSfGuardUser()) ? $reviews[1]->getSfGuardUser() : $reviews[1]->getSfGuardUser()->getProfile())) . " (" . ago(strtotime($reviews[1]->getModifiedAt() ? $reviews[1]->getModifiedAt() : $reviews[1]->getCreatedAt())) . "), " . ($reviews[2]->getAnonymous() ? sfContext::getInstance()->getI18N()->__('anónimo') : (trim($reviews[2]->getSfGuardUser()) ? $reviews[2]->getSfGuardUser() : $reviews[2]->getSfGuardUser()->getProfile())) . " (" . ago(strtotime($reviews[2]->getModifiedAt() ? $reviews[2]->getModifiedAt() : $reviews[2]->getCreatedAt())) . "), " . "..."; $feed = new sfRssFeed(); $feed->setTitle($title); $feed->setLanguage($culture); $feed->setSubtitle($description); $feed->setDescription($description); $params = ""; if ($this->sfReviewType) { $params .= ($params ? '&' : '?') . 'type_id=' . $this->sfReviewType; } if ($this->text) { $params .= ($params ? '&' : '?') . 't=' . $this->text; } $feed->setLink("sfReviewFront/feed{$params}"); $domainExt = $culture == 'ca' ? "cat" : $culture; $feed->setAuthorName("Voota.{$domainExt}"); foreach ($reviews as $review) { $item = new sfFeedItem(); $entityText = ""; if (!$review->getSfReviewType()) { $tmpReview = $review->getSfReviewRelatedBySfReviewId(); $entityText = sfContext::getInstance()->getI18N()->__('otra opinión sobre') . ' '; } else { $tmpReview = $review; } $sfReviewType = SfReviewTypePeer::retrieveByPk($tmpReview->getSfReviewTypeId()); $peer = $sfReviewType->getModel() . 'Peer'; $entity = $peer::retrieveByPk($tmpReview->getEntityId()); $entityText .= $entity; $item->setTitle(sfContext::getInstance()->getI18N()->__('%1%, voota %2% de %3%.', array('%1%' => $review->getAnonymous() ? sfContext::getInstance()->getI18N()->__('anónimo') : $review->getSfGuardUser(), '%2%' => $review->getValue() == -1 ? sfContext::getInstance()->getI18N()->__('en contra') : sfContext::getInstance()->getI18N()->__('a favor'), '%3%' => $entityText))); $item->setLink('sfReviewFront/show?id=' . SfVoUtil::reviewPermalink($review)); if (!$review->getAnonymous()) { $item->setAuthorName($review->getSfGuardUser()); } $item->setPubdate($review->getCreatedAt('U')); $item->setUniqueId($review->getId()); if (!$review->getAnonymous()) { $avatar = S3Voota::getImagesUrl() . '/usuarios/cc_s_' . $review->getSfGuardUser()->getProfile()->getImagen(); } $text = $culture == $review->getCulture() || !$review->getCulture() ? $review->getText() : ''; if (!$review->getAnonymous()) { $img = $review->getSfGuardUser()->getProfile()->getImagen() ? "<img src=\"{$avatar}\" alt =\"" . $review->getSfGuardUser() . "\" /> " : ""; } $content = "{$text}"; $item->setDescription($content); $feed->addItem($item); } $this->feed = $feed; }