/** * API (protetta da una API key) * torna flusso xml con gli atti in un certo intervallo di date * progetto op_fb * * <opp xmlns="http://www.openpolis.it/2010/opp" * xmlns:op="http://www.openpolis.it/2010/op" * xmlns:xlink="http://www.w3.org/1999/xlink"> * <op:content> * <atto opp_id="38631"> * <legislatura>16</legislatura> * <ramo>S</ramo> * <numero>1611</numero> * <titolo><![CDATA[ * [Ddl intercettazioni] Norme in materia di intercettazioni telefoniche, telematiche e ambientali. Modifica della disciplina in materia di astensione del giudice e degli atti di indagine. Integrazione della disciplina sulla responsabilità amministrativa delle persone giuridiche * ]]> * </titolo> * <presentato_il>2009-06-11</presentato_il> * </atto> * <atto opp_id="51055"> * <legislatura>16</legislatura> * <ramo>DL</ramo> * <numero>29/10</numero> * <tipo_atto>SDDL</tipo_atto> * <titolo><![CDATA[ * [Decreto salva liste] Interpretazione autentica di disposizioni del procedimento elettorale e relativa disciplina di attuazione (G.U. n. 54 del 06/03/2010) * ]]> * </titolo> * <presentato_il>2010-03-05</presentato_il> * </atto> * <atto opp_id="36235"> * <legislatura>16</legislatura> * <ramo>C</ramo> * <numero>2350</numero> * <titolo><![CDATA[ * [Testamento biologico e cure di fine vita] Disposizioni in materia di alleanza terapeutica, di consenso informato e di dichiarazioni anticipate di trattamento * ]]> * </titolo> * <presentato_il>2009-04-01</presentato_il> * </atto> * </op:content> * </opp> * * * Return error in case something's wrong * <opp xlmns="http://www.openpolis.it/2010/opp" * xmlns:op="http://www.openpolis.it/2010/op" * <op:error>Messaggio di errore</op:error> * </opp> * @return String * @author Guglielmo Celata **/ public function executeElencoAtti() { $data_inizio = $this->getRequestParameter('data_inizio'); $data_fine = $this->getRequestParameter('data_fine'); $ramo = null; if ($this->hasRequestParameter('ramo')) { $ramo = $this->getRequestParameter('ramo'); } $tipo_atto = null; if ($this->hasRequestParameter('tipo_atto')) { $tipo_atto = $this->getRequestParameter('tipo_atto'); } $escludi_tipi = array(); if ($this->hasRequestParameter('escludi_tipi')) { $escludi_tipi_str = urldecode($this->getRequestParameter('escludi_tipi')); $escludi_tipi = explode(",", $escludi_tipi_str); } $key = $this->getRequestParameter('key'); $is_valid_key = deppApiKeysPeer::isValidKey($key); $resp_node = new SimpleXMLExtended('<opp xmlns="' . $this->opp_ns . '" ' . ' xmlns:op="' . $this->op_ns . '" ' . ' xmlns:xlink="' . $this->xlink_ns . '" >' . '</opp>'); if ($is_valid_key) { // start producing xml $content_node = $resp_node->addChild('op:content', null, $this->op_ns); $atti = OppAttoPeer::getAttiInDateInterval($data_inizio, $data_fine, $ramo, $tipo_atto, $escludi_tipi); $atti_node = $content_node->addChild('atti', null, $this->opp_ns); $atti_node->addAttribute('n_atti', count($atti)); foreach ($atti as $atto) { $titulo = $atto->getTitolo(); $data_pres = $atto->getDataPres('Y-m-d'); $ramo = $atto->getRamo(); $numero = $atto->getNumfase(); $legislatura = $atto->getLegislatura(); $atto_node = $atti_node->addChild('atto', null, $this->opp_ns); $atto_node->addAttribute('opp_id', $atto->getId()); $atto_node->addChild('legislatura', $legislatura); $atto_node->addChild('ramo', $ramo); $atto_node->addChild('numero', $numero); $tipo_atto = $atto_node->addChild('tipo_atto', $atto->getOppTipoAtto()->getDenominazione()); // $tipo_atto->addAttribute('id', $atto->getTipoAttoId()); $titulo_node = $atto_node->addChild('titolo', null); $titulo_node->addCData($titulo); $atto_node->addChild('presentato_il', $data_pres); } } else { $resp_node->addChild('op:error', 'Chiave di accesso non valida', $this->op_ns); } $xmlContent = $resp_node->asXML(); $this->_send_output($xmlContent); return sfView::NONE; }