/** * 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]; }