/**
  * Funzione che ascolta il form di inserimento Curriculum
  */
 public function listenerCvForm()
 {
     //se è stato inviato un cv attivo l'ascoltatore
     if (isset($_POST['invia-cv'])) {
         //controllo lato server dei campi obbligatori: Nome, Cognome, Email, Categoria, CV
         if ($this->checkData($_POST)) {
             //print_r($_POST);
             //                print_r($_FILES);
             //impongo un path dove salvare il cv
             $folder = 'upload_CV';
             //controllo se il path esiste
             $this->checkFolder($folder);
             //carico nel filesystem
             /*MODIFICA PER CAMBIARE IL NOME DEL FILE SALVATO */
             $nameFile = str_replace('.', '-', strip_tags(trim($_POST['email'])));
             $nameFile .= '-' . strip_tags($_POST['categoria']);
             //ottengo l'estensione del file
             $temp = explode('.', $_FILES['carica-cv']['name']);
             $extension = $temp[count($temp) - 1];
             $nameFile .= '.' . $extension;
             /*FINE MODIFICA */
             $check_upload = $this->uploadCvOnFileSystem($_FILES['carica-cv'], $folder, $nameFile);
             if ($check_upload) {
                 //se l'upload è avvenuto correttamente, salvo i dati nel database
                 $cv = new CV();
                 //campi obbligatori
                 $cv->setCategoria(strip_tags($_POST['categoria']));
                 $cv->setCognome(strip_tags(trim($_POST['cognome'])));
                 $cv->setCv($folder . '/' . $nameFile);
                 $cv->setEmail(strip_tags(trim($_POST['email'])));
                 $cv->setNome(strip_tags(trim($_POST['nome'])));
                 //campi non obbligatori
                 if (isset($_POST['ruolo']) && $_POST['ruolo'] != '') {
                     $cv->setRuolo($_POST['ruolo']);
                 }
                 //se l'utente inserisce un ruolo che non è stato confermato dall'amministratore
                 //il processo di associazione di quel ruolo al cv avviene con un precedente inserimento del ruolo indicato nel db
                 //il ruolo verrà aggiunto nel db e sarà associato all'attuale cv
                 if (isset($_POST['altro-ruolo']) && $_POST['altro-ruolo'] != '') {
                     $ruolo = new Ruolo();
                     $ruolo->setCategoria(strip_tags($_POST['categoria']));
                     $ruolo->setNome(strip_tags(trim($_POST['altro-ruolo'])));
                     //imposto il ruolo come non ancora pubblicato
                     $ruolo->setPubblicato(0);
                     //salvo il ruolo nel db e ottengo l'id appena salvato
                     $idNuovoRuolo = $this->ruoloController->saveRuolo($ruolo);
                     if (!(isset($_POST['ruolo']) && $_POST['ruolo'] != '')) {
                         //se non ho un ruolo già salvato dal campo $_POST['ruolo'] (ha la precedenza su questo), lo salvo
                         $cv->setRuolo($idNuovoRuolo);
                     }
                 }
                 if (isset($_POST['regione'])) {
                     $cv->setRegione($_POST['regione']);
                 }
                 if (isset($_POST['provincia'])) {
                     $cv->setProvincia($_POST['provincia']);
                 }
                 //eseguo il controllo se pubblicare o meno il cv
                 //ciò è dato dalla pubblicazione del RUOLO. Se il Ruolo è pubblicato, pubblico anche il CV
                 if ($cv->getRuolo() != null) {
                     //se il ruolo è stato inserito allora bisogna che questo venga controllato
                     //se il ruolo esiste ed è pubblicato allora il cv può essere pubblicato
                     //se il ruolo non è presente oppure non è ancora stato approvato, il cv non può essere pubblicato
                     if ($this->ruoloController->isRuoloPubblicato($cv->getRuolo())) {
                         //AGGIUNTA --> Il CV viene pubblicato anche se non è associato al ruolo.
                         $cv->setPubblicato(1);
                     } else {
                         $cv->setPubblicato(0);
                     }
                 } else {
                     //se il ruolo non è presente nel cv inviato, allora questo può essere pubblicato tranquillamente.
                     $cv->setPubblicato(1);
                 }
                 //salvo il cv nel db
                 $valueSaveCV = $this->cvController->saveCV($cv);
                 if ($valueSaveCV == 1) {
                     echo '<div class="ok">Il Curriculum è stato caricato correttamente nel sistema!</div>';
                 } else {
                     if ($valueSaveCV == 2) {
                         echo '<div class="ok">Il Curriculum per la categoria occupazionale indicata è già presente nel sistema. Abbiamo provveduto ad aggiornare con l\'ultimo Curriculum fornito.</div>';
                     } else {
                         echo '<div class="ko">Sono sopraggiunti errori nel caricare il Curriculum nel sistema.</div>';
                     }
                 }
             }
         } else {
             echo '<div class="ko">Abbiamo riscontrato un errore nel caricamento per il seguente motivo:';
             if (isset($_SESSION['errorEntry'])) {
                 echo $_SESSION['errorEntry'];
             }
             echo '</div>';
         }
     }
 }
 function fromQueryResultToCv($value)
 {
     // print_r($value);
     $cv = new CV();
     $cv->setCategoria($value->categoria);
     $cv->setCognome($value->cognome);
     $cv->setCv($value->cv);
     $cv->setDataInserimento($value->data_inserimento);
     $cv->setEmail($value->email);
     $cv->setNome($value->nome);
     $cv->setProvincia($value->provincia);
     $cv->setPubblicato($value->pubblicato);
     $cv->setRegione($value->regione);
     $cv->setRuolo($value->ruolo);
     return $cv;
 }