public function executeGetIndexChartsPoliticiansInConstituency() { $regioni = array("piemonte", "valle d\\'aosta", "lombardia", "trentino-alto adige", "veneto", "friuli-venezia giulia", "liguria", "emilia-romagna", "toscana", "umbria", "marche", "lazio", "abruzzo", "molise", "campania", "puglia", "basilicata", "calabria", "sicilia", "sardegna"); # 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('circoscrizione')); $circoscrizione = $this->getRequestParameter('circoscrizione', ''); $circoscrizione_is_valid = false; foreach ($regioni as $regione) { if (strpos($circoscrizione, $regione) !== false) { $circoscrizione_is_valid = true; break; } } $this->forward404Unless($circoscrizione_is_valid); if ($data != '') { $politicians = OppPoliticianHistoryCachePeer::getIndexChartsPoliticiansInConstituency($ramo, $data, $circoscrizione); } else { $politicians = OppCaricaPeer::getIndexChartsPoliticiansInConstituencyRealTime($ramo, $data, $circoscrizione); } $items = $this->_add_data_inizio_incarico($politicians, $ramo, $data); $this->_send_json_output(json_encode($items)); return sfView::NONE; }