public function feedAction() { $woeid = $this->_request->getParam('woeid'); $ad_type = $this->_request->getParam('ad_type'); $status = $this->_request->getParam('status'); $modelAd = new Model_Ad(); $this->ads = $modelAd->getAdList($woeid, $ad_type, $status, 35); $rss['title'] = $this->view->translate($ad_type) . ' ' . $this->view->translate((string) $status) . ' - ' . $this->_helper->woeid->name($woeid, $this->lang) . ' | nolotiro.org'; $rss['link'] = 'http://' . $_SERVER['HTTP_HOST'] . '/' . $this->lang . '/rss/feed/woeid/' . $woeid . '/ad_type/' . $ad_type . '/status/' . $status; $rss['charset'] = 'utf-8'; $rss['description'] = 'nolotiro.org - ' . $this->_helper->woeid->name($woeid, $this->lang); $rss['language'] = $this->lang; $rss['generator'] = 'nolotiro.org'; $rss['entries'] = array(); foreach ($this->ads as $value) { $entry = array(); $entry['title'] = $value['title']; $entry['link'] = 'http://' . $_SERVER['HTTP_HOST'] . '/' . $this->lang . '/ad/' . $value['id'] . '/' . $this->view->slugTitle($value['title']); $entry['description'] = $this->view->escapeEmail($value['body']); $entry['lastUpdate'] = strtotime($value['date_created']); $rss['entries'][] = $entry; } $feedObj = Zend_Feed::importArray($rss, 'rss'); return $feedObj->send(); }
public function listAction() { $this->view->userRole = $this->_helper->checkUserRole->check(); $this->view->location = $this->_helper->checklocation->check(); $woeid = $this->_request->getParam('woeid'); $this->view->ad_type = $ad_type = $this->_request->getParam('ad_type'); if ($ad_type == 'give') { $this->view->page_title .= $this->view->translate('give') . ' ' . $this->view->translate('second hand') . ' '; $type = 'give'; } elseif ($ad_type == 'want') { $this->view->page_title .= $this->view->translate('want') . ' ' . $this->view->translate('second hand') . ' '; $type = 'want'; } else { //dont accept other values than give/want $this->getResponse()->setHttpResponseCode(404); $this->_helper->_flashMessenger->addMessage($this->view->translate('this url does not exist')); $this->_redirect('/' . $this->lang . '/woeid/' . $this->location . '/give', array('code' => 301)); } $this->view->page_title .= ' ' . $this->view->translate('free') . ' '; $this->view->status = $status = $this->_request->getParam('status'); $f = new Zend_Filter(); $f->addFilter(new Zend_Filter_HtmlEntities()); $status = $f->filter($status); if ($status) { $this->view->page_title .= $this->view->translate($status) . ' '; } else { $status = 'available'; } $model = new Model_Ad(); $this->view->woeid = $woeid; $this->view->ad = $model->getAdList($woeid, $ad_type, $status); $this->view->woeidName = $this->_helper->woeid->name($woeid, $this->lang); $short = explode(',', $this->view->woeidName); $this->view->woeidNameShort = ' ' . $this->view->translate('in') . ' ' . $short[0]; //add meta description to head $this->view->metaDescription = $this->view->translate($type) . ' ' . $this->view->woeidNameShort . '. ' . $this->view->translate('nolotiro.org is a website where you can give away things you no longer want or no longer need to pick them up other people who may serve or be of much use.'); //add link rel canonical , better seo $this->view->canonicalUrl = 'http://' . $_SERVER['HTTP_HOST'] . '/' . $this->lang . '/woeid/' . $woeid . '/' . $ad_type . '/status/' . $status; //add the link to the proper rss to layout $this->view->headLink()->appendAlternate('http://' . $_SERVER['HTTP_HOST'] . '/' . $this->lang . '/rss/feed/woeid/' . $woeid . '/ad_type/' . $ad_type . '/status/' . $status, 'application/rss+xml', $this->view->woeidName . ' - ' . $this->view->translate((string) $type)); if (empty($this->view->ad)) { $this->view->suggestIP = $this->_helper->getLocationGeoIP->suggest(); $this->view->similarLocations = $this->_helper->similarLocations->suggest($this->view->woeidName, $this->lang); } //TODO , this sucks, do a better way to not show invalid woeids or null if (empty($woeid) || $woeid < 10 || $woeid == 29370606) { //29370606 españa town $this->_helper->_flashMessenger->addMessage($this->view->translate('This location is not a valid town. Please, try again.')); $this->_redirect('/' . $this->lang . '/location/change', array('code' => 301)); } //set the location name reg var from the woeid helper $aNamespace = new Zend_Session_Namespace('Nolotiro'); $aNamespace->locationName = $this->view->woeidName; $this->view->page_title .= $this->view->woeidName; //paginator $page = $this->_getParam('page'); if ($page) { $this->view->page_title .= ' - ' . $this->view->translate('page') . ' ' . $page; } $paginator = Zend_Paginator::factory($this->view->ad); $paginator->setDefaultScrollingStyle('Elastic'); $paginator->setItemCountPerPage(20); $paginator->setCurrentPageNumber($page); $this->view->paginator = $paginator; }