public function executeGetIndexChartsTopPoliticians() { # check query string parameters and validate to avoid SQL injection $this->forward404Unless($this->hasRequestParameter('ramo')); $ramo = $this->getRequestParameter('ramo', ''); $this->forward404Unless(in_array($ramo, array('C', 'S'))); //$this->forward404Unless($this->hasRequestParameter('data')); $data = $this->getRequestParameter('data', ''); if ($data != '') { $this->forward404Unless(strtotime($data)); } $this->forward404Unless($this->hasRequestParameter('limit')); $limit = (int) $this->getRequestParameter('limit', ''); $this->forward404Unless(is_integer($limit)); $group_acr = $this->getRequestParameter('group', ''); $group_id = null; if ($group_acr != '') { $c = new Criteria(); $c->add(OppGruppoPeer::ACRONIMO, $group_acr); $group = OppGruppoPeer::doSelectOne($c); $this->forward404If(is_null($group)); $group_id = $group->getId(); } foreach ($this->regioni as $reg) { sfContext::getInstance()->getLogger()->info($reg); } $constituency = $this->getRequestParameter('circoscrizione', ''); if ($constituency != '') { $constituency_is_valid = in_array(strtolower($constituency), $this->regioni); $this->forward404Unless($constituency_is_valid); } if ($data != '') { $items = OppPoliticianHistoryCachePeer::getIndexChartsTopPoliticians($ramo, $data, $limit, $group_id, $constituency); } else { $items = OppCaricaPeer::getIndexChartsTopPoliticiansRealTime($ramo, $data, $limit, $group_id, $constituency); } $this->_send_json_output(json_encode($items)); return sfView::NONE; }