/** * RSS version of list page */ public function executeRss() { // TODO: factorize with list action? $timer = new sfTimer('executeRss'); $module = $this->getModuleName(); $model = $this->model_class; $criteria = $this->getListCriteria($model); if ($criteria !== 'no_result' && $module != 'documents') { $sort = call_user_func(array('Document', 'getListSortCriteria'), $model); $page = $this->getRequestParameter('page', 1); $infos = call_user_func(array('Document', 'browse'), $model, $sort, $criteria, array('rss'), $page); $nb_results = $infos['nb_results']; $this->pager = $infos['pager']; $this->query = $infos['query']; if ($nb_results > 0) { $items = $this->query->execute(array(), Doctrine::FETCH_ARRAY); if (isset($items[0]['geoassociations'])) { $items = Language::getTheBestForAssociatedAreas($items); } // Retrieve creator and creation date. $items = Outing::getAssociatedCreatorData($items); } else { $items = array(); } } else { $nb_results = 0; $items = array(); } $this->nb_results = $nb_results; $this->items = $items; $this->setLayout(false); $this->setTemplate('../../documents/templates/rss'); $this->setCacheControl(); c2cActions::statsdTiming('document.executeRss', $timer->getElapsedTime('executeRss')); }
/** * Executes list action, adding ratings from routes linked to outings */ public function executeList() { // redirect to user outings list if connected and if myoutings criteria is set if ($this->getUser()->isConnected() && $this->getRequestParameter('myoutings')) { sfLoader::loadHelpers(array('Pagination')); $user_id = $this->getUser()->getId(); $this->redirect(_addUrlParameters(_getBaseUri(), array('myoutings'), array('users' => $user_id))); } // TODO something to do if outings where filtered on route ratings? parent::executeList(); $format = $this->format; if (in_array('cond', $format) && !in_array('json', $format)) { $this->setTemplate('conditions'); if (in_array('full', $format)) { $this->setPageTitle($this->__('conditions and comments')); } else { $this->setPageTitle($this->__('recent conditions')); } } $nb_results = $this->nb_results; if ($nb_results == 0) { return; } $show_images = $this->show_images; $timer = new sfTimer(); $outings = $this->query->execute(array(), Doctrine::FETCH_ARRAY); c2cActions::statsdTiming('pager.getResults', $timer->getElapsedTime()); $timer = new sfTimer(); $outings = Outing::getAssociatedCreatorData($outings); // retrieve outing creator names c2cActions::statsdTiming('outing.getAssociatedCreatorData', $timer->getElapsedTime()); $timer = new sfTimer(); $outings = Outing::getAssociatedRoutesData($outings); // retrieve associated route ratings c2cActions::statsdTiming('outing.getAssociatedRoutesData', $timer->getElapsedTime()); if (!in_array('list', $format)) { $timer = new sfTimer(); $outings = Language::getTheBestForAssociatedAreas($outings); c2cActions::statsdTiming('language.getTheBestForAssociatedAreas', $timer->getElapsedTime()); } // add images infos if ($show_images) { $timer = new sfTimer(); Image::addAssociatedImages($outings, 'oi'); c2cActions::statsdTiming('image.addAssociatedImages', $timer->getElapsedTime()); } Area::sortAssociatedAreas($outings); $this->items = Language::parseListItems($outings, 'Outing', !$show_images); }