예제 #1
0
파일: APIServer.php 프로젝트: pizar/gaia
 /**
  * Elenco turni nel tempo
  */
 private function api_attivita()
 {
     global $conf;
     $inizio = DT::daISO($this->par['inizio']);
     $fine = DT::daISO($this->par['fine']);
     $cA = Turno::neltempo($inizio, $fine);
     $searchPuoPart = [];
     $r = [];
     $utente = $this->sessione->utente();
     if ($utente->admin) {
         ignoraTransazione();
     }
     if (!$utente) {
         $mioGeoComitato = null;
     } else {
         $mioGeoComitatoOid = $utente->unComitato()->oid();
         $mioGeoComitato = GeoPolitica::daOid($mioGeoComitatoOid);
     }
     foreach ($cA as $turno) {
         $attivita = $turno->attivita();
         $idAttivita = '' . $attivita->id;
         if (!isset($searchPuoPart[$idAttivita])) {
             $searchPuoPart[$idAttivita] = $attivita->puoPartecipare($utente);
         }
         if (!$searchPuoPart[$idAttivita]) {
             continue;
         }
         $geoAttivita = GeoPolitica::daOid($attivita->comitato);
         if ($mioGeoComitato) {
             if ($geoAttivita->contiene($mioGeoComitato)) {
                 $colore = $conf['attivita']['colore_mie'];
                 if ($turno->scoperto()) {
                     $colore = $conf['attivita']['colore_scoperto'];
                 }
             } else {
                 $colore = $conf['attivita']['colore_pubbliche'];
             }
         } else {
             $colore = $conf['attivita']['colore_anonimi'];
         }
         $r[] = ['turno' => ['id' => $turno->id, 'nome' => $turno->nome], 'attivita' => ['id' => $turno->attivita, 'nome' => $attivita->nome], 'inizio' => $turno->inizio()->toJSON(), 'fine' => $turno->fine()->toJSON(), 'organizzatore' => $geoAttivita->toJSON(), 'colore' => '#' . $colore, 'url' => '/?p=attivita.scheda&id=' . $attivita->id . '#' . $turno->id];
     }
     return ['turni' => $r];
 }