Ejemplo n.º 1
0
 public function before_creer_citations_visite()
 {
     $this->header_json();
     try {
         $_POST['id_visite_nid'] = (int) $_POST['id_visite_nid'];
         $visite = new clicnat_visite_espace_hirondelle($this->db, $_POST['id_visite_nid']);
         if (!$visite) {
             throw new Exception("pas trouvé de viste avec cet idendifiant : {$_POST['id_visite_nid']}");
         }
         $observation = ['datedeb' => $visite->date_visite_nid, 'datefin' => $visite->date_visite_nid, 'id_utilisateur' => $_SESSION['id_utilisateur'], 'table_espace' => 'espace_point', 'id_espace' => $visite->id_espace];
         $id_observation = isset($_POST['id_observation_visite']) ? $_POST['id_observation_visite'] : bobs_observation::insert($this->db, $observation);
         $retour = ["citations" => [], "id_observation" => $id_observation];
         $observation = get_observation($this->db, $id_observation);
         $observation->ajoute_tag(CLICNAT_HIRONDELLE_TAG, $visite->id_visite_nid, "visite_espace_hirondelle.id_visite");
         $observation->add_observateur($_SESSION['id_utilisateur']);
         $ages = ["ad" => "AD", "juv" => "JUV", "juvmorts" => "JUV", "oeuf" => "P"];
         $especes = ["fenetre" => CLICNAT_HIRONDELLE_ID_ESPECE_FENETRE, "rustique" => CLICNAT_HIRONDELLE_ID_ESPECE_RUSTIQUE, "rivage" => CLICNAT_HIRONDELLE_ID_ESPECE_RIVIERE];
         foreach ($especes as $e_champ => $id_espece) {
             foreach ($ages as $a_champ => $age_clicnat) {
                 if (!empty($_POST["nb_{$a_champ}_{$e_champ}"]) or isset($_POST["nb_{$a_champ}_{$e_champ}_ind"]) and $_POST["nb_{$a_champ}_{$e_champ}_ind"] == 1) {
                     if (isset($_POST["nb_{$a_champ}_{$e_champ}_ind"]) && $_POST["nb_{$a_champ}_{$e_champ}_ind"] == 1) {
                         $nb = 0;
                     } else {
                         $nb = (int) $_POST["nb_{$a_champ}_{$e_champ}"];
                     }
                     $id_citation = $observation->add_citation($id_espece);
                     $retour['citations'][] = $id_citation;
                     $citation = get_citation($this->db, $id_citation);
                     $citation->set_age($age_clicnat);
                     if ($a_champ == "juvmorts") {
                         $citation->ajoute_tag(70);
                         // mort
                     }
                     if (!empty($_POST["commentaire_{$a_champ}_{$e_champ}"]) && $_POST["commentaire_{$a_champ}_{$e_champ}"] != "") {
                         bobs_element::cls($_POST["commentaire_{$a_champ}_{$e_champ}"]);
                         $citation->ajoute_commentaire("info", $_SESSION['id_utilisateur'], htmlentities($_POST["commentaire_{$a_champ}_{$e_champ}"], ENT_COMPAT, 'UTF-8'), true);
                     }
                     if ((int) $_POST["nbs_{$a_champ}_{$e_champ}"] > -1 && (int) $_POST["nbs_{$a_champ}_{$e_champ}"] != $nb) {
                         bobs_element::cli($_POST["nbs_{$a_champ}_{$e_champ}"]);
                         $eff_min = min($nb, $_POST["nbs_{$a_champ}_{$e_champ}"]);
                         $eff_max = max($nb, $_POST["nbs_{$a_champ}_{$e_champ}"]);
                         $citation->set_effectif_min_max($eff_min, $eff_max);
                     } else {
                         $citation->set_effectif($nb);
                     }
                     $citation->ajoute_tag(CLICNAT_HIRONDELLE_TAG, $visite->id_visite_nid, "visite_espace_hirondelle.id_visite");
                 }
             }
         }
         $observation->send();
         $retour['etat'] = 'ok';
     } catch (Exception $e) {
         $retour['etat'] = 'err';
         $retour['message'] = $e->getMessage();
     }
     echo json_encode($retour);
     exit(0);
 }
Ejemplo n.º 2
0
 public function before_editer_date()
 {
     $u = $this->get_user_session();
     $sortie = new clicnat_sortie($this->db, (int) $_GET['id_sortie']);
     $editable = false;
     if ($sortie->id_utilisateur_propose == $u->id_utilisateur) {
         $editable = true;
     }
     if (!$editable) {
         if ($this->is_admin($u->id_utilisateur)) {
             $editable = true;
         }
     }
     $this->assign('edit', $editable);
     if ($this->is_admin($u->id_utilisateur)) {
         $this->assign('admin', true);
     } else {
         $this->assign('admin', false);
     }
     if ($this->is_admin($u->id_utilisateur)) {
         if (isset($_POST['etat'])) {
             $date = $sortie->date_par_timestamp((int) $_GET['date']);
             $date->update_field('etat', (int) $_POST['etat']);
         }
     }
     if ($editable) {
         if (isset($_POST['inscription_date_limite'])) {
             $date = $sortie->date_par_timestamp((int) $_GET['date']);
             if (isset($_POST['inscription_date_limite'])) {
                 if (!empty($_POST['inscription_date_limite'])) {
                     $date->update_field('inscription_date_limite', bobs_element::date_fr2sql($_POST['inscription_date_limite']));
                 } else {
                     $date->update_field('inscription_date_limite', null);
                 }
             }
             $date->update_field('inscription_prealable', isset($_POST['inscription_prealable']) ? 'true' : 'false');
             $date->update_field('inscription_participants_max', (int) $_POST['inscription_participants_max']);
             $h = (int) $_POST['date_sortie_h'];
             $m = (int) $_POST['date_sortie_m'];
             $new_date = new DateTime();
             list($y, $mo, $d) = explode("-", $date->date_sortie);
             $new_date->setDate($y, $mo, $d);
             $new_date->setTime($h, $m);
             $date->update_field('date_sortie', $new_date->format("Y-m-d H:i:s"));
             $this->redirect("?t=editer_suiv&id_sortie={$sortie->id_sortie}");
         }
     }
     $sortie = new clicnat_sortie($this->db, (int) $_GET['id_sortie']);
     $date = $sortie->date_par_timestamp((int) $_GET['date']);
     $this->assign_by_ref('sortie', $sortie);
     $this->assign_by_ref('date', $date);
 }