public function aree($obiettivo = null, $espandiLocali = false) { if (!$espandiLocali) { return parent::aree($obiettivo); } $r = parent::aree($obiettivo); foreach ($this->estensione() as $c) { $r = array_merge($r, $c->aree($obiettivo)); } return array_unique($r); }
*/ $files = array(); $docenti = []; $partecipazioni = $corso->docenti(); foreach ($partecipazioni as $i) { $docenti[] = ['url' => '#', 'nome' => $i->volontario()->nomeCompleto()]; } /* $g = Gruppo::by('attivita', $a); $apertura = $corso->apertura; */ $puoPartecipare = true; $apertura = true; $modificabile = false; $geoComitato = GeoPolitica::daOid($corso->organizzatore); ?> <div class="row-fluid"> <div class="span3"> <?php menuVolontario(); ?> </div> <div class="span9"> <div class="row-fluid"> <div class="span8 btn-group"> <?php if (intval($me->id) == $corso->direttore && $c->stato == CORSO_S_CONCLUSO) {
<div class="controls"> <input type="text" name="inputTelefono" id="inputTelefono" value="<?php echo $autoparco->telefono; ?> "> </div> </div> <?php if (!$admin) { ?> <div class="control-group"> <label class="control-label" for="inputComitato">Comitato</label> <div class="controls"> <input class="input-xlarge" type="text" name="inputComitato" id="inputComitato" value="<?php echo GeoPolitica::daOid($autoparco->comitato)->nomeCompleto(); ?> " readonly> </div> </div> <?php } else { ?> <div class="control-group"> <label class="control-label" for="inputComitato">Comitato</label> <div class="controls"> <select class="input-xlarge" id="inputComitato" name="inputComitato" required> <?php foreach ($me->comitatiApp([APP_AUTOPARCO, APP_PRESIDENTE]) as $comitato) { ?> <option value="<?php
<?php /* * ©2013 Croce Rossa Italiana */ $albero = GeoPolitica::ottieniAlbero()[0]; ?> <div class="row-fluid"> <div class="span8"> <h2> <i class="icon-globe text-error"></i> Dov'è Croce Rossa attorno a me? </h2> </div> <div class="span4 allinea-centro"> <i class="icon-bar-chart icon-2x text-error"></i><br /> <label class="label label-success"><?php echo count(Comitato::elenco()); ?> </label> <strong>Unità CRI aderiscono al progetto Gaia</strong> </div> </div> <hr /> <div class="row-fluid">
public function visibilitaMinima(GeoPolitica $g) { $livello = $g->_estensione(); switch ($livello) { case EST_UNITA: return ATT_VIS_UNITA; break; case EST_LOCALE: return ATT_VIS_LOCALE; break; case EST_PROVINCIALE: return ATT_VIS_PROVINCIALE; break; case EST_REGIONALE: return ATT_VIS_REGIONALE; break; case EST_NAZIONALE: return ATT_VIS_NAZIONALE; break; } }
<?php $oid = $_GET['oid']; $c = GeoPolitica::daOid($oid); paginaApp(APP_PRESIDENTE, [$c]); if ($c->permettiTrasferimentiUS()) { $c->trasferimentiUS = 0; } else { $c->trasferimentiUS = time(); } redirect("presidente.comitato&oid=" . $c->oid());
<?php /* * ©2013 Croce Rossa Italiana */ paginaPrivata(); caricaSelettore(); controllaParametri(array('id')); $a = Attivita::id($_GET['id']); $geoComitato = GeoPolitica::daOid($a->comitato); $modificabile = $a->modificabileDa($me); if ($modificabile) { $dominio = $me->dominioCompetenzaAttivita($a); } if (isset($_GET['riapri'])) { ?> <script type='text/javascript'> $(document).ready( function() { $('#turno_<?php echo $_GET['riapri']; ?> ').parents('tr').show(); $('#turno_<?php echo $_GET['riapri']; ?> ').modal('show'); }); </script> <?php } ?>
function cronjobGiornaliero() { global $log, $db, $cache; $ok = true; /* === 0. PERSISTE LA CACHE SU DISCO */ cronjobEsegui("Persistere la cache di Redis su disco", function () use($cache) { if ($cache) { $cache->save(); } return true; }, $log, $ok); cronjobEsegui("Cancellare file scaduti da disco e database", function () { $n = 0; foreach (File::scaduti() as $f) { $f->cancella(); $n++; } return "Cancellati {$n} file scaduti"; }, $log, $ok); cronjobEsegui("Autorizzare estensioni dopo 30gg, con notifica ai volontari", function () { $n = 0; foreach (Estensione::daAutorizzare() as $e) { $e->auto(); $n++; } return "Concesse {$n} estensioni"; }, $log, $ok); cronjobEsegui("Terminare estensioni", function () { $n = 0; foreach (Estensione::daChiudere() as $e) { $e->termina(); $n++; } return "Chiuse {$n} estensioni"; }, $log, $ok); cronjobEsegui("Autorizzare trasferimenti dopo 30gg, notifica e chiusura sospesi e turni", function () { $n = 0; foreach (Trasferimento::daAutorizzare() as $t) { $t->auto(); $n++; } return "Autorizzati {$n} trasferimenti"; }, $log, $ok); cronjobEsegui("Autorizzare riserve dopo 30gg", function () { $n = 0; foreach (Riserva::daAutorizzare() as $r) { $r->auto(); $n++; } return "Autorizzate {$n} riserve"; }, $log, $ok); cronjobEsegui("Pulitura e fix delle attività", function () { $n = 0; $n = Attivita::pulizia(); return "Fix di {$n} attività"; }, $log, $ok); cronjobEsegui("Rigenerazione albero dei comitati", function () { GeoPolitica::rigeneraAlbero(); return true; }, $log, $ok); cronjobEsegui("Chiusura validazioni scadute", function () { Validazione::chiudi(); return true; }, $log, $ok); cronjobEsegui("Rimozione errori vecchi di una settimana", function () { $n = MErrore::pulisci(); return "Cancellati log di {$n} errori in database"; }, $log, $ok); /**************************************************** * MODULO FORMAZIONE ****************************************************/ // Creo i certificati per i corsi superati cronjobEsegui("Cerca i corsi in stato da elaborare e genera i relativi certificati", function () { $n = Corso::chiudiCorsi(); return "Generati ({$n}) certificati"; }, $log, $ok); return $ok; }
/** * Usare per proteggere in una pagina gli autoparchi * @param $autoparco id dell'autoparco * @param $app di riferimento * @return ritorna true or false */ function proteggiAutoparco($autoparco, $app = [APP_PRESIDENTE]) { global $me; if ($me->admin()) { return true; } $comitati = $me->comitatiApp($app, false); $comitato = $autoparco->comitato; $comitato = GeoPolitica::daOid($comitato); if (in_array($comitato, $comitati)) { return true; } redirect('errore.permessi&cattivo'); }
/** * Cancella il comitato con tutte le sue dipendenze * @param comitato */ public function cancella() { /* Cancello aree e responsabili */ $aree = Area::filtra([['comitato', $this]]); foreach ($aree as $area) { $area->cancella(); } /* Cancello le attività */ $attivita = Attivita::filtra([['comitato', $this]]); foreach ($attivita as $att) { $turni = Turno::filtra([['attivita', $att]]); foreach ($turni as $turno) { $partecipazioni = Partecipazione::filtra([['turno', $turno]]); foreach ($partecipazioni as $partecipazione) { $autorizzazioni = Autorizzazione::filtra([['partecipazione', $partecipazione]]); foreach ($autorizzazioni as $autorizzazione) { $autorizzazione->cancella(); } $partecipazione->cancella(); } $coturni = Coturno::filtra([['turno', $turno]]); foreach ($coturni as $coturno) { $coturno->cancella(); } $turno->cancella(); } $mipiaci = Like::filtra([['oggetto', $att->oid()]]); foreach ($mipiaci as $mipiace) { $mipiace->cancella(); } $att->cancella(); } /* Cancello le dimissioni */ $dimissioni = Dimissione::filtra([['comitato', $this]]); foreach ($dimissioni as $dimissione) { try { $appartenenza = $dimissione->appartenenza(); $appartenenza->cancella(); } catch (Exception $e) { } $dimissione->cancella(); } /* Cancello le dimissioni */ $estensioni = Estensione::filtra([['cProvenienza', $this]]); foreach ($estensioni as $estensione) { try { $appartenenza = $estensione->appartenenza(); $appartenenza->cancella(); } catch (Exception $e) { } $estensione->cancella(); } /* Cancello i gruppi personali */ $appgruppi = AppartenenzaGruppo::filtra([['comitato', $this]]); foreach ($appgruppi as $appgruppo) { $appgruppo->cancella(); } /* Cancello reperibilità */ $reperibilita = Reperibilita::filtra([['comitato', $t]]); foreach ($reperibilita as $reperibile) { $reperibile->cancella(); } /* Cancello appartenenze */ $appartenenze = Appartenenza::filtra([['comitato', $this]]); foreach ($appartenenze as $appa) { $riserve = Riserva::filtra([['appartenenza', $appa]]); foreach ($riserve as $riserva) { $riserva->cancella(); } $estensioni = Estensione::filtra([['appartenenza', $appa]]); foreach ($estensioni as $estensione) { $estensione->cancella(); } $trasferimenti = Trasferimento::filtra([['appartenenza', $appa]]); foreach ($trasferimenti as $trasferimento) { $trasferimento->cancella(); } $appa->cancella(); } parent::cancella(); }
/** * Ritorna l'organizzatore del corso base * @return GeoPolitica */ public function presidente() { $comitato = GeoPolitica::daOid($this->organizzatore); return $comitato->primoPresidente(); }
public function comitato() { print "comitato():"; print_r($this->comitato); return GeoPolitica::daOid($this->comitato); }
private function api_istruttori_in_affiancamento_cerca() { $me = $this->richiediLogin(); $r = new Ricerca(); /* Ordini personalizzati per vari usi */ $ordini = ['selettore' => ['pertinenza DESC']]; if ($this->par['ordine'] && isset($ordini[$this->par['ordine']])) { $r->ordine = $ordini[$this->par['ordine']]; } if ($this->par['stato']) { $r->stato = $this->par['stato']; } elseif ($this->par['stato'] === 0) { $r->stato = 0; } if ($this->par['statoPersona']) { $r->statoPersona = $this->par['statoPersona']; } elseif ($this->par['statoPersona'] === 0) { $r->statoPersona = 0; } else { $r->statoPersona = false; } if ($this->par['passato']) { $r->passato = true; } if ($this->par['giovane']) { $r->giovane = true; } if ($this->par['infermiera']) { $r->infermiera = true; } if ($this->par['militare']) { $r->militare = true; } // versione modificata per #867 if ($this->par['comitati']) { $g = GeoPolitica::daOid($this->par['comitati']); // bisogna avere permessi di lettura sul ramo if (!$me->puoLeggereDati($g)) { throw new Errore(1016); } $com = $g->estensione(); } else { $com = array_merge($me->comitatiApp([APP_PRESIDENTE, APP_SOCI, APP_OBIETTIVO]), $me->geopoliticheAttivitaReferenziate(), $me->comitatiAreeDiCompetenza(true)); } $r->comitati = $com; if ($this->par['query']) { $r->query = $this->par['query']; } if ($this->par['pagina']) { $r->pagina = (int) $this->par['pagina']; } if ($this->par['perPagina']) { $r->perPagina = (int) $this->par['perPagina']; } $r->esegui(); $risultati = []; foreach ($r->risultati as $risultato) { $risultati[] = $risultato->toJSONRicerca(); } $risposta = ['tempo' => $r->tempo, 'totale' => $r->totale, 'pagina' => $r->pagina, 'pagine' => $r->pagine, 'perPagina' => $r->perPagina, 'risultati' => $risultati]; return $risposta; }
foreach ($est as $este) { $este->nega($motivo); } /* Estensioni verso il comitato */ $appest = Appartenenza::filtra([['comitato', $t], ['stato', MEMBRO_EST_PENDENTE]]); foreach ($appest as $apest) { $apest->estensione()->nega($motivo); } /* Trasferimenti dal comitato */ $trasf = Trasferimento::filtra([['cProvenienza', $t], ['stato', TRASF_INCORSO]]); foreach ($trasf as $trasfe) { $trasfe->nega($motivo); } /* Trasferimenti verso il comitato */ $apptrasf = Appartenenza::filtra([['comitato', $t], ['stato', MEMBRO_TRASF_IN_CORSO]]); foreach ($apptrasf as $aptrasf) { $aptrasf->trasferimento()->nega($motivo); } $riserve = Riserva::filtra([['comitato', $t], ['stato', RISERVA_INCORSO]]); foreach ($riserve as $riserva) { $riserva->nega($motivo); } $t->principale = 0; $t->locale = $c; } elseif ($estensione == EST_LOCALE) { $t->provinciale = $c; } elseif ($estensione == EST_PROVINCIALE) { $t->regionale = $c; } GeoPolitica::rigeneraAlbero(); redirect('admin.comitati&spostato');
} ?> <div class="btn-group" style="width:100%;"> <button class="btn" style="width:90%;"><?php echo $ruolo; ?> </button> <button class="btn dropdown-toggle" data-toggle="dropdown" style="width:10%;"> <span class="caret"></span> </button> <ul class="dropdown-menu"> <?php foreach ($d as $_d) { if ($_d->id != $sessione->ambito) { try { $g = GeoPolitica::daOid($_d->comitato); $nome = "{$g->nome}"; if ($g->_estensione() == EST_UNITA) { $nome = "Unità {$g->nome}"; } if ($_d->applicazione == APP_OBIETTIVO) { $s = "<a href='?p=utente.caricaRuolo.ok&ruolo={$_d->id}'>Delegato {$conf['nomiobiettivi'][$_d->dominio]}: {$nome}"; } else { $s = "<a href='?p=utente.caricaRuolo.ok&ruolo={$_d->id}'>{$conf['applicazioni'][$_d->applicazione]}: {$nome}"; } } catch (Exception $e) { } echo "<li>{$s}</li>"; } } ?>
<?php /* * ©2013 Croce Rossa Italiana */ controllaParametri(array('oid'), 'admin.comitati&err'); $c = $_GET['oid']; $c = GeoPolitica::daOid($c); paginaAdmin(); $c->nome = normalizzaNome($_POST['inputNome']); redirect('admin.comitati');
<?php /* * ©2013 Croce Rossa Italiana */ paginaAdmin(); paginaModale(); $t = GeoPolitica::daOid($_GET['oid']); $estensione = $t->_estensione(); if ($estensione == EST_UNITA) { $elenco = Locale::elenco('nome ASC'); } elseif ($estensione == EST_LOCALE) { $elenco = Provinciale::elenco('nome ASC'); } elseif ($estensione == EST_PROVINCIALE) { $elenco = Regionale::elenco('nome ASC'); } ?> <form action="?p=admin.comitato.sposta.ok&oid=<?php echo $_GET['oid']; ?> " method="POST"> <div class="modal fade automodal"> <div class="modal-header"> <h3><i class="icon-arrow-right"></i> Sposta Comitato</h3> </div> <div class="modal-body"> <p>Con questo strumento è possibile spostare il Comitato selezionato e tutti i suoi figli!</p> <p><strong class="text-error"><i class="icon-warning-sign"></i> Attenzione verrà spostato il Comitato e tutto ciò dipenda da lui.</strong></p> <hr /> <div class="row-fluid">
<?php /** * (c)2015 Croce Rossa Italiana */ paginaAdmin(); $g = $_GET['oid']; $g = GeoPolitica::daOid($g); $n = (int) (!(bool) $g->attivo); // Attiva/disattiva $g->attivo = $n; // Attiva/disattiva tutti i figli foreach ($g->esplora(EST_UNITA, ESPLORA_RAMI, true) as $x) { $x->attivo = $n; } redirect('admin.comitati&ad');
/** * Ritorna l'organizzatore del corso base * @return GeoPolitica */ public function organizzatore() { return GeoPolitica::daOid($this->organizzatore); }
/* * ©2013 Croce Rossa Italiana */ controllaParametri(['comitato'], 'us.dash&err'); paginaApp([APP_PRESIDENTE, APP_SOCI]); $d = $me->delegazioneAttuale(); $admin = (bool) $me->admin(); if (!$admin && $d->estensione == EST_UNITA) { redirect('errore.permessi&cattivo'); } $comitato = $_GET['comitato']; if ($admin) { $comitato = Nazionale::elenco()[0]; } else { $comitato = GeoPolitica::daOid($comitato); } $ramo = new RamoGeoPolitico($comitato, ESPLORA_RAMI, EST_LOCALE); ?> <div class="row-fluid"> <div class="span3"> <?php menuVolontario(); ?> </div> <div class="span9"> <div class="row-fluid"> <div class="span12"> <h3><i class="icon-book"></i> Elenco Presidenti </h3> <br />
public function comitato() { return GeoPolitica::daOid($this->comitato); }
public function struttura() { return GeoPolitica::daOid($this->struttura); }
/** * Calcola il dominio comune tra la GeoPolitica attuale ed una seconda fornita * - Se le due GeoPolitiche risiedono su di un ramo comune, ritorna la GeoPolitica inferiore * - Se le due GeoPolitiche risiedono su rami differenti, ritorna FALSE * @param GeoPolitica $g La seconda GeoPolitica * @return false|GeoPolitica Il dominio comune */ public function dominioComune(GeoPolitica $g) { if (static::$_ESTENSIONE == $g::$_ESTENSIONE) { // Le due sono dello stesso livello. if ($this->oid() == $g->oid()) { return $this; } return false; } elseif (static::$_ESTENSIONE > $g::$_ESTENSIONE) { // Questa e' superiore $maggiore = $this; $minore = $g; } else { // Questa e' inferiore $maggiore = $g; $minore = $this; } if ($maggiore->contiene($minore)) { return $minore; } return false; }