function pmb_init_hash_passwords() { global $dbh, $msg; //Encodage des mots de passe lecteurs $result = pmb_mysql_query("SELECT id_empr, empr_password, empr_login FROM empr where empr_password_is_encrypted=0", $dbh); if ($result) { $count = pmb_mysql_num_rows($result); if ($count) { while ($row = pmb_mysql_fetch_object($result)) { emprunteur::update_digest($row->empr_login, $row->empr_password); emprunteur::hash_password($row->empr_login, $row->empr_password); } pmb_indexation_display($msg["hash_empr_password_status"], $count . " " . $msg["hash_empr_password_status_end"]); } } }
function connector_out_check_credentials($username, $password, $source_id) { global $dbh; $source_id += 0; if (!$username) { //--Utilisateur anonyme //Verifions si le groupe anonyme a le droit d'utiliser la source $sql = "SELECT COUNT(1) FROM connectors_out_sources_esgroups WHERE connectors_out_source_esgroup_sourcenum = " . $source_id . ' AND connectors_out_source_esgroup_esgroupnum = -1'; $count = pmb_mysql_result(pmb_mysql_query($sql, $dbh), 0, 0); $allowed = $count > 0; if ($allowed) { $sql = 'SELECT esgroup_pmbusernum FROM es_esgroups WHERE esgroup_id = -1'; $res = pmb_mysql_query($sql, $dbh); if (!pmb_mysql_num_rows($res)) { return 1; } else { return pmb_mysql_result($res, 0, 0); } } return false; } else { if (strpos($username, "@") !== false) { //--Lecteur $login_info = explode("@", $username); if (count($login_info) != 2) { return false; } $empr_name = $login_info[0]; $es_group = $login_info[1]; if (!$empr_name || !$es_group) { return false; } //Cherchons le lecteur $empr_id = 0; $sql = "SELECT id_empr FROM empr WHERE empr_login = '******' AND empr_password = '******'"; $res = pmb_mysql_query($sql, $dbh); if (pmb_mysql_num_rows($res)) { $empr_id = pmb_mysql_result($res, 0, 0); } //Pas trouvé? Plouf! if (!$empr_id) { return false; } //Cherchons le groupe $sql = "SELECT esgroup_id FROM es_esgroups WHERE esgroup_name = '" . addslashes($es_group) . "'"; $res = pmb_mysql_query($sql, $dbh); //Pas trouvé? Plouf! if (!pmb_mysql_num_rows($res)) { return false; } $esgroup_id = pmb_mysql_result($res, 0, 0); $es_group = new es_esgroup($esgroup_id); //Vérifions que le lecteur est dans le groupe $sql = "SELECT SUM(EXISTS(SELECT 1 FROM empr_groupe WHERE empr_id = " . $empr_id . " AND groupe_id = esgroupuser_usernum)) > 0 AS in_group FROM es_esgroup_esusers WHERE esgroupuser_usertype = 2 AND esgroupuser_groupnum = " . $esgroup_id; $res = pmb_mysql_query($sql, $dbh); $empr_in_group = pmb_mysql_result($res, 0, 0); if (!$empr_in_group) { //Vil faquin, tu as cru pouvoir rentré en mentant sur ton groupe d'origine? Ca marche pas ici; plouf! return false; } //Verifions si le groupe a le droit d'utiliser la source $sql = "SELECT COUNT(1) FROM connectors_out_sources_esgroups WHERE connectors_out_source_esgroup_sourcenum = " . $source_id . ' AND connectors_out_source_esgroup_esgroupnum = ' . $esgroup_id; $count = pmb_mysql_result(pmb_mysql_query($sql, $dbh), 0, 0); $allowed = $count > 0; //Pas le droit? Plouf! if (!$allowed) { return false; } //Et voilà, tout est bon, ça passe return $es_group->esgroup_pmbuserid; } else { //--Utilisateur classique //Cherchons si cet utilisateur existe, et si oui, récupérons son groupe $esuser = es_esuser::create_from_credentials($username, $password); if (!$esuser) { return false; } $esgroup_id = $esuser->esuser_group; //Si l'utilisateur n'est pas dans un groupe, il ne peut pas avoir de droits, donc plouf if (!$esgroup_id) { return false; } //Verifions si le groupe a le droit d'utiliser la source $sql = "SELECT COUNT(1) FROM connectors_out_sources_esgroups WHERE connectors_out_source_esgroup_sourcenum = " . $source_id . ' AND connectors_out_source_esgroup_esgroupnum = ' . $esgroup_id; $count = pmb_mysql_result(pmb_mysql_query($sql, $dbh), 0, 0); $allowed = $count > 0; //Pas le droit? Plouf! if (!$allowed) { return false; } //Sinon on renvoi le pmbuserid associé au groupe $esgroup = new es_esgroup($esgroup_id); return $esgroup->esgroup_pmbuserid; } } return false; }
if (!$start) { $requete = "CREATE TABLE if not exists empr_passwords (\n\t\t\tid_empr INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,\n\t\t\tempr_password VARCHAR( 255 ) NOT NULL default '')"; pmb_mysql_query($requete, $dbh); $requete = "INSERT IGNORE INTO empr_passwords SELECT id_empr, empr_password FROM empr where empr_password_is_encrypted=0"; pmb_mysql_query($requete, $dbh); } // définition de l'état de la jauge $state = floor($start / ($count / $jauge_size)); // mise à jour de l'affichage de la jauge print "<table border='0' align='center' width='{$jauge_size}' cellpadding='0' border='0'><tr><td class='jauge'>"; print "<img src='../../images/jauge.png' width='{$state}' height='16'></td></tr></table>"; // calcul pourcentage avancement $percent = floor($start / $count * 100); // affichage du % d'avancement et de l'état print "<div align='center'>{$percent}%</div>"; while ($row = pmb_mysql_fetch_object($query)) { emprunteur::update_digest($row->empr_login, $row->empr_password); emprunteur::hash_password($row->empr_login, $row->empr_password); } pmb_mysql_free_result($query); $next = $start + $lot; print "\n\t<form class='form-{$current_module}' name='current_state' action='./clean.php' method='post'>\n\t\t<input type='hidden' name='v_state' value=\"" . urlencode($v_state) . "\">\n\t\t<input type='hidden' name='spec' value=\"{$spec}\">\n\t\t<input type='hidden' name='start' value=\"{$next}\">\n\t\t<input type='hidden' name='count' value=\"{$count}\">\n\t</form>\n\t<script type=\"text/javascript\">\n\t<!--\n\t\tdocument.forms['current_state'].submit();\n\t-->\n\t</script>"; } else { $spec = $spec - HASH_EMPR_PASSWORD; $v_state .= "<br /><img src=../../images/d.gif hspace=3>" . htmlentities($msg["hash_empr_password_status"], ENT_QUOTES, $charset); $v_state .= $count . " " . htmlentities($msg["hash_empr_password_status_end"], ENT_QUOTES, $charset); $opt = pmb_mysql_query('OPTIMIZE TABLE empr'); // mise à jour de l'affichage de la jauge print "\n\t<table border='0' align='center' width='{$table_size}' cellpadding='0'><tr><td class='jauge'>\n\t<img src='../../images/jauge.png' width='{$jauge_size}' height='16'></td></tr></table>\n\t<div align='center'>100%</div>"; print "\n\t<form class='form-{$current_module}' name='process_state' action='./clean.php' method='post'>\n\t\t<input type='hidden' name='v_state' value=\"" . urlencode($v_state) . "\">\n\t\t<input type='hidden' name='spec' value=\"{$spec}\">\n\t</form>\n\t<script type=\"text/javascript\">\n\t<!--\n\t\tdocument.forms['process_state'].submit();\n\t-->\n\t</script>"; }
<?php // +-------------------------------------------------+ // © 2002-2004 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net) // +-------------------------------------------------+ // $Id: valid_change_password.inc.php,v 1.14 2015-06-02 13:24:51 dgoron Exp $ if (stristr($_SERVER['REQUEST_URI'], ".inc.php")) { die("no access"); } require_once "{$class_path}/emprunteur.class.php"; if (!$allow_pwd) { die; } print "<h3>" . $msg["empr_modify_password"] . "</h3>\n"; // contrôle de l'ancien mot de passe ok if ($new_password == $confirm_new_password) { emprunteur::hash_password($empr_login, $new_password); // contrôle du nouveau mot de passe par double ok // donc tout baigne, on lance la màj print $msg["empr_password_changed"] . "<br /><br />"; } else { // contrôle du nouveau mot de passe par double non validé print $msg["empr_password_does_not_match"] . "<br /><br />"; }
function import_profs($separateur, $dbh, $type_import) { //La structure du fichier texte doit être la suivante : //nom, prénom (le cb est généré automatiquement) $prof = array("Numéro auto", "Nom", "Prénom"); $date_auj = date("Y-m-d", time()); $date_an_proch = date("Y-m-d", time() + 3600 * 24 * 30.42 * 12); //Upload du fichier if (!$_FILES['import_lec']['tmp_name']) { print "Cliquez sur Précédent et choisissez un fichier"; } elseif (!move_uploaded_file($_FILES['import_lec']['tmp_name'], "./temp/" . basename($_FILES['import_lec']['tmp_name']))) { print "Le fichier n'a pas pu être téléchargé. Voici plus d'informations :<br />"; print_r($_FILES) . "<p>"; } $fichier = @fopen("./temp/" . basename($_FILES['import_lec']['tmp_name']), "r"); if ($fichier) { if ($type_import == 'maj_complete') { //Vide la table empr_groupe pmb_mysql_query("DELETE FROM empr_groupe", $dbh); echo $type_import; //Supprime les profs qui n'ont pas de prêts en cours $req_select_verif_pret = "SELECT id_empr FROM empr left join pret on id_empr=pret_idempr WHERE pret_idempr is null and empr_cb NOT LIKE 'P%'"; $select_verif_pret = pmb_mysql_query($req_select_verif_pret, $dbh); while ($verif_pret = pmb_mysql_fetch_array($select_verif_pret)) { //pour tous les emprunteurs qui n'ont pas de pret en cours emprunteur::del_empr($verif_pret["id_empr"]); } } //Récupération dans la table 'empr' du 'empr_cb' maximum $req = pmb_mysql_query("SELECT MAX(empr_cb) AS cbmax FROM empr WHERE empr_categ=2 and empr_codestat=1", $dbh); $cb = pmb_mysql_result($req, 0, "cbmax"); if (!$cb) { $numeroP = "000"; } else { $numeroP = substr($cb, 1, 3); } while (!feof($fichier)) { $buffer = fgets($fichier, 4096); $buffer = pmb_mysql_escape_string($buffer); $tab = explode($separateur, $buffer); $buf_prenom = explode("\\", $tab[1]); $prenom = $buf_prenom[0]; // Traitement du prof $select = pmb_mysql_query("SELECT id_empr FROM empr WHERE empr_nom = '" . $tab[0] . "' AND empr_prenom = '" . $prenom . "'", $dbh); $nb_enreg = pmb_mysql_num_rows($select); if (!$tab[0] || $tab[0] == "") { print "<b> Professeur non pris en compte car \"Nom\" non renseigné : </b><br />"; for ($i = 1; $i < 3; $i++) { print $prof[$i] . " : " . $tab[$i - 1] . ", "; } print "<br />"; $nb_enreg = 2; } //Gestion du sexe switch ($tab[8][0]) { case M: $sexe = 1; break; case F: $sexe = 2; break; default: $sexe = 0; break; } //Génération du code-barre $numeroP = $numeroP + 1; if ($numeroP < 10) { $prof_cb = "P00" . $numeroP; } elseif ($numeroP < 100) { $prof_cb = "P0" . $numeroP; } elseif ($numeroP < 1000) { $prof_cb = "P" . $numeroP; } //Génération du login $login = cre_login($tab[0], $prenom, $dbh); //Pour l'instant login = mdp car lors de l'import des profs, aucune date de naissance n'est fournie switch ($nb_enreg) { case 0: //Ce prof n'est pas enregistré $req_insert = "INSERT INTO empr(empr_cb, empr_nom, empr_prenom, empr_adr1, empr_adr2, empr_cp, empr_ville, "; $req_insert .= "empr_mail, empr_tel1, empr_year, empr_categ, empr_codestat, empr_creation, empr_sexe, "; $req_insert .= "empr_login, empr_password, empr_date_adhesion, empr_date_expiration) "; $req_insert .= "VALUES ('{$prof_cb}','{$tab['0']}','{$prenom}', '{$tab['2']}', '{$tab['3']}', '{$tab['4']}', '{$tab['5']}', '{$tab['9']}', '{$tab['6']}', '{$tab['7']}', "; $req_insert .= "2, 1, '{$date_auj}', {$sexe}, '{$login}', replace(replace('" . $tab[7] . "','\n',''),'\r',''), '{$date_auj}', '{$date_an_proch}' )"; $insert = pmb_mysql_query($req_insert, $dbh); if (!$insert) { print "<b>Echec de la création du professeur suivant (Erreur : " . pmb_mysql_error() . ") : </b><br />"; for ($i = 1; $i < 3; $i++) { print $prof[$i] . " : " . $tab[$i - 1] . ", "; } print "<br />"; } else { emprunteur::update_digest($login, str_replace(array("\n", "\r"), "", $tab[7])); emprunteur::hash_password($login, str_replace(array("\n", "\r"), "", $tab[7])); $cpt_insert++; } $j++; break; case 1: //Ce prof est déja enregistré $req_update = "UPDATE empr SET empr_nom = '{$tab['0']}', empr_prenom = '{$tab['1']}', empr_adr1 = '{$tab['2']}', "; $req_update .= "empr_adr2 = '{$tab['3']}', empr_cp = '{$tab['4']}', empr_ville = '{$tab['5']}', empr_mail = '{$tab['9']}', "; $req_update .= "empr_tel1 = '{$tab['6']}', empr_year = '{$tab['7']}', empr_categ = '2', empr_codestat = '1', empr_modif = '{$date_auj}', empr_sexe = '{$sexe}', "; $req_update .= "empr_login = '******', empr_password= replace(replace('" . $tab[7] . "','\n',''),'\r',''), "; $req_update .= "empr_date_adhesion = '{$date_auj}', empr_date_expiration = '{$date_an_proch}' "; $req_update .= "WHERE empr_nom = '{$tb['0']}' AND empr_prenom = '{$prenom}'"; $update = pmb_mysql_query($req_update, $dbh); if (!$update) { print "<b>Echec de la modification du professeur suivant (Erreur : " . pmb_mysql_error() . ") : </b><br />"; for ($i = 1; $i < 3; $i++) { print $prof[$i] . " : " . $tab[$i - 1] . ", "; } print "<br />"; } else { emprunteur::update_digest($login, str_replace(array("\n", "\r"), "", $tab[7])); emprunteur::hash_password($login, str_replace(array("\n", "\r"), "", $tab[7])); $cpt_maj++; } $j++; break; case 2: break; default: print "<b>Echec pour le professeur suivant (Erreur : " . pmb_mysql_error() . ") : </b><br />"; for ($i = 0; $i < 3; $i++) { print $prof[$i] . " : " . $tab[$i] . ", "; } print "<br />"; break; } } //Affichage des insert et update print "<br />_____________________<br />"; if ($cpt_insert) { print $cpt_insert . " Professeurs créés. <br />"; } if ($cpt_maj) { print $cpt_maj . " Professeurs modifiés. <br />"; } fclose($fichier); } }
function check_emprunteur_adhesion_false($id_empr) { global $msg; global $pmb_pret_adhesion_depassee; $empr_temp = new emprunteur($id_empr, '', FALSE, 0); $empr_date_depassee = $empr_temp->adhesion_depassee(); //Si l'adhésion de l'emprunteur dépassée if (!($pmb_pret_adhesion_depassee == 0 && $empr_date_depassee)) { $this->error_message = ""; return 0; } $this->error_message = $msg['pret_impossible_adhesion']; return -1; }
function import_profs($separateur, $dbh, $type_import, $mdp_auto, $num_auto, $adr_mail) { //La structure du fichier texte doit être la suivante : //[numéro],nom, prénom, adr1, adr2, code postal, commune, tel, année de naissance, sexe, e-mail,[login,mdp] $prof = array("Numéro auto", "Nom", "Prénom"); $date_auj = date("Y-m-d", time()); $date_an_proch = date("Y-m-d", time() + 3600 * 24 * 30.42 * 12); //Upload du fichier if (!$_FILES['import_lec']['tmp_name']) { print "Cliquez sur Précédent et choisissez un fichier"; } elseif (!move_uploaded_file($_FILES['import_lec']['tmp_name'], "./temp/" . basename($_FILES['import_lec']['tmp_name']))) { print "Le fichier n'a pas pu être téléchargé. Voici plus d'informations :<br />"; print_r($_FILES) . "<p>"; } $fichier = @fopen("./temp/" . basename($_FILES['import_lec']['tmp_name']), "r"); if ($fichier) { if ($type_import == 'maj_complete') { //Vide la table empr_groupe //$delete_empr_groupe = pmb_mysql_query("DELETE FROM empr_groupe",$dbh); //echo $type_import; //Supprime les profs qui n'ont pas de prêts en cours $req_select_verif_pret = "SELECT id_empr, empr_cb FROM groupe, empr_groupe, empr left join pret on id_empr=pret_idempr WHERE pret_idempr is null and empr_groupe.empr_id = empr.id_empr and empr_groupe.groupe_id = id_groupe and libelle_groupe like 'Professeurs'"; $select_verif_pret = pmb_mysql_query($req_select_verif_pret, $dbh); while ($verif_pret = pmb_mysql_fetch_array($select_verif_pret)) { //pour tous les emprunteurs qui n'ont pas de pret en cours emprunteur::del_empr($verif_pret["id_empr"]); } } //Récupération dans la table 'empr' du 'empr_cb' maximum $req = pmb_mysql_query("SELECT MAX(empr_cb) AS cbmax FROM empr WHERE empr_categ=2 and empr_codestat=1", $dbh); $cb = pmb_mysql_result($req, 0, "cbmax"); if (!$cb) { $numeroP = "0000"; } else { $numeroP = substr($cb, 1, 4); } while (!feof($fichier)) { $buffer = fgets($fichier, 4096); $buffer = pmb_mysql_escape_string($buffer); $tab = explode($separateur, $buffer); if ($num_auto != 'num_auto') { $buf_prenom = explode("\\", $tab[1]); $prenom = $buf_prenom[0]; } else { $buf_prenom = explode("\\", $tab[2]); $prenom = $buf_prenom[1]; } // Traitement du prof $select = pmb_mysql_query("SELECT id_empr, empr_cb FROM empr WHERE empr_nom = '" . $tab[0] . "' AND empr_prenom = '" . $prenom . "'", $dbh); $nb_enreg = pmb_mysql_num_rows($select); if (!$tab[0] || $tab[0] == "") { if ($tab[1] != "") { print "<b> Professeur non pris en compte car \"Nom\" non renseigné : </b><br />"; for ($i = 1; $i < 3; $i++) { print $prof[$i] . " : " . $tab[$i - 1] . ", "; } print "<br />"; } $nb_enreg = 2; } if ($num_auto == 'num_auto') { // Si il y a un numéro en debut de fichier, // on decale les indices du tab à la baisse : $prof_cb = $tab[0]; $tab[0] = $tab[1]; $tab[1] = $tab[2]; $tab[2] = $tab[3]; $tab[3] = $tab[4]; $tab[4] = $tab[5]; $tab[5] = $tab[6]; $tab[6] = $tab[7]; $tab[7] = $tab[8]; $tab[8] = $tab[9]; if ($adr_mail == 'adr_mail') { $tab[9] = $tab[10]; $tab[10] = $tab[11]; $tab[11] = $tab[12]; } else { $tab[9] = ""; } } else { //Génération du code-barre $numeroP = $numeroP + 1; if ($numeroP < 10) { $prof_cb = "P000" . $numeroP; } elseif ($numeroP < 100) { $prof_cb = "P00" . $numeroP; } elseif ($numeroP < 1000) { $prof_cb = "P0" . $numeroP; } elseif ($numeroP < 10000) { $prof_cb = "P" . $numeroP; } } // On verifie que le mail est bien de la forme chaine@chaine : if ($adr_mail == 'adr_mail') { if (preg_match("#.*@.*#", $tab[9]) == false) { $tab[9] = ""; } } //Gestion du sexe switch ($tab[8][0]) { case M: $sexe = 1; break; case F: $sexe = 2; break; default: $sexe = 0; break; } //Génération du login if ($mdp_auto != 'mdp_auto') { $login = cre_login($tab[0], $prenom, $dbh); $mdp = $tab[7]; } else { $login = $tab[10]; $mdp = $tab[11]; } if (!$mdp || $mdp == "") { $mdp = $login; } switch ($nb_enreg) { case 0: //Ce prof n'est pas enregistré $req_insert = "INSERT INTO empr(empr_cb, empr_nom, empr_prenom, empr_adr1, empr_adr2, empr_cp, empr_ville, "; $req_insert .= "empr_mail, empr_tel1, empr_year, empr_categ, empr_codestat, empr_creation, empr_sexe, "; $req_insert .= "empr_login, empr_password, empr_date_adhesion, empr_date_expiration) "; $req_insert .= "VALUES ('{$prof_cb}','{$tab['0']}','{$tab['1']}', '{$tab['2']}', '{$tab['3']}', '{$tab['4']}', '{$tab['5']}', '{$tab['9']}', '{$tab['6']}', '{$tab['7']}', "; $req_insert .= "2, 1, '{$date_auj}', {$sexe}, '{$login}', replace(replace('" . $mdp . "','\n',''),'\r',''), '{$date_auj}', '{$date_an_proch}' )"; $insert = pmb_mysql_query($req_insert, $dbh); if (!$insert) { print "<b>Échec de la création du professeur suivant (Erreur : " . pmb_mysql_error() . ") : </b><br />"; for ($i = 1; $i < 3; $i++) { print $prof[$i] . " : " . $tab[$i - 1] . ", "; } print "<br />"; } else { emprunteur::update_digest($login, str_replace(array("\n", "\r"), "", $mdp)); emprunteur::hash_password($login, str_replace(array("\n", "\r"), "", $mdp)); $cpt_insert++; } $j++; gestion_groupe("Professeurs", $prof_cb, $dbh); break; case 1: //Ce prof est déja enregistré $empr_cbs = pmb_mysql_fetch_array($select); $prof_cb = $empr_cbs['empr_cb']; $req_update = "UPDATE empr SET empr_nom = '{$tab['0']}', empr_prenom = '{$tab['1']}', empr_adr1 = '{$tab['2']}', "; $req_update .= "empr_adr2 = '{$tab['3']}', empr_cp = '{$tab['4']}', empr_ville = '{$tab['5']}', empr_mail = '{$tab['9']}', "; $req_update .= "empr_tel1 = '{$tab['6']}', empr_year = '{$tab['7']}', empr_categ = '2', empr_codestat = '1', empr_modif = '{$date_auj}', empr_sexe = '{$sexe}', "; $req_update .= "empr_login = '******', empr_password=replace(replace('" . $mdp . "','\n',''),'\r',''), "; $req_update .= "empr_date_adhesion = '{$date_auj}', empr_date_expiration = '{$date_an_proch}' "; $req_update .= "WHERE empr_nom = '{$tb['0']}' AND empr_prenom = '{$prenom}'"; $update = pmb_mysql_query($req_update, $dbh); if (!$update) { print "<b>Échec de la modification du professeur suivant (Erreur : " . pmb_mysql_error() . ") : </b><br />"; for ($i = 1; $i < 3; $i++) { print $prof[$i] . " : " . $tab[$i - 1] . ", "; } print "<br />"; } else { emprunteur::update_digest($login, str_replace(array("\n", "\r"), "", $mdp)); emprunteur::hash_password($login, str_replace(array("\n", "\r"), "", $mdp)); $cpt_maj++; } $j++; break; case 2: break; default: print "<b>Échec pour le professeur suivant (Erreur : " . pmb_mysql_error() . ") : </b><br />"; for ($i = 0; $i < 3; $i++) { print $prof[$i] . " : " . $tab[$i] . ", "; } print "<br />"; break; } //gestion_groupe("Professeurs", $prof_cb, $dbh); } //Affichage des insert et update print "<br />_____________________<br />"; if ($cpt_insert) { print $cpt_insert . " Professeurs créés. <br />"; } if ($cpt_maj) { print $cpt_maj . " Professeurs modifiés. <br />"; } fclose($fichier); } }
function import_eleves_ensai($separateur, $dbh, $type_import) { global $idchamp, $id_grp, $empr_location_lib, $id_categ_empr, $idemprcaddie; if (!isset($id_grp)) { $id_grp = array(); } //La structure du fichier texte doit être la suivante : //empr_nom empr_prenom empr_mail categ Groupe1 Groupe2 statut_libelle location_libelle Pays empr_date_adhesion //empr_date_expiration Numéro Identifiant OPAC $eleve_abrege = array("Numéro identifiant", "Nom", "Prénom"); $date_auj = date("Y-m-d", time()); $date_an_proch = date("Y-m-d", time() + 3600 * 24 * 30.42 * 12); $empr_codestat_local = gestion_empr_idcode_codestat(8, $dbh); $empr_codestat_etranger = gestion_empr_idcode_codestat(9, $dbh); //Upload du fichier if (!$_FILES['import_lec']['tmp_name']) { print "Cliquez sur Précédent et choisissez un fichier"; } elseif (!move_uploaded_file($_FILES['import_lec']['tmp_name'], "./temp/" . basename($_FILES['import_lec']['tmp_name']))) { print "Le fichier n'a pas pu être téléchargé. Voici plus d'informations :<br />"; print_r($_FILES) . "<p>"; } $fichier = @fopen("./temp/" . basename($_FILES['import_lec']['tmp_name']), "r"); if ($fichier) { $totallignes = 0; while (!feof($fichier)) { $buffer = fgets($fichier, 4096); $tab = explode($separateur, $buffer); $cb = trim(str_replace(" ", "", $tab[13])); if ($cb != "Numéro" && $cb != "") { // ce n'est pas la première ligne d'entête de colonne $nom = trim($tab[0]); $prenom = trim($tab[1]); $emails = trim($tab[2]); $mail_perso = $tab[3]; if (trim($mail_perso)) { //Si valorisé, alors on concatène. if (trim($emails)) { $emails .= ";" . trim($mail_perso); } else { $emails = trim($mail_perso); } } $categ = trim($tab[4]); $groupe1 = trim($tab[5]); $groupe2 = trim($tab[6]); $groupe3 = trim($tab[7]); $statut_libelle = trim($tab[8]); $location_libelle = trim($tab[9]); $pays = trim($tab[10]); $empr_date_adhesion = trim($tab[11]); $empr_date_expiration = trim($tab[12]); // cb en 13 $identifiant_opac = trim($tab[14]); $tel1 = trim($tab[15]); $tel2 = trim($tab[16]); $liste_date = explode('/', $empr_date_adhesion); if ($liste_date[2] < 100) { $liste_date[2] += 2000; } $date_adhesion = $liste_date[2] . "-" . $liste_date[1] . "-" . $liste_date[0]; $liste_date = explode('/', $empr_date_expiration); if ($liste_date[2] < 100) { $liste_date[2] += 2000; } $date_fin_adhesion = $liste_date[2] . "-" . $liste_date[1] . "-" . $liste_date[0]; if ($pays) { $empr_codestat = $empr_codestat_etranger; } else { $empr_codestat = $empr_codestat_local; } // recherche de id catégorie $id_categ_empr = gestion_empr_categ($categ, $dbh); // recherche des groupes $id_groupe1 = quel_groupe($groupe1); $id_groupe2 = quel_groupe($groupe2); $id_groupe3 = quel_groupe($groupe3); // recherche de id statut $id_statut_empr = gestion_empr_statut($statut_libelle, $dbh); if (!$id_statut_empr) { $id_statut_empr = "4"; } // Traitement de l'élève $rqt = "select * from empr where empr_cb='" . addslashes($cb) . "' "; $nb = pmb_mysql_query($rqt, $dbh); $nb_enreg = pmb_mysql_num_rows($nb); switch ($nb_enreg) { case 0: //Cet élève n'est pas enregistré if (!$identifiant_opac) { $login = cre_login($nom, $prenom, $dbh); } else { $login = $identifiant_opac; } $req_insert = "insert into empr SET empr_nom='" . addslashes($nom) . "', empr_prenom='" . addslashes($prenom) . "', empr_cb='" . addslashes($cb) . "', empr_pays='" . addslashes($pays) . "', "; $req_insert .= "empr_tel1='" . addslashes($tel1) . "', empr_tel2='" . addslashes($tel2) . "', empr_categ ={$id_categ_empr}, empr_codestat={$empr_codestat}, "; $req_insert .= "empr_login='******', empr_password='******', empr_mail='" . addslashes($emails) . "', "; $req_insert .= "empr_prof='', empr_lang='fr_FR', empr_statut='" . $id_statut_empr . "', "; //4=Inactif $req_insert .= "empr_location='17', "; //17=ENSAI $req_insert .= "empr_creation='{$date_auj}', empr_modif='{$date_auj}', empr_date_adhesion = '{$date_adhesion}', empr_date_expiration = '{$date_fin_adhesion}' "; $insert = pmb_mysql_query($req_insert, $dbh) or die("<br />" . pmb_mysql_error() . "<br />" . $req_insert); if (!$insert) { print "<b>Echec de la création de l'élève suivant (Erreur : " . pmb_mysql_error() . ") : </b><br />"; print "<br />"; } else { $id_cree = pmb_mysql_insert_id(); emprunteur::update_digest($login, $login); emprunteur::hash_password($login, $login); gestion_groupe_add($id_groupe1, $id_cree, $dbh); gestion_groupe_add($id_groupe2, $id_cree, $dbh); gestion_groupe_add($id_groupe3, $id_cree, $dbh); $cpt_insert++; } $j++; break; default: print "<ul><li><font color=red><b>Echec pour l'élève suivant déjà présent: </b></font></li>\n\t\t\t\t\t\t\t\t<li><font color=red>{$nom}</font></li>\n\t\t\t\t\t\t\t\t<li><font color=red>{$prenom}</font></li>\n\t\t\t\t\t\t\t\t<li><font color=red>{$cb}</font></li>\n\t\t\t\t\t\t\t\t</ul>"; print "<br />"; break; } $totallignes++; } // fin if pas première ligne ni vide } // while //Affichage des insert et update if ($cpt_insert) { print $cpt_insert . " élèves créés. <br />"; } print "<br />_____________________<br />"; print $totallignes . " lignes ont été traitées dans ce fichier.<br />"; fclose($fichier); } }
function list_loans($session_id, $loan_type) { global $dbh, $msg; if (!$session_id) { return array(); } $session_info = $this->retrieve_session_information($session_id); $empr_id = $session_info["empr_id"]; if (!$empr_id) { return array(); } $empr = new emprunteur($empr_id); switch ($loan_type) { case LIST_LOAN_LATE: case LIST_LOAN_CURRENT: $empr->fetch_info_suite(); $results = array(); foreach ($empr->prets as $apret) { if ($loan_type == LIST_LOAN_LATE && !$apret["pret_retard"]) { continue; } $expl_object = new exemplaire($apret["cb"]); $aresult = array("empr_id" => $empr_id, "notice_id" => $expl_object->id_notice, "bulletin_id" => $expl_object->id_bulletin, "expl_id" => $apret["id"], "expl_cb" => utf8_normalize($apret["cb"]), "expl_support" => utf8_normalize($apret["typdoc"]), "expl_location_id" => $expl_object->location_id, "expl_location_caption" => utf8_normalize($apret["location"]), "expl_section_id" => $expl_object->section_id, "expl_section_caption" => utf8_normalize($apret["section"]), "expl_libelle" => utf8_normalize(strip_tags($apret["libelle"])), "loan_startdate" => $apret["date_pret"], "loan_returndate" => $apret["date_retour"]); $results[] = $aresult; } break; case LIST_LOAN_PRECEDENT: $sql = "SELECT arc_expl_notice, arc_expl_bulletin, arc_expl_id, tdoc_libelle,"; $sql .= "group_concat(distinct date_format(arc_debut, '" . $msg["format_date"] . "') separator '<br />') as aff_pret_debut, "; $sql .= "group_concat(distinct date_format(arc_fin, '" . $msg["format_date"] . "') separator '<br />') as aff_pret_fin, "; $sql .= "trim(concat(ifnull(notices_m.tit1,''),ifnull(notices_s.tit1,''),' ',ifnull(bulletin_numero,''), if(mention_date, concat(' (',mention_date,')') ,if (date_date, concat(' (',date_format(date_date, '" . $msg["format_date"] . "'),')') ,'')))) as tit, if(notices_m.notice_id, notices_m.notice_id, notices_s.notice_id) as not_id "; $sql .= "FROM (((pret_archive LEFT JOIN notices AS notices_m ON arc_expl_notice = notices_m.notice_id ) "; $sql .= " LEFT JOIN bulletins ON arc_expl_bulletin = bulletins.bulletin_id) "; $sql .= " LEFT JOIN notices AS notices_s ON bulletin_notice = notices_s.notice_id) "; $sql .= " LEFT JOIN docs_type ON docs_type.idtyp_doc = pret_archive.arc_expl_typdoc, "; $sql .= " empr "; $sql .= "WHERE empr.id_empr = arc_id_empr and arc_id_empr='{$empr_id}' "; $sql .= "group by arc_expl_notice, arc_expl_bulletin, tit, not_id "; $sql .= "order by arc_debut desc"; $res = mysql_query($sql, $dbh); while ($row = mysql_fetch_assoc($res)) { $expl_object = new exemplaire('', $row["arc_expl_id"]); $expl_libelle = ""; if ($expl_object->id_bulletin) { $bulletin_display = new bulletinage_display($expl_object->id_bulletin); $expl_libelle = $bulletin_display->header; } else { $notice_display = new mono_display($expl_object->id_notice, 0); $expl_libelle = $notice_display->header; } $aresult = array("empr_id" => $empr_id, "notice_id" => $expl_object->id_notice, "bulletin_id" => $expl_object->id_bulletin, "expl_id" => $row["arc_expl_id"], "expl_cb" => utf8_normalize($expl_object->cb), "expl_support" => utf8_normalize($row["tdoc_libelle"]), "expl_location_id" => $expl_object->location_id, "expl_location_caption" => utf8_normalize($expl_object->location), "expl_section_id" => $expl_object->section_id, "expl_section_caption" => utf8_normalize($expl_object->section), "expl_libelle" => utf8_normalize($expl_libelle), "loan_startdate" => $row["aff_pret_debut"], "loan_returndate" => $row["aff_pret_fin"]); $results[] = $aresult; } break; } return $results; }
function import($data) { //champs de data : nom, prenom, cb, adr1, adr2,cp, ville, pays, mail, tel1, sms, tel2, year, sexe, login, password, date_adhesion, date_fin_blocage, date_expiration, date_creation //date_modif, prof, total_loans,last_loan_date, lang, msg, type_abt, //Pour la localisation : location, location_libelle, location_libelle_create, locdoc_owner //Pour la categorie : categ, categ_libelle, categ_libelle_create; //Pour le codestat: codestat, codestat_libelle, codestat_libelle_create; //Pour le statut: statut, statut_libelle, statut_libelle_create; global $dbh, $lang; // check sur le type de la variable passée en paramètre if (!sizeof($data) || !is_array($data)) { // si ce n'est pas un tableau ou un tableau vide, on retourne 0 return 0; } //Check si le lecteur a au moin un nom ou un prenom if (!$data['nom']) { return 0; } //Check si le code barre n'est pas déja utilisé $this->cb = addslashes($data['cb']); $query = "SELECT id_empr FROM empr WHERE empr_cb='" . $this->cb . "' LIMIT 1 "; $result = @pmb_mysql_query($query, $dbh); if (!$result) { die("can't SELECT in database"); } //On prepare les paramètres $this->empr_location = 0; if (!$data['location'] and !$data['location_libelle'] and $data['location_libelle_create'] != '') { //Dans la cas ou l'on veut creer la location $data2 = array(); $data2['location_libelle'] = $data['location_libelle_create']; $data2['locdoc_codage_import'] = $data['location_libelle_create']; $data2['locdoc_owner'] = $data['locdoc_owner']; $this->empr_location = docs_location::import($data2); } elseif ($data['location_libelle'] != '') { $q = "select idlocation from docs_location where location_libelle='" . addslashes($data['location_libelle']) . "' limit 1"; $r = pmb_mysql_query($q, $dbh); if (pmb_mysql_num_rows($r)) { $this->empr_location = pmb_mysql_result($r, 0, 0); } } else { $q = "select idlocation from docs_location where idlocation='" . addslashes($data['location']) . "' limit 1"; $r = pmb_mysql_query($q, $dbh); if (pmb_mysql_num_rows($r)) { $this->empr_location = pmb_mysql_result($r, 0, 0); } } if (!$this->empr_location) { return 0; } $this->categ = 0; if (!$data['categ'] and !$data['categ_libelle'] and $data['categ_libelle_create'] != '') { //Dans la cas ou l'on veut creer la location $q = "select id_categ_empr from empr_categ where libelle='" . addslashes($data['categ_libelle_create']) . "' limit 1"; $r = pmb_mysql_query($q, $dbh); if (pmb_mysql_num_rows($r)) { $this->categ = pmb_mysql_result($r, 0, 0); } else { $q = "insert into empr_categ (libelle) values ('" . addslashes($data['categ_libelle_create']) . "') "; $r = pmb_mysql_query($q, $dbh); $this->categ = pmb_mysql_insert_id($dbh); } } elseif ($data['categ_libelle'] != '') { $q = "select id_categ_empr from empr_categ where libelle='" . addslashes($data['categ_libelle']) . "' limit 1"; $r = pmb_mysql_query($q, $dbh); if (pmb_mysql_num_rows($r)) { $this->categ = pmb_mysql_result($r, 0, 0); } } else { $q = "select id_categ_empr from empr_categ where id_categ_empr='" . addslashes($data['categ']) . "' limit 1"; $r = pmb_mysql_query($q, $dbh); if (pmb_mysql_num_rows($r)) { $this->categ = pmb_mysql_result($r, 0, 0); } } if (!$this->categ) { return 0; } $this->cstat = 0; if (!$data['codestat'] and !$data['codestat_libelle'] and $data['codestat_libelle_create'] != '') { //Dans la cas ou l'on veut creer la location $q = "select idcode from empr_codestat where libelle='" . addslashes($data['codestat_libelle_create']) . "' limit 1"; $r = pmb_mysql_query($q, $dbh); if (pmb_mysql_num_rows($r)) { $this->cstat = pmb_mysql_result($r, 0, 0); } else { $q = "insert into empr_codestat (libelle) values ('" . addslashes($data['codestat_libelle_create']) . "') "; $r = pmb_mysql_query($q, $dbh); $this->cstat = pmb_mysql_insert_id($dbh); } } elseif ($data['codestat_libelle'] != '') { $q = "select idcode from empr_codestat where libelle='" . addslashes($data['codestat_libelle']) . "' limit 1"; $r = pmb_mysql_query($q, $dbh); if (pmb_mysql_num_rows($r)) { $this->cstat = pmb_mysql_result($r, 0, 0); } } else { $q = "select idcode from empr_codestat where idcode='" . addslashes($data['codestat']) . "' limit 1"; $r = pmb_mysql_query($q, $dbh); if (pmb_mysql_num_rows($r)) { $this->cstat = pmb_mysql_result($r, 0, 0); } } if (!$this->cstat) { return 0; } $this->empr_statut = 0; if (!$data['statut'] and !$data['statut_libelle'] and $data['statut_libelle_create'] != '') { //Dans la cas ou l'on veut creer la location $q = "select idstatut from empr_statut where statut_libelle='" . addslashes($data['statut_libelle_create']) . "' limit 1"; $r = pmb_mysql_query($q, $dbh); if (pmb_mysql_num_rows($r)) { $this->empr_statut = pmb_mysql_result($r, 0, 0); } else { $q = "insert into empr_statut (statut_libelle) values ('" . addslashes($data['statut_libelle_create']) . "') "; $r = pmb_mysql_query($q, $dbh); $this->empr_statut = pmb_mysql_insert_id($dbh); } } elseif ($data['statut_libelle'] != '') { $q = "select idstatut from empr_statut where statut_libelle='" . addslashes($data['statut_libelle']) . "' limit 1"; $r = pmb_mysql_query($q, $dbh); if (pmb_mysql_num_rows($r)) { $this->empr_statut = pmb_mysql_result($r, 0, 0); } } else { $q = "select idstatut from empr_statut where idstatut='" . addslashes($data['statut']) . "' limit 1"; $r = pmb_mysql_query($q, $dbh); if (pmb_mysql_num_rows($r)) { $this->empr_statut = pmb_mysql_result($r, 0, 0); } } if (!$this->empr_statut) { return 0; } $this->nom = addslashes($data['nom']); $this->prenom = addslashes($data['prenom']); $this->adr1 = addslashes($data['adr1']); $this->adr2 = addslashes($data['adr2']); $this->cp = addslashes($data['cp']); $this->ville = addslashes($data['ville']); $this->pays = addslashes($data['pays']); $this->mail = addslashes($data['mail']); $this->tel1 = addslashes($data['tel1']); $this->sms = addslashes($data['sms']); $this->tel2 = addslashes($data['tel2']); if ($data['sexe'] === 0 or $data['sexe'] == 1 or $data['sexe'] == 2) { $this->sexe = $data['sexe']; } else { $this->sexe = 0; } $this->birth = addslashes($data['year']); $this->date_adhesion = addslashes($data['date_adhesion']); $this->date_blocage = addslashes($data['date_fin_blocage']); $this->date_expiration = addslashes($data['date_expiration']); if (!$data['date_creation']) { $this->cdate = today(); } else { $this->cdate = addslashes($data['date_creation']); } if (!$data['date_modif']) { $this->mdate = today(); } else { $this->mdate = addslashes($data['date_modif']); } $this->pwd = addslashes($data['password']); $this->prof = addslashes($data['prof']); $this->total_loans = addslashes($data['total_loans']); $this->last_loan_date = addslashes($data['last_loan_date']); if (!$data['lang']) { $this->empr_lang = $lang; } else { $this->empr_lang = addslashes($data['lang']); } $this->empr_msg = addslashes($data['msg']); $this->type_abt = addslashes($data['type_abt']); $this->login = addslashes($data['login']); $q = "insert into empr (empr_cb, empr_nom, empr_prenom, empr_adr1, empr_cp, empr_ville, empr_pays, "; $q .= "empr_mail, empr_tel1, empr_sms, empr_categ, empr_codestat, empr_sexe, empr_login, empr_date_adhesion, "; $q .= "empr_date_expiration, empr_lang, empr_location,empr_msg,empr_year,empr_creation,empr_adr2,empr_tel2, empr_modif,empr_password,empr_prof,type_abt,empr_statut,total_loans,last_loan_date,date_fin_blocage) "; $q .= "values ('" . $this->cb . "', '" . $this->nom . "', '" . $this->prenom . "', '" . $this->adr1 . "', '" . $this->cp . "', '" . $this->ville . "', '" . $this->pays . "', "; $q .= "'" . $this->mail . "', '" . $this->tel1 . "', '" . $this->sms . "', '" . $this->categ . "', '" . $this->cstat . "', '" . $this->sexe . "', '" . $this->login . "', '" . $this->date_adhesion . "', "; $q .= "'" . $this->date_expiration . "', '" . $this->empr_lang . "', '" . $this->empr_location . "', '" . $this->empr_msg . "', '" . $this->birth . "', '" . $this->cdate . "', '" . $this->adr2 . "', '" . $this->tel2 . "', '" . $this->mdate . "', '" . $this->pwd . "', '" . $this->prof . "','" . $this->type_abt . "','" . $this->empr_statut . "','" . $this->total_loans . "', '" . $this->last_loan_date . "', '" . $this->date_blocage . "') "; $r = pmb_mysql_query($q, $dbh); $id_empr = pmb_mysql_insert_id($dbh); emprunteur::update_digest($this->login, $this->pwd); emprunteur::hash_password($this->login, $this->pwd); return $id_empr; }
function import_empr($dbh) { global $lect_cree, $lect_erreur, $lect_modif, $lect_non_traite; $lect_tot = 0; $lect_supprime = 0; $lect_cree = 0; $lect_erreur = 0; $lect_modif = 0; $lect_interdit = 0; $lect_non_traite = 0; //La structure du fichier texte doit être la suivante avec ceci comme première ligne: //MATRICULE;NOM_USAGE;PRENOM_USAGE;DAT_DER_ENTREE;DAT_SORTIE;COD_UF;LIB_UF;POSTE;SEXE;TELEPHONE;USER_NAME;BADGE;MAIL //Upload du fichier if (!$_FILES['import_lec']['tmp_name']) { print "Cliquez sur Précédent et choisissez un fichier"; } elseif (!move_uploaded_file($_FILES['import_lec']['tmp_name'], "./temp/" . basename($_FILES['import_lec']['tmp_name']))) { print "Le fichier n'a pas pu être téléchargé. Voici plus d'informations :<br />"; print_r($_FILES) . "<p>"; } $fichier = @fopen("./temp/" . basename($_FILES['import_lec']['tmp_name']), "r"); if ($fichier) { //on change la date de mise a jour pour retrouver les lecteurs $requete = "select id_empr from empr where empr_modif='" . addslashes(date('Y-m-j')) . "'"; $select = pmb_mysql_query($requete, $dbh); while ($verif = pmb_mysql_fetch_array($select)) { $requete = "update empr set empr_modif=DATE_SUB(empr_modif, INTERVAL 1 DAY) where id_empr='" . addslashes($verif["id_empr"]) . "' "; if (!pmb_mysql_query($requete, $dbh)) { echo "Erreur : requete echoué : " . $requete . "<br />"; } } while (!feof($fichier)) { $buffer = fgets($fichier, 4096); //$buffer = pmb_mysql_escape_string($buffer); $tab = explode(";", $buffer); $nb = 0; $incr = 0; $empr = array(); $valeur = false; for ($i = 0; $i < count($tab); $i++) { $nb = $nb + substr_count($tab[$i], "\""); if ($nb % 2 === 0) { if ($valeur === false) { $valeur = $tab[$i]; } else { $valeur = $valeur . ";" . $tab[$i]; } //$notices[$i][$incr]=trim(trim($valeur,"\"")); $empr[$incr] = preg_replace("/^\"|\"\$|\"\r\n\$/", "", $valeur); $valeur = false; $incr++; $nb = 0; } else { if ($valeur === false) { $valeur = $tab[$i]; } else { $valeur = $valeur . ";" . $tab[$i]; } } } if (count($empr) == 1 or $empr[0] == "MATRICULE") { //Passe ici pour l'entête et les ligne vide (la dernière) } elseif (count($empr) != 14) { $lect_tot++; $lect_erreur++; print "<b>Erreur : Personne non prise en compte car le nombre de champ n'est pas valide : </b><br />"; echo "<pre>"; print_r($empr); echo "</pre>"; } elseif (trim($empr[1]) == "" or trim($empr[12]) === "") { $lect_tot++; $lect_erreur++; print "<b>Erreur : Personne non prise en compte car elle n'a pas de nom : </b><br />"; echo "<pre>"; print_r($empr); echo "</pre>"; } else { //Tout les lecteurs à traiter $lect_tot++; import_lect_par_lect($empr, $dbh); } } //On supprime tout les lecteurs qui ne sont pas dans le fichier et qui n'ont pas de prets en cours $req_select_verif_pret = "SELECT distinct id_empr, pret_idempr FROM empr left join pret on id_empr=pret_idempr WHERE empr_modif != '" . addslashes(date('Y-m-j')) . "' "; $select_verif_pret = pmb_mysql_query($req_select_verif_pret, $dbh); while ($verif_pret = pmb_mysql_fetch_array($select_verif_pret)) { //pour tous les emprunteurs qui n'ont pas de pret en cours if ($verif_pret["pret_idempr"]) { $requete = "update empr set empr_statut='2' where id_empr='" . addslashes($verif_pret["id_empr"]) . "' "; if (!pmb_mysql_query($requete, $dbh)) { $lect_erreur++; echo " requete echoué : " . $requete . "<br />"; } else { $lect_interdit++; } } else { emprunteur::del_empr($verif_pret["id_empr"]); $lect_supprime++; } } print "<br />_____________________<br />"; if ($lect_erreur) { echo "<b> Attention " . $lect_erreur . " lecteur(s) n'a(ont) pas été traité(s) : voir erreur(s) ci-dessus </b><br />"; } echo "Nombre de lecteurs créés : " . $lect_cree . "<br />"; echo "Nombre de lecteurs non traité (en double ou déjà traité) : " . $lect_non_traite . "<br />"; echo "Nombre de lecteurs ou la date d'expiration à été repoussée : " . $lect_modif . "<br />"; echo "Nombre total de lecteurs dans le fichier : " . $lect_tot . "<br />"; echo "Nombre d'anciens lecteurs (non présent dans le fichier) supprimés : " . $lect_supprime . "<br />"; echo "Nombre d'anciens lecteurs (non présent dans le fichier) avec un statut interdit (non supprimé car ils ont au moins un prêt en cours) : " . $lect_interdit . "<br />"; fclose($fichier); } }
function import_eleves($separateur, $dbh, $type_import, $commune) { global $code_categorie; global $code_statistique; $code_categorie = 12; $code_statistique = 3; $eleve_abrege = array("Numéro identifiant", "Nom", "Prénom"); $date_auj = date("Y-m-d", time()); $date_an_proch = date("Y-m-d", time() + 3600 * 24 * 30.42 * 12); //Upload du fichier if (!$_FILES['import_lec']['tmp_name']) { print "Cliquez sur Précédent et choisissez un fichier"; } elseif (!move_uploaded_file($_FILES['import_lec']['tmp_name'], "./temp/" . basename($_FILES['import_lec']['tmp_name']))) { print "Le fichier n'a pas pu être téléchargé. Voici plus d'informations :<br />"; print_r($_FILES) . "<p>"; } $fichier = @fopen("./temp/" . basename($_FILES['import_lec']['tmp_name']), "r"); if ($fichier) { if ($type_import == 'maj_complete') { //Vide la table empr_groupe des élèves qui n'ont pas de prêts en cours et qui sont localisé à la commune sélectionnée et de categorie collectivité eleves $req_select_verif_pret = "SELECT id_empr FROM empr left join pret on id_empr=pret_idempr WHERE pret_idempr is null and empr_location= '{$commune}' and empr_categ = '{$code_categorie}' "; $select_verif_pret = mysql_query($req_select_verif_pret, $dbh); while ($verif_pret = mysql_fetch_array($select_verif_pret)) { //pour tous les emprunteurs qui n'ont pas de pret en cours $req_delete = "DELETE FROM empr_groupe WHERE empr_id = '" . $verif_pret["id_empr"] . "'"; mysql_query($req_delete); } //$delete_empr_groupe = mysql_query("DELETE FROM empr_groupe",$dbh); //Supprime les élèves qui n'ont pas de prêts en cours et qui sont localisé à la commune sélectionnée et de categorie collectivité eleves $req_select_verif_pret = "SELECT id_empr FROM empr left join pret on id_empr=pret_idempr WHERE pret_idempr is null and empr_location= '{$commune}' and empr_categ = '{$code_categorie}' "; $select_verif_pret = mysql_query($req_select_verif_pret, $dbh); while ($verif_pret = mysql_fetch_array($select_verif_pret)) { //pour tous les emprunteurs qui n'ont pas de pret en cours emprunteur::del_empr($verif_pret["id_empr"]); } } while (!feof($fichier)) { $buffer = fgets($fichier, 4096); $buffer = mysql_escape_string($buffer); $tab = explode($separateur, $buffer); //Gestion du sexe switch ($tab[10][0]) { case M: $sexe = 1; break; case F: $sexe = 2; break; default: $sexe = 0; break; } // Traitement de l'élève $select = mysql_query("SELECT id_empr FROM empr WHERE empr_cb = '" . $tab[0] . "'", $dbh); $nb_enreg = mysql_num_rows($select); //Test si un numéro id est fourni if (!$tab[0] || $tab[0] == "") { print "<b> Elève non pris en compte car \"Numéro identifiant\" non renseigné : </b><br />"; for ($i = 0; $i < 3; $i++) { print $eleve_abrege[$i] . " : " . $tab[$i] . ", "; } print "<br />"; $nb_enreg = 2; } $login = cre_login($tab[1], $tab[2], $dbh); switch ($nb_enreg) { case 0: //Ce élève n'est pas enregistré $req_insert = "INSERT INTO empr(empr_cb, empr_nom, empr_prenom, empr_adr1, empr_adr2, empr_cp, empr_ville, "; $req_insert .= "empr_tel1, empr_year, empr_categ, empr_codestat, empr_creation, empr_sexe, "; $req_insert .= "empr_login, empr_password, empr_date_adhesion, empr_date_expiration, empr_location) "; $req_insert .= "VALUES ('{$tab['0']}','{$tab['1']}','{$tab['2']}','{$tab['3']}', '{$tab['4']}', '{$tab['5']}', "; //Vérifier dans la table empr_categ si id_categ_empr 1 = élèves //Vérifier dans la table empr_codestat si idcode 2 = école Sinon, changer les valeurs $req_insert .= "'{$tab['6']}', '{$tab['7']}', '{$tab['8']}', {$code_categorie} , '3', '{$date_auj}', '{$sexe}', "; $req_insert .= "'{$login}', '{$tab['8']}', '{$date_auj}', '{$date_an_proch}' , '{$commune}' )"; $insert = mysql_query($req_insert, $dbh); if (!$insert) { print "<b>Echec de la création de l'élève suivant (Erreur : " . mysql_error() . ") : </b><br />"; print $code_categorie; print "3"; print "{$location}"; print "{$user}"; for ($i = 0; $i < 3; $i++) { print $eleve_abrege[$i] . " : " . $tab[$i] . ", "; } print "<br />"; } else { $cpt_insert++; } gestion_groupe($tab[9], $tab[0], $dbh); $j++; break; case 1: //Ce élève est déjà enregistré $req_update = "UPDATE empr SET empr_nom = '{$tab['1']}', empr_prenom = '{$tab['2']}', empr_adr1 = '{$tab['3']}', "; $req_update .= "empr_adr2 = '{$tab['4']}', empr_cp = '{$tab['5']}', empr_ville = '{$tab['6']}', "; //Vérifier dans la table empr_categ si id_categ_empr 1 = élèves Vérifier dans la table empr_codestat si idcode 2 = école Sinon, changer les valeurs $req_update .= "empr_tel1 = '{$tab['7']}', empr_year = '{$tab['8']}', empr_categ = '{$code_categorie} ', empr_codestat = '3', empr_modif = '{$date_auj}', empr_sexe = '{$sexe}', "; $req_update .= "empr_login = '******', empr_password= '******'8']}', "; $req_update .= "empr_date_adhesion = '{$date_auj}', empr_date_expiration = '{$date_an_proch}', empr_location = '{$commune}'"; $req_update .= "WHERE empr_cb = '{$tab['0']}'"; $update = mysql_query($req_update, $dbh); if (!$update) { print "<b>Echec de la modification de l'élève suivant (Erreur : " . mysql_error() . ") : </b><br />"; print $path; print '$code_categorie'; print "3"; print "{$location}"; print "{$user}"; for ($i = 0; $i < 3; $i++) { print $eleve_abrege[$i] . " : " . $tab[$i] . ", "; } print "<br />"; } else { $cpt_maj++; } gestion_groupe($tab[9], $tab[0], $dbh); $j++; break; case 2: break; default: print $path; print $code_categorie; print 3; print $location; echo $user; print "<b>Echec pour l'élève suivant (Erreur : " . mysql_error() . ") : </b><br />"; for ($i = 0; $i < 3; $i++) { print $eleve_abrege[$i] . " : " . $tab[$i] . ", "; } print "<br />"; break; } } //Affichage des insert et update print "<br />_____________________<br />"; if ($cpt_insert) { print $cpt_insert . " Elèves créés. <br />"; } if ($cpt_maj) { print $cpt_maj . " Elèves modifiés. <br />"; } fclose($fichier); } }
function show_list_recept() { global $msg, $charset, $dbh, $tab_bib; global $recept_search_form, $recept_list_form, $recept_search_form_suite, $recept_hrow_form, $recept_row_form, $sel_fou_form, $sel_dem_form, $sel_rub_form, $sel_date_form; global $bt_app, $bt_rel, $bt_chk, $link_not, $link_bull, $link_art, $link_sug, $bt_cat; global $user_userid; global $lgstat_filter, $deflt3lgstatcde; global $id_bibli, $id_exer; global $f_fou_code, $f_dem_code, $t_dem, $f_rub_code; global $cde_query, $all_query, $recept_query; global $chk_dev; global $lgstat_all, $comment_lg_all, $comment_lo_all; global $page, $nb_per_page, $nbr_lignes, $last_param; global $date_inf, $date_sup; //verifications if (!$id_bibli) { $id_bibli = entites::getSessionBibliID(); } if (!$id_bibli) { $id_bibli = $tab_bib[0][0]; } entites::setSessionBibliId($id_bibli); $id_exer = exercices::getSessionExerciceId($id_bibli, $id_exer); //Affichage form de recherche $titre = htmlentities($msg['recherche'] . ' : ' . $msg['acquisition_recept'], ENT_QUOTES, $charset); $recept_form = $recept_search_form; $recept_form = str_replace('!!form_title!!', $titre, $recept_form); $serialized_search = rawurlencode(serialize(array('id_bibli' => $id_bibli, 'id_exer' => $id_exer, 'f_fou_code' => $f_fou_code, 'f_dem_code' => $f_dem_code, 't_dem' => $t_dem, 'f_rub_code' => $f_rub_code, 'cde_query' => stripslashes($cde_query), 'all_query' => stripslashes($all_query), 'chk_dev' => $chk_dev, 'lgstat_filter' => $lgstat_filter))); $recept_form = str_replace('!!serialized_search!!', $serialized_search, $recept_form); //Affichage selecteur etablissement $sel_bibli = entites::getBibliHtmlSelect(SESSuserid, $id_bibli, FALSE, array('class' => 'saisie-50em', 'id' => 'id_bibli', 'name' => 'id_bibli', 'onChange' => 'submit();')); $recept_form = str_replace('<!-- sel_bibli -->', $sel_bibli, $recept_form); //Affichage selecteur exercice $sel_exer = exercices::getHtmlSelect($id_bibli, $id_exer, FALSE, array('id' => 'id_exer', 'name' => 'id_exer', 'onChange' => 'submit();')); $recept_form = str_replace('<!-- sel_exer -->', $sel_exer, $recept_form); //Affichage fournisseurs $i = 0; $tab_fou2 = array(); if (is_array($f_fou_code) && count($f_fou_code)) { $tab_fou = entites::getRaisonSociale($f_fou_code, $id_bibli); foreach ($f_fou_code as $v) { if ($v && $tab_fou[$v]) { $tab_fou2[$v] = $tab_fou[$v]; if ($i > 0) { $recept_form = str_replace('<!-- sel_fou -->', $sel_fou_form . '<!-- sel_fou -->', $recept_form); $recept_form = str_replace('!!i!!', $i, $recept_form); } $recept_form = str_replace('!!f_fou_code!!', $v, $recept_form); $recept_form = str_replace('!!f_fou!!', htmlentities($tab_fou[$v], ENT_QUOTES, $charset), $recept_form); $i++; } } $recept_form = str_replace('!!max_fou!!', $i > 0 ? $i : '1', $recept_form); } if (!$i) { $recept_form = str_replace('!!f_fou_code!!', '0', $recept_form); $recept_form = str_replace('!!f_fou!!', '', $recept_form); $recept_form = str_replace('!!max_fou!!', '1', $recept_form); } //Affichage demandeurs $i = 0; $tab_empr = array(); $tab_user = array(); if (is_array($f_dem_code) && count($f_dem_code) && is_array($t_dem) && count($t_dem)) { foreach ($f_dem_code as $k => $v) { if ($t_dem[$k]) { $tab_empr[] = $v; } else { $tab_user[] = $v; } } $tab_empr = emprunteur::getName($tab_empr); $tab_user = getUserName($tab_user); foreach ($f_dem_code as $k => $v) { if ($v && ($t_dem[$k] === '0' && $tab_user[$v] || $t_dem[$k] === '1' && $tab_empr[$v])) { if ($i > 0) { $recept_form = str_replace('<!-- sel_dem -->', $sel_dem_form . '<!-- sel_dem -->', $recept_form); $recept_form = str_replace('!!i!!', $i, $recept_form); } $recept_form = str_replace('!!f_dem_code!!', $v, $recept_form); $recept_form = str_replace('!!t_dem!!', $t_dem[$k], $recept_form); if ($t_dem[$k]) { $recept_form = str_replace('!!f_dem!!', htmlentities($tab_empr[$v], ENT_QUOTES, $charset), $recept_form); } else { $recept_form = str_replace('!!f_dem!!', htmlentities($tab_user[$v], ENT_QUOTES, $charset), $recept_form); } $i++; } } $recept_form = str_replace('!!max_dem!!', $i > 0 ? $i : '1', $recept_form); } if (!$i) { $recept_form = str_replace('!!f_dem_code!!', '0', $recept_form); $recept_form = str_replace('!!t_dem!!', '0', $recept_form); $recept_form = str_replace('!!f_dem!!', '', $recept_form); $recept_form = str_replace('!!max_dem!!', '1', $recept_form); } //Affichage rubriques budgetaires $i = 0; $tab_rub2 = array(); if (is_array($f_rub_code) && count($f_rub_code)) { $tab_rub = rubriques::getLibelle($f_rub_code, $id_bibli, $id_exer, SESSuserid); foreach ($f_rub_code as $v) { if ($v && $tab_rub[$v]) { $tab_rub2[$v] = $tab_rub[$v]; if ($i > 0) { $recept_form = str_replace('<!-- sel_rub -->', $sel_rub_form . '<!-- sel_rub -->', $recept_form); $recept_form = str_replace('!!i!!', $i, $recept_form); } $recept_form = str_replace('!!f_rub_code!!', $v, $recept_form); $recept_form = str_replace('!!f_rub!!', htmlentities($tab_rub[$v], ENT_QUOTES, $charset), $recept_form); $i++; } } $recept_form = str_replace('!!max_rub!!', $i > 0 ? $i : '1', $recept_form); } if (!$i) { $recept_form = str_replace('!!f_rub_code!!', '0', $recept_form); $recept_form = str_replace('!!f_rub!!', '', $recept_form); $recept_form = str_replace('!!max_rub!!', '1', $recept_form); } //Affichage zone commande if (!isset($chk_dev)) { $chk_dev = TYP_ACT_CDE; } if ($chk_dev) { $recept_form = str_replace('!!dev_checked!!', "checked='checked'", $recept_form); $recept_form = str_replace('!!cde_checked!!', '', $recept_form); } else { $recept_form = str_replace('!!dev_checked!!', '', $recept_form); $recept_form = str_replace('!!cde_checked!!', "checked='checked'", $recept_form); } $recept_form = str_replace('!!cde_query!!', htmlentities(stripslashes($cde_query), ENT_QUOTES, $charset), $recept_form); //Affichage selecteur dates $sel_date_form[0] = str_replace('!!msg!!', htmlentities($msg['acquisition_recept_date'], ENT_QUOTES, $charset), $sel_date_form[0]); if ($date_inf) { $date_inf_lib = formatdate($date_inf); } else { $date_inf_lib = $msg['parperso_nodate']; } $sel_date_form[1] = str_replace('!!date_inf!!', $date_inf, $sel_date_form[1]); $sel_date_form[1] = str_replace('!!date_inf_lib!!', $date_inf_lib, $sel_date_form[1]); if ($date_sup) { $date_sup_lib = formatdate($date_sup); } else { $date_sup_lib = $msg['parperso_nodate']; } $sel_date_form[2] = str_replace('!!date_sup!!', $date_sup, $sel_date_form[2]); $sel_date_form[2] = str_replace('!!date_sup_lib!!', $date_sup_lib, $sel_date_form[2]); $sel_date_form[0] = sprintf($sel_date_form[0], $sel_date_form[1], $sel_date_form[2]); $recept_form = str_replace('<!-- sel_date -->', $sel_date_form[0], $recept_form); //Creation selecteur statut de lignes de commandes if (!(is_array($lgstat_filter) && count($lgstat_filter))) { $lgstat_filter = array(0 => $deflt3lgstatcde); } $sel_lgstat = lgstat::getHtmlSelect($lgstat_filter, FALSE, array('id' => 'lgstat_filter[]', 'name' => 'lgstat_filter[]', 'multiple' => 'multiple', 'size' => '5')); $recept_form = str_replace('<!-- sel_lgstat -->', $sel_lgstat, $recept_form); //Affichage zone tous les champs $recept_form = str_replace('!!all_query!!', htmlentities(stripslashes($all_query), ENT_QUOTES, $charset), $recept_form); //Prise en compte du formulaire de recherche // nombre de références par pages if (!$nb_per_page) { $nb_per_page = 10; } if (!$page) { $page = 1; } $debut = ($page - 1) * $nb_per_page; //La recherche ici $recept = new receptions($id_bibli, $id_exer); //filtre $filtres = $recept->setFiltres(array_keys($tab_fou2), array_keys($tab_empr), array_keys($tab_user), array_keys($tab_rub2), $chk_dev, $cde_query, $lgstat_filter, $date_inf, $date_sup); // comptage if (!$nbr_lignes) { $nbr_lignes = $recept->calcNbLignes($all_query); $err = $recept->getError(); } // liste if ($nbr_lignes) { $t_list = $recept->getLignes(); //Affichage des lignes $recept_form .= $recept_list_form; //Affichage zone de reception $recept_form = str_replace('!!recept_query!!', htmlentities(stripslashes($recept_query), ENT_QUOTES, $charset), $recept_form); $tab_aff = array(); $lgstat_form = lgstat::getHtmlSelect(array(0 => 0), FALSE, array('id' => 'sel_lgstat_!!id_lig!!', 'onchange' => 'recept_upd_lgstat(this.getAttribute("id"));')); $act_form = ''; $i = 1; foreach ($t_list as $id_acte => $t_row) { //Affichage lignes à recevoir foreach ($t_row as $id_ligne => $row) { if (!in_array($id_acte, $tab_aff)) { array_push($tab_aff, $id_acte); $recept_form = str_replace('<!-- actes -->', $act_form . '<!-- actes -->', $recept_form); $act_form = str_replace('!!lib_acte!!', htmlentities($msg['acquisition_recept_fou'], ENT_QUOTES, $charset) . " <a href=\"./acquisition.php?categ=ach&sub=fourn&action=modif&id_bibli=" . $id_bibli . '&id=' . $row['num_fournisseur'] . "\">" . htmlentities($row['raison_sociale'], ENT_QUOTES, $charset) . "</a>" . ' ' . (htmlentities($row['type_acte'] ? $msg['acquisition_act_num_dev'] : $msg['acquisition_act_num_cde'], ENT_QUOTES, $charset) . "<a href=\"./acquisition.php?categ=ach&sub=" . ($row['type_acte'] ? 'devi' : 'cmde') . "&action=modif&id_bibli=" . $id_bibli . ($row['type_acte'] ? '&id_dev=' : '&id_cde=') . $id_acte . "\">" . htmlentities($row['numero'], ENT_QUOTES, $charset) . "</a>") . ' ' . htmlentities($msg['653'], ENT_QUOTES, $charset) . ' ' . formatdate($row['date_acte']), $recept_hrow_form); } $row_form = $recept_row_form; $row_form = str_replace('!!code!!', htmlentities($row['code'], ENT_QUOTES, $charset), $row_form); $row_form = str_replace('!!lib!!', nl2br(htmlentities($row['libelle'], ENT_QUOTES, $charset)), $row_form); $row_form = str_replace('!!qte_cde!!', $row['nb_cde'], $row_form); $row_form = str_replace('!!qte_liv!!', $row['nb_liv'], $row_form); $row_form = str_replace('!!qte_sol!!', $row['nb_sol'], $row_form); $lgstat_row_form = str_replace("value='" . $row['statut'] . "'", "value='" . $row['statut'] . "' selected='selected' ", $lgstat_form); $row_form = str_replace('!!lgstat!!', $lgstat_row_form, $row_form); $row_form = str_replace('!!comment_lg!!', nl2br(htmlentities($row['commentaires_gestion'], ENT_QUOTES, $charset)), $row_form); $row_form = str_replace('!!comment_lo!!', nl2br(htmlentities($row['commentaires_opac'], ENT_QUOTES, $charset)), $row_form); $row_form = str_replace('!!id_lig!!', $id_ligne, $row_form); $row_form = str_replace('!!typ_lig!!', $row['type_ligne'], $row_form); if ($row['num_produit']) { switch ($row['type_ligne']) { case '1': //notice $row_form = str_replace('<!-- link_cat -->', $link_not, $row_form); break; case '2': //bulletin $row_form = str_replace('<!-- link_cat -->', $link_bull, $row_form); break; case '5': //article $id_bull = analysis::getBulletinIdFromAnalysisId($row['num_produit']); if ($id_bull) { $row_form = str_replace('<!-- link_cat -->', $link_art, $row_form); $row_form = str_replace('!!id_bull!!', $id_bull, $row_form); } break; default: break; } } else { $tmp_bt_cat = str_replace('!!id_lig!!', $id_ligne, $bt_cat); $row_form = str_replace('<!-- bt_cat -->', $tmp_bt_cat, $row_form); } if ($row['num_acquisition']) { $row_form = str_replace('<!-- link_sug -->', $link_sug, $row_form); $row_form = str_replace('!!id_sug!!', $row['num_acquisition'], $row_form); } $row_form = str_replace('!!id_prod!!', $row['num_produit'], $row_form); $row_form = str_replace('!!no!!', $i, $row_form); $tab_rel = array(); $tab_rel = lignes_actes::getRelances($id_ligne); $row_form = str_replace('!!nb_relances!!', htmlentities(sprintf($msg['acquisition_recept_hist'], count($tab_rel)), ENT_QUOTES, $charset), $row_form); if (count($tab_rel)) { $row_form = str_replace('<!-- relances -->', implode(' - ', $tab_rel), $row_form); } $act_form = str_replace('<!-- lignes -->', $row_form . '<!-- lignes -->', $act_form); $i++; } } $recept_form = str_replace('<!-- actes -->', $act_form . '<!-- actes -->', $recept_form); $recept_form = str_replace('!!max_no!!', $i * 1 - 1, $recept_form); //Affichage commentaires $recept_form = str_replace('!!comment_lg_all!!', htmlentities(stripslashes($comment_lg_all), ENT_QUOTES, $charset), $recept_form); $recept_form = str_replace('!!comment_lo_all!!', htmlentities(stripslashes($comment_lo_all), ENT_QUOTES, $charset), $recept_form); //boutons $lgstat_all = lgstat::getHtmlSelect(array(0 => 0), $msg['acquisition_recept_lgstat_none'], array('id' => 'sel_lgstat_all', 'name' => 'sel_lgstat_all')); $recept_form = str_replace('<!-- sel_lgstat_all -->', $lgstat_all, $recept_form); $recept_form = str_replace('<!-- bt_app -->', $bt_app, $recept_form); $recept_form = str_replace('<!-- bt_rel -->', $bt_rel, $recept_form); $recept_form = str_replace('<!-- bt_chk -->', $bt_chk, $recept_form); //Barre de navigation /* if (!$last_param) { $nav_bar = aff_pagination ($url_base, $nbr_lignes, $nb_per_page, $page, 10, true, true) ; } else { $nav_bar = ""; } $recept_form=str_replace('<!-- nav_bar -->', $nav_bar,$recept_form); */ $recept_form .= $recept_search_form_suite; print $recept_form; } elseif ($err) { //erreur dans la recherche $recept_form .= $recept_search_form_suite; print $recept_form; print $err; } else { // pas de resultat $recept_form .= $recept_search_form_suite; print $recept_form; $cle = array(); if ($cde_query) { $cle[] = htmlentities($msg['acquisition_recept_act_search'] . ' ' . stripslashes($cde_query), ENT_QUOTES, $charset); } if ($all_query) { $cle[] = htmlentities($msg['acquisition_recept_global_search'] . ' ' . stripslashes($all_query), ENT_QUOTES, $charset); } error_message($msg['acquisition_recept_rech'], str_replace('!!cle!!', implode(',', $cle), $msg['acquisition_recept_rech_error']), 0); } }
function import($separateur, $dbh, $type_import) { global $categorie, $codestat, $localisation; global $pmb_lecteurs_localises; //La structure du fichier texte doit être la suivante : //Code-barres ; Nom ; Prénom ; Rue ; Complément de rue ; Code postal ; Commune ; Téléphone ; Année de date de naissance ; Classe ; Sexe ; Téléphone 2 ; Mail ; Profession ; Message $requete = "SELECT duree_adhesion FROM empr_categ WHERE id_categ_empr='" . $categorie . "'"; $resultat = pmb_mysql_query($requete, $dbh); if (pmb_mysql_num_rows($resultat)) { $duree = pmb_mysql_result($resultat, 0, 0); } else { $duree = 365; } $eleve_abrege = array("Numéro identifiant", "Nom", "Prénom"); $date_auj = date("Y-m-d", time()); $date_an_proch = date("Y-m-d", time() + 3600 * 24 * $duree); //Upload du fichier if (!$_FILES['import_lec']['tmp_name']) { print "Cliquez sur Précédent et choisissez un fichier"; } elseif (!move_uploaded_file($_FILES['import_lec']['tmp_name'], "./temp/" . basename($_FILES['import_lec']['tmp_name']))) { print "Le fichier n'a pas pu être téléchargé. Voici plus d'informations :<br />"; print_r($_FILES) . "<p>"; } $fichier = @fopen("./temp/" . basename($_FILES['import_lec']['tmp_name']), "r"); if ($fichier) { while (!feof($fichier)) { //initialise la variable tableau, au cas où on ait pas toutes les colonnes dans le fichier csv $buffer = fgets($fichier, 4096); $buffer = pmb_mysql_escape_string($buffer); $tab = explode($separateur, $buffer); //Gestion du sexe switch ($tab[10][0]) { case M: $sexe = 1; break; case F: $sexe = 2; break; default: $sexe = 0; break; } if ($tab[8] != "0") { $password = $tab[8]; } else { $password = ""; } //pour éviter un saut de ligne dans les trois dernières colonnes qui sont facultatives $tab[12] = str_replace("\\r\\n", "", $tab[12]); $tab[13] = str_replace("\\r\\n", "", $tab[13]); $tab[14] = str_replace("\\r\\n", "", $tab[14]); // Traitement du lecteur $select = pmb_mysql_query("SELECT id_empr FROM empr WHERE empr_cb = '" . $tab[0] . "'", $dbh); $nb_enreg = pmb_mysql_num_rows($select); //Test si un numéro id est fourni, rejet si pas d'id avec message si au moins nom ou au moins prénom contient qqch //si pas d'id, pas de nom, pas de prénom, erreur muette : dernière ligne if ((!$tab[0] || $tab[0] == "") && !($tab[1] == "" && $tab[2] == "" && $tab[3] == "" && $tab[4] == "")) { print "<b> Lecteur non pris en compte car \"Numéro identifiant\" non renseigné : </b><br />"; for ($i = 0; $i < 3; $i++) { print $eleve_abrege[$i] . " : " . $tab[$i] . ", "; } print "<br />"; $nb_enreg = 2; } $login = cre_login($tab[1], $tab[2], $dbh); switch ($nb_enreg) { case 0: //Ce lecteur n'est pas enregistré $req_insert = "INSERT INTO empr(empr_cb, empr_nom, empr_prenom, empr_adr1, empr_adr2, empr_cp, empr_ville, "; $req_insert .= "empr_tel1, empr_year, empr_categ, empr_codestat, empr_creation, empr_sexe, "; $req_insert .= "empr_login, empr_password, empr_date_adhesion, empr_date_expiration, empr_tel2, empr_mail, empr_prof, empr_msg, empr_location) "; $req_insert .= "VALUES ('{$tab['0']}','{$tab['1']}','{$tab['2']}','{$tab['3']}', '{$tab['4']}', '{$tab['5']}', "; $req_insert .= "'{$tab['6']}', '{$tab['7']}', '{$tab['8']}', {$categorie}, {$codestat}, '{$date_auj}', '{$sexe}', "; $req_insert .= "'{$login}', '{$password}', '{$date_auj}', '{$date_an_proch}','{$tab['11']}','{$tab['12']}','{$tab['13']}','{$tab['14']}','{$localisation}')"; $insert = pmb_mysql_query($req_insert, $dbh); if (!$insert) { print "<b>Echec de la création du lecteur suivant (Erreur : " . pmb_mysql_error() . ") : </b><br />"; for ($i = 0; $i < 3; $i++) { print $eleve_abrege[$i] . " : " . $tab[$i] . ", "; } print "<br />"; } else { emprunteur::update_digest($login, $password); emprunteur::hash_password($login, $password); $cpt_insert++; } gestion_groupe($tab[9], $tab[0], $dbh); $j++; break; case 1: //Ce lecteur est déjà enregistré $req_update = "UPDATE empr SET empr_nom = '{$tab['1']}', empr_prenom = '{$tab['2']}', empr_adr1 = '{$tab['3']}', "; $req_update .= "empr_adr2 = '{$tab['4']}', empr_cp = '{$tab['5']}', empr_ville = '{$tab['6']}', "; $req_update .= "empr_tel1 = '{$tab['7']}', empr_year = '{$tab['8']}', empr_categ = '" . $categorie . "', empr_codestat = '{$codestat}', empr_modif = '{$date_auj}', empr_sexe = '{$sexe}', "; // on ne modifie ni login ni mot de passe pour éviter d'écraser un mot de passe changé par le lecteur // $req_update .= "empr_login = $login, empr_password= $tab[8], "; $req_update .= "empr_date_adhesion = '{$date_auj}', empr_date_expiration = '{$date_an_proch}', empr_tel2 = '{$tab['11']}', empr_location='{$localisation}' "; $req_update .= "WHERE empr_cb = '{$tab['0']}'"; $update = pmb_mysql_query($req_update, $dbh); if (!$update) { print "<b>Echec de la modification du lecteur suivant (Erreur : " . pmb_mysql_error() . ") : </b><br />"; for ($i = 0; $i < 3; $i++) { print $eleve_abrege[$i] . " : " . $tab[$i] . ", "; } print "<br />"; } else { if ($tab[12] != "") { $req_update_mail = "UPDATE empr SET empr_mail='{$tab['12']}' WHERE empr_cb = '{$tab['0']}'"; $update_mail = pmb_mysql_query($req_update_mail, $dbh); if (!$update_mail) { print "<b>Echec de la modification du mail du lecteur suivant (Erreur : " . pmb_mysql_error() . ") : </b><br />"; for ($i = 0; $i < 3; $i++) { print $eleve_abrege[$i] . " : " . $tab[$i] . ", "; } print "<br />"; } $tab[12] = ""; } if ($tab[13] != "") { $req_update_prof = "UPDATE empr SET empr_prof='{$tab['13']}' WHERE empr_cb = '{$tab['0']}'"; $update_prof = pmb_mysql_query($req_update_prof, $dbh); if (!$update_prof) { print "<b>Echec de la modification de la profession lecteur suivant (Erreur : " . pmb_mysql_error() . ") : </b><br />"; for ($i = 0; $i < 3; $i++) { print $eleve_abrege[$i] . " : " . $tab[$i] . ", "; } print "<br />"; } $tab[13] = ""; } if ($tab[14] != "") { $req_update_msg = "UPDATE empr SET empr_msg='{$tab['14']}' WHERE empr_cb = '{$tab['0']}'"; $update_msg = pmb_mysql_query($req_update_msg, $dbh); if (!$update_msg) { print "<b>Echec de la modification du message sur le lecteur suivant (Erreur : " . pmb_mysql_error() . ") : </b><br />"; for ($i = 0; $i < 3; $i++) { print $eleve_abrege[$i] . " : " . $tab[$i] . ", "; } print "<br />"; } $tab[14] = ""; } $cpt_maj++; } gestion_groupe($tab[9], $tab[0], $dbh); $j++; break; case 2: break; default: print "<b>Echec pour le lecteur suivant (Erreur : " . pmb_mysql_error() . ") : </b><br />"; for ($i = 0; $i < 3; $i++) { print $eleve_abrege[$i] . " : " . $tab[$i] . ", "; } print "<br />"; break; } } if ($type_import == 'maj_complete') { $requete_empr_groupe_delete = "DELETE FROM empr_groupe LEFT JOIN empr ON empr_id=id_empr LEFT JOIN pret ON pret_idempr=id_empr WHERE pret_idempr IS NULL and empr_modif != '{$date_auj}' and empr_categ={$categorie} and empr_codestat= {$codestat}"; if ($pmb_lecteurs_localises == "1") { $requete_empr_where .= " and empr_location={$localisation}"; } pmb_mysql_query($requete_empr_groupe_delete . $requete_empr_where, $dbh); $requete_list_empr_delete = "SELECT id_empr FROM empr LEFT JOIN pret ON pret_idempr=id_empr \n \t\tWHERE pret_idempr IS NULL and empr_modif != '{$date_auj}' and empr_categ={$categorie} and empr_codestat= {$codestat} {$requete_empr_where} "; $list_empr_delete = pmb_mysql_query($requete_list_empr_delete, $dbh); while ($empr_delete = pmb_mysql_fetch_array($list_empr_delete)) { emprunteur::del_empr($empr_delete["id_empr"]); } } //Affichage des insert et update print "<br />"; if ($cpt_delete) { print $cpt_delete . " lecteurs supprimés. <br />"; } if ($cpt_insert) { print $cpt_insert . " lecteurs créés. <br />"; } if ($cpt_maj) { print $cpt_maj . " lecteurs modifiés. <br />"; } fclose($fichier); } }
print "\n\t\t<div class='row'>\n\t\t\t\t<table class='table-but'><tr>\n\t\t\t\t<td class='td-lbut'>\n\t\t\t\t\t<a href='./admin.php?categ=empr&sub=implec&action=FichierOK&Precedent=1' title='" . $msg[654] . "'>\n\t\t\t\t\t<img name='gg.gif' src='./images/gg.gif' width='38' height='26'/>\n\t\t\t\t\t</a>\n\t\t\t\t</td>\n\t\t\t\t<td class='td-rbut'>\n\t\t\t\t\t<input type='submit' class='bouton' name='Effacer' value='" . $msg["del_tout"] . "'/>\n\t\t\t\t</td>\n\t\t\t\t</tr></table>\n\t\t</div>\n\t\t</form>"; break; case 'delall': foreach ($_POST as $cle => $val) { $cmpt = 0; //print $cle.", ". $val; if (substr($cle, 0, 7) == "datedel") { $querry = "select id_empr,empr_cb,empr_nom,empr_prenom From empr where empr_date_expiration = '{$val}';"; $res = mysql_query($querry, $dbh) or die($msg["sqlselect_errdel1"] . "<br />" . $msg["sqlselect_errdel2"] . $querry); while ($row = mysql_fetch_row($res)) { $querry1 = "select * From pret where pret_idempr = " . $row[0] . ";"; $result3 = mysql_query($querry1, $dbh); $row2 = mysql_fetch_row($result3); //print $row2[0]."test"; if ($row2[0] == "") { emprunteur::del_empr($row[0]); } else { $cmpt++; //print "compteur = ".$cmpt."<br />"; if ($cmpt == 1) { $desc_empr = desc_table($dbh, "empr"); print $val . "<br />"; print '<font color="#FF0000" face="Geneva, Arial, Helvetica, sans-serif"><strong>' . $msg["personnes_nodel"] . "<p>"; print '</strong></font>'; print "<table border='2'>"; print " <tr>"; foreach ($desc_empr as $dummykey => $empr) { print " <td>" . $empr[0] . "</td>"; } print " </tr>"; }
function display_result() { global $class_path, $charset, $msg; $aff = ""; if ($this->query) { $execute_query = mysql_query($this->query); $aff .= "<table class='" . $this->css["table"]["class"] . "' style='" . $this->css["table"]["style"] . "'>"; $parity = 0; $header = ""; $s = explode(",", $this->displaycolumns); for ($n = 0; $n < count($s); $n++) { if (substr($s[$n], 0, 1) == "#" && $this->params["REFERENCE"][0]["DYNAMICFIELDS"] == "yes") { //champs perso require_once $class_path . "/parametres_perso.class.php"; $cp = new parametres_perso($this->params["REFERENCE"][0]["PREFIXNAME"]); if (!$cp->no_special_fields) { $id = substr($s[$n], 1); $header .= "<th>" . htmlentities($cp->t_fields[$id][TITRE], ENT_QUOTES, $charset) . "</th>"; } } elseif (array_key_exists($s[$n], $this->fixedfields)) { //champs fixes $header .= "<th>" . $msg[str_replace("msg:", "", $this->fixedfields[$s[$n]]["NAME"])] . "</th>"; } elseif (array_key_exists($s[$n], $this->specialfields)) { //champs spéciaux $header .= "<th>" . $msg[str_replace("msg:", "", $this->specialfields[$s[$n]]["NAME"])] . "</th>"; } else { $header .= "<th> </th>"; } } $aff .= $header; while ($result = mysql_fetch_array($execute_query)) { $onmouseout = $this->scripts["row"]["onmouseout"]; $onmouseover = $this->scripts["row"]["onmouseover"]; $onmousedown = $this->scripts["row"]["onmousedown"]; if ($parity % 2) { $pair_impair = $this->css["row_even"]["class"]; $pair_impair_style = $this->css["row_even"]["style"]; $onmouseout = str_replace('!!parity!!', $this->css["row_even"]["class"], $onmouseout); $onmouseover = str_replace('!!parity!!', $this->css["row_even"]["class"], $onmouseover); $onmouseout = str_replace('!!parity!!', $this->css["row_even"]["class"], $onmouseout); } else { $pair_impair = $this->css["row_odd"]["class"]; $pair_impair_style = $this->css["row_odd"]["style"]; $onmouseout = str_replace('!!parity!!', $this->css["row_odd"]["class"], $onmouseout); $onmouseover = str_replace('!!parity!!', $this->css["row_odd"]["class"], $onmouseover); $onmousedown = str_replace('!!parity!!', $this->css["row_odd"]["class"], $onmousedown); } $ligne = ""; $s = explode(",", $this->displaycolumns); //parcours des champs for ($i = 0; $i < count($s); $i++) { //détermination de la valeur if (substr($s[$i], 0, 1) == "#" && $this->params["REFERENCE"][0]["DYNAMICFIELDS"] == "yes") { //champs perso require_once $class_path . "/parametres_perso.class.php"; $cp = new parametres_perso($this->params["REFERENCE"][0]["PREFIXNAME"]); $id = substr($s[$i], 1); $cp->get_values($result[$this->params["REFERENCEKEY"][0]["value"]]); if (!$cp->no_special_fields) { // $temp=$result[$this->params["REFERENCE"][0]["PREFIXNAME"]."_custom_".$cp->t_fields[$id]["DATATYPE"].$id]; $onmouseout = str_replace("!!" . $s[$i] . "!!", rawurlencode($temp), $onmouseout); $onmouseover = str_replace("!!" . $s[$i] . "!!", rawurlencode($temp), $onmouseover); $onmousedown = str_replace("!!" . $s[$i] . "!!", rawurlencode($temp), $onmousedown); $temp = $cp->get_formatted_output($cp->values[$id], $id); if (!$temp) { $temp = " "; } $ligne .= "<td class='" . $this->css["cols"][$i]["class"] . "' style='" . $this->css["cols"][$i]["style"] . "'>" . $temp . "</td>"; } } elseif (array_key_exists($s[$i], $this->fixedfields)) { //champs fixes $f = array(); if ($this->fixedfields[$s[$i]]["LINK"]) { for ($x = 0; $x < count($this->fixedfields[$s[$i]]["LINK"]); $x++) { if ($this->fixedfields[$s[$i]]["LINK"][$x]["TYPE"] == "nn") { if ($this->fixedfields[$s[$i]]["TABLEALIAS"][0]["NAME"]) { $f[0] = $this->fixedfields[$s[$i]]["TABLEALIAS"][0]["NAME"]; } else { $f[0] = $this->fixedfields[$s[$i]]["TABLEFIELD"][0]["NAME"]; } } else { if ($this->fixedfields[$s[$i]]["TABLEALIAS"][0][value]) { $f[0] = $this->fixedfields[$s[$i]]["TABLEALIAS"][0][value]; } else { $f[0] = $this->fixedfields[$s[$i]]["TABLEFIELD"][0][value]; } } } } else { if ($this->fixedfields[$s[$i]]["TABLEALIAS"][0][value]) { $f = explode(",", $this->fixedfields[$s[$i]]["TABLEALIAS"][0][value]); } else { $f = explode(",", $this->fixedfields[$s[$i]]["TABLEFIELD"][0][value]); } } $b = 0; $ligne .= "<td class='" . $this->css["cols"][$i]["class"] . "' style='" . $this->css["cols"][$i]["style"] . "'>"; while ($b < count($f)) { $temp = $result[$f[$b]]; if ($temp == '') { $temp = " "; } $ligne .= $temp . " "; $b++; } $ligne .= "</td>"; $onmouseout = str_replace("!!" . $s[$i] . "!!", rawurlencode($temp), $onmouseout); $onmouseover = str_replace("!!" . $s[$i] . "!!", rawurlencode($temp), $onmouseover); $onmousedown = str_replace("!!" . $s[$i] . "!!", rawurlencode($temp), $onmousedown); } else { $name_function = $this->specialfields[$s[$i]]["FUNCTION"]; $r = ""; $key = $result[$this->params["REFERENCEKEY"][0][value]]; eval("\$r=" . $name_function . "(\$key);"); $ligne .= $r; } } if ($this->filter_name == "empr" && !array_search("b", $s)) { require_once $class_path . "/emprunteur.class.php"; $code_b = emprunteur::get_cb_empr($result[$this->params["REFERENCEKEY"][0][value]]); if ($code_b) { $onmouseout = str_replace("!!b!!", $code_b, $onmouseout); $onmouseover = str_replace("!!b!!", $code_b, $onmouseover); $onmousedown = str_replace("!!b!!", $code_b, $onmousedown); } } $onmouseout = str_replace("!!" . $this->params["REFERENCEKEY"][0][value] . "!!", $result[$this->params["REFERENCEKEY"][0][value]], $onmouseout); $onmouseover = str_replace("!!" . $this->params["REFERENCEKEY"][0][value] . "!!", $result[$this->params["REFERENCEKEY"][0][value]], $onmouseover); $onmousedown = str_replace("!!" . $this->params["REFERENCEKEY"][0][value] . "!!", $result[$this->params["REFERENCEKEY"][0][value]], $onmousedown); $aff .= "<tr class='" . $pair_impair . "' style='{$pair_impair_style}' onmouseover=\"this.className='surbrillance';" . $onmouseover . "\" onmouseout=\"" . $onmouseout . "\" onmousedown='" . $onmousedown . "'>"; $aff .= $ligne; $aff .= "</tr>"; $parity += 1; } $aff .= "</table>"; } return $aff; }
function update_members() { global $dbh; global $msg; if ($this->id) { if ($this->nb_members) { while (list($cle, $membre) = each($this->members)) { $date_prolong = "form_expiration_" . $membre['id']; global ${$date_prolong}; if (${$date_prolong} != "") { //Ne pas débiter l'abonnement deux fois.. $requete = "SELECT empr_date_expiration FROM empr WHERE id_empr=" . $membre['id']; $resultat = pmb_mysql_query($requete, $dbh); if ($resultat) { if (str_replace("-", "", pmb_mysql_result($resultat, 0, 0)) != str_replace("-", "", ${$date_prolong})) { // mise à jour $requete = "UPDATE empr"; $requete .= " SET empr_date_expiration='" . ${$date_prolong} . "'"; $requete .= " WHERE id_empr=" . $membre['id'] . " LIMIT 1"; @pmb_mysql_query($requete, $dbh); if (!pmb_mysql_errno($dbh)) { global $debit; if ($debit) { if ($debit == 2) { $rec_caution = true; } else { $rec_caution = false; } emprunteur::rec_abonnement($membre['id'], $membre['id_abt'], $membre['id_categ'], $rec_caution); } } else { error_message($msg[540], "erreur modification emprunteur", 1, './circ.php?categ=groups&action=showgroup&groupID=".$this->id."'); } } } } } } } }
function import_lecteurs($type_import) { global $dbh; global $text, $n, $t_xml; global $deflt2docs_location; //La structure du fichier xml doit être la suivante : /* <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <inm:Results productTitle="Superdoc Premium" productVersion="9.00" xmlns:inm="http://www.inmagic.com/webpublisher/query"> <inm:Recordset setCount="3"> <inm:Record setEntry="0"> <inm:Date-de-creation>10/01/2007</inm:Date-de-creation> <inm:ID>103</inm:ID> <inm:Centre>CDI LYC. MENDES FRANCE</inm:Centre> <inm:Numero-Emprunteur>00001987</inm:Numero-Emprunteur> <inm:Nom>SOULIER</inm:Nom> <inm:Prenom>ALAIN</inm:Prenom> <inm:Nom-Prenom>SOULIER ALAIN</inm:Nom-Prenom> <inm:Civilite /> <inm:Service>C.D.I.</inm:Service> <inm:Telephone /> <inm:Fax /> <inm:Mel /> <inm:Adresse /> <inm:Code-Postal /> <inm:Ville /> <inm:Pays /> <inm:Notes /> <inm:Exclusion-du-pret /> <inm:Groupe /> <inm:Droits /> <inm:DateFinDroits /> <inm:DroitEmprunteur>CDI LYC. MENDES FRANCE : Professeur</inm:DroitEmprunteur> </inm:Record>... */ //Upload du fichier if (!$_FILES['import_lec']['tmp_name']) { print "Cliquez sur Précédent et choisissez un fichier"; exit; } elseif (!move_uploaded_file($_FILES['import_lec']['tmp_name'], "./temp/" . basename($_FILES['import_lec']['tmp_name']))) { print "Le fichier n'a pas pu être téléchargé. Voici plus d'informations :<br />"; print_r($_FILES) . "<p>"; exit; } $fichier = @fopen("./temp/" . basename($_FILES['import_lec']['tmp_name']), "r"); if ($fichier) { print "<br /><br />"; print "Téléchargement du fichier effectué.<br /><hr />"; if ($type_import == 'maj_complete') { print "Suppression des groupes et lecteurs sans prêts.<br /><br />"; //Vide la table empr_groupe mysql_query("DELETE FROM empr_groupe", $dbh); //Supprime les lecteurs qui n'ont pas de prêts en cours $req_select_verif_pret = "SELECT id_empr FROM empr left join pret on id_empr=pret_idempr WHERE pret_idempr is null "; $select_verif_pret = mysql_query($req_select_verif_pret, $dbh); while ($verif_pret = mysql_fetch_array($select_verif_pret)) { //pour tous les lecteurs qui n'ont pas de pret en cours emprunteur::del_empr($verif_pret["id_empr"]); } } print "Traitement du fichier en cours.<br />"; $nb_ok = 0; $tab_err = array(); //definition header et footer $header = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><inm:results>"; $footer = "</inm:results>"; while (!feof($fichier)) { $buffer = ""; $deb = FALSE; $i = 0; while ($i < 200 && !feof($fichier)) { $line = fgets($fichier, 4096); if (strpos($line, "<inm:Recordset") === FALSE && strpos($line, "<inm:Record") !== FALSE) { $deb = TRUE; } if ($deb) { $buffer .= trim($line); } if (strpos($line, "</inm:Record>") !== FALSE) { $deb = FALSE; $i++; } } if ($buffer) { $buffer = $header . $buffer . $footer; //print "<hr />";print htmlentities($buffer,ENT_QUOTES,$charset);print "<br />"; //parse buffer $text = ''; $t_xml = array(); $n = 0; $encoding = "UTF-8"; $parser = xml_parser_create($encoding); xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, $encoding); xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, true); xml_set_element_handler($parser, "debutBalise", "finBalise"); xml_set_character_data_handler($parser, "texte"); if (!xml_parse($parser, $buffer, TRUE)) { die(sprintf("erreur XML %s à la ligne: %d", xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser))); } xml_parser_free($parser); //traitement des enregistrements for ($i = 1; $i <= count($t_xml); $i++) { //il faut au minimum un nom ou un prénom $t_xml[$i]['INM:NOM'][0] = trim($t_xml[$i]['INM:NOM'][0]); $t_xml[$i]['INM:PRENOM'][0] = trim($t_xml[$i]['INM:PRENOM'][0]); if ($t_xml[$i]['INM:NOM'][0] != '' || $t_xml[$i]['INM:PRENOM'][0] != '') { $e_data = array(); //print "Enregistrement n° ".$t_xml[$i]['INM:ID'][0]."<br />"; //localisation $e_data['location'] = $deflt2docs_location; //nom + prenom if ($t_xml[$i]['INM:NOM'][0] != '') { $e_data['nom'] = $t_xml[$i]['INM:NOM'][0]; $e_data['prenom'] = $t_xml[$i]['INM:PRENOM'][0]; } else { $e_data['nom'] = $t_xml[$i]['INM:NOM'][0]; $e_data['prenom'] = ''; } //cb emprunteur $t_xml[$i]['INM:NUMERO-EMPRUNTEUR'][0] = trim($t_xml[$i]['INM:NUMERO-EMPRUNTEUR'][0]); if ($t_xml[$i]['INM:NUMERO-EMPRUNTEUR'][0] != '') { $e_data['cb'] = trim($t_xml[$i]['INM:NUMERO-EMPRUNTEUR'][0]); } else { $q = "select (count(*)+1) from empr"; $r = mysql_query($q, $dbh); $x = mysql_result($r, 0, 0); $e_data['cb'] = 'PMB_' . $x; } //civilité $t_xml[$i]['INM:CIVILITE'][0] = substr(strtolower(trim($t_xml[$i]['INM:CIVILITE'][0])), 0, 2); switch ($t_xml[$i]['INM:CIVILITE'][0]) { case 'm.': case 'mr': case 'mo': $e_data['sexe'] = 1; break; case 'ma': case 'me': case 'ml': $e_data['sexe'] = 2; break; default: $e_data['sexe'] = 0; break; } //tel $e_data['tel1'] = trim($t_xml[$i]['INM:TELEPHONE'][0]); //mail $e_data['mail'] = trim($t_xml[$i]['INM:MEL'][0]); //adresse $e_data['adr1'] = trim($t_xml[$i]['INM:ADRESSE'][0]); //cp $e_data['cp'] = trim($t_xml[$i]['INM:CP'][0]); //ville $e_data['ville'] = trim($t_xml[$i]['INM:VILLE'][0]); //pays $e_data['pays'] = trim($t_xml[$i]['INM:PAYS'][0]); //notes $e_data['msg'] = trim($t_xml[$i]['INM:NOTES'][0]); //categorie $t_xml[$i]['INM:DROITEMPRUNTEUR'][0] = strtolower($t_xml[$i]['INM:DROITEMPRUNTEUR'][0]); $t_xml[$i]['INM:DROITEMPRUNTEUR'][0] = convert_diacrit($t_xml[$i]['INM:DROITEMPRUNTEUR'][0]); if (strpos($t_xml[$i]['INM:DROITEMPRUNTEUR'][0], "eleve") !== FALSE) { $e_data['categ'] = 1; } elseif (strpos($t_xml[$i]['INM:DROITEMPRUNTEUR'][0], "professeur") !== FALSE) { $e_data['categ'] = 2; } else { $e_data['categ'] = 3; } //code statistique $e_data['codestat'] = 1; //statut if (strtolower(trim($t_xml[$i]['INM:EXCLUSION-DU-PRET'][0])) == 'yes') { $e_data['statut'] = 2; } else { $e_data['statut'] = 1; } //date creation lecteur $t_xml[$i]['INM:DATE-DE-CREATION'][0] = trim($t_xml[$i]['INM:DATE-DE-CREATION'][0]); $e_data['date_creation'] = substr($t_xml[$i]['INM:DATE-DE-CREATION'][0], 6, 4) . '-' . substr($t_xml[$i]['INM:DATE-DE-CREATION'][0], 3, 2) . '-' . substr($t_xml[$i]['INM:DATE-DE-CREATION'][0], 0, 2); //date adhesion $e_data['date_adhesion'] = today(); //date fin adhesion $qda = "select duree_adhesion from empr_categ where id_categ_empr='" . $e_data['categ'] . "' "; $rda = mysql_query($qda, $dbh); if (mysql_num_rows($rda)) { $da = mysql_result($rda, 0, 0); } else { $da = 365; } $qd = "select date_add('" . $e_data['date_adhesion'] . "', INTERVAL " . $da . " DAY) "; $rd = mysql_query($qd, $dbh); if (mysql_num_rows($rd)) { $de = mysql_result($rd, 0, 0); } $e_data['date_expiration'] = $de; //login $e_data['login'] = emprunteur::do_login($e_data['nom'], $e_data['prenom']); //import lecteur $e = new emprunteur(); $e_id = 0; $e_id = $e->import($e_data); if ($e_id) { $nb_ok++; //groupe et champ perso service $t_xml[$i]['INM:SERVICE'][0] = trim($t_xml[$i]['INM:SERVICE'][0]); if ($t_xml[$i]['INM:SERVICE'][0]) { //groupe $qg = "select groupe_id from groupe where libelle_groupe='" . addslashes($t_xml[$i]['INM:SERVICE'][0]) . "' limit 1 "; $rg = mysql_query($qg, $dbh); if (mysql_num_rows($rg)) { $g_id = mysql_result($rg, 0, 0); } else { $qg = "insert into groupe set libelle_groupe='" . addslashes($t_xml[$i]['INM:SERVICE'][0]) . "' "; mysql_query($qg, $dbh); $g_id = mysql_insert_id($dbh); } $qeg = "insert into empr_groupe (empr_id,groupe_id) values ({$e_id},{$g_id}) "; mysql_query($qeg, $dbh); //champ perso service $qn = "select idchamp from empr_custom where name='service' "; $rn = mysql_query($qn, $dbh); if (mysql_num_rows($rn)) { $idc = mysql_result($rn, 0, 0); $requete = "select max(empr_custom_list_value*1) from empr_custom_lists where empr_custom_champ={$idc} "; $resultat = mysql_query($requete, $dbh); $max = @mysql_result($resultat, 0, 0); $n = $max + 1; $requete = "select empr_custom_list_value from empr_custom_lists where empr_custom_list_lib='" . addslashes($t_xml[$i]['INM:SERVICE'][0]) . "' and empr_custom_champ={$idc} "; $resultat = mysql_query($requete, $dbh); if (mysql_num_rows($resultat)) { $value = mysql_result($resultat, 0, 0); } else { $requete = "insert into empr_custom_lists (empr_custom_champ,empr_custom_list_value,empr_custom_list_lib) values({$idc},{$n},'" . addslashes($t_xml[$i]['INM:SERVICE'][0]) . "')"; mysql_query($requete, $dbh); $value = $n; $n++; } $requete = "insert into empr_custom_values (empr_custom_champ,empr_custom_origine,empr_custom_integer) values({$idc},{$e_id},{$value})"; mysql_query($requete, $dbh); } } } else { $tab_err[] = $t_xml[$i]['INM:ID'][0]; } } else { $tab_err[] = $t_xml[$i]['INM:ID'][0]; } } } } fclose($fichier); unlink("./temp/" . basename($_FILES['import_lec']['tmp_name'])); print "Traitement du fichier terminé."; print "<br /><hr />"; print "Nombre de lecteurs importés : " . $nb_ok . "<br />"; print "Nombre d'erreurs de traitement : " . count($tab_err) . "<br /><hr />"; if (count($tab_err)) { for ($i = 0; $i < count($tab_err); $i++) { print "Erreur à l'enregistrement n° " . $tab_err[$i] . "<br />"; } print "<hr /><br />"; } } else { print "Le fichier n'a pu être lu ."; } }
function show_empr_form($form_action, $form_cancel, $link, $id, $cb, $duplicate_empr_from_id = "") { global $empr_form; global $dbh, $msg, $charset; global $biblio_email; global $aff_list_empr; global $deflt2docs_location; global $pmb_lecteurs_localises; global $pmb_gestion_abonnement, $pmb_gestion_financiere, $empr_abonnement_default_debit; global $empr_prolong_calc_date_adhes_depassee; global $database_window_title; global $lang; global $pmb_rfid_activate, $pmb_rfid_serveur_url; global $pmb_opac_view_activate; // si $id est fourni, il s'agit d'une modification. on recupere les donnees dans $link if ($id) { // modification echo window_title($database_window_title . $msg[55]); $entete = $msg[55]; if ($pmb_rfid_activate == 1 && $pmb_rfid_serveur_url) { $script_rfid_encode = "if(script_rfid_encode()==false) return false;"; } else { $script_rfid_encode = ''; } $empr_form = str_replace("!!questionrfid!!", $script_rfid_encode, $empr_form); $requete = "SELECT * FROM empr WHERE id_empr='{$id}' "; $res = mysql_query($requete, $link); if ($res) { $empr = mysql_fetch_object($res); } else { error_message($msg[53], $msg[54], 0); } } else { // création $empr = new stdClass(); $entete = $msg[15]; $empr_form = str_replace("!!questionrfid!!", '', $empr_form); } if ($duplicate_empr_from_id) { $empr_form = str_replace("!!id!!", "", $empr_form); $empr_form = str_replace("!!entete!!", $msg["empr_duplicate"], $empr_form); } else { $empr_form = str_replace("!!id!!", $id, $empr_form); $empr_form = str_replace("!!entete!!", $entete, $empr_form); } $empr_form = str_replace("!!form_action!!", $form_action, $empr_form); if ($empr->empr_cb) { //Si il y a un code lecteur if (!$duplicate_empr_from_id) { $empr_form = str_replace("!!cb!!", $empr->empr_cb, $empr_form); } else { $empr_form = str_replace("!!cb!!", $cb, $empr_form); } $date_adhesion = !$duplicate_empr_from_id ? $empr->empr_date_adhesion : date('Y-m-d'); $date_clic = "onClick=\"openPopUp('./select.php?what=calendrier&caller=empr_form&date_caller=" . preg_replace('/-/', '', $date_adhesion) . "¶m1=form_adhesion¶m2=form_adhesion_lib&auto_submit=NO&date_anterieure=YES', 'date_adhesion', 250, 300, -2, -2, 'toolbar=no, dependent=yes, resizable=yes')\" "; $adhesion = "\n\t\t\t\t<input type='hidden' name='form_adhesion' value='" . preg_replace('/-/', '', $date_adhesion) . "' />\n\t\t\t\t<input class='bouton' type='button' name='form_adhesion_lib' value='" . formatdate($date_adhesion) . "' " . $date_clic . " />"; $empr_form = str_replace("!!adhesion!!", $adhesion, $empr_form); $date_clic = "onClick=\"openPopUp('./select.php?what=calendrier&caller=empr_form&date_caller=" . preg_replace('/-/', '', $empr->empr_date_expiration) . "¶m1=form_expiration¶m2=form_expiration_lib&auto_submit=NO&date_anterieure=YES', 'date_adhesion', 205, 300, -2, -2, 'toolbar=no, dependent=yes, resizable=yes')\" "; $expiration = "\n\t\t\t\t<input type='hidden' id='form_expiration' name='form_expiration' value='" . preg_replace('/-/', '', $empr->empr_date_expiration) . "' />\n\t\t\t\t<input class='bouton' type='button' id='form_expiration_lib' name='form_expiration_lib' value='" . formatdate($empr->empr_date_expiration) . "' " . $date_clic . " />"; $empr_form = str_replace("!!expiration!!", $expiration, $empr_form); // ajout ici des trucs sur la relance adhésion $empr_temp = new emprunteur($id, '', FALSE, 0); $aff_relance = ""; if ($empr_temp->adhesion_renouv_proche() || $empr_temp->adhesion_depassee()) { if ($empr_temp->adhesion_depassee()) { $mess_relance = $msg[empr_date_depassee]; } else { $mess_relance = $msg[empr_date_renouv_proche]; } $rqt = "select duree_adhesion from empr_categ where id_categ_empr='{$empr_temp->categ}'"; $res_dur_adhesion = mysql_query($rqt, $dbh); $row = mysql_fetch_row($res_dur_adhesion); $nb_jour_adhesion_categ = $row[0]; if ($empr_prolong_calc_date_adhes_depassee && $empr_temp->adhesion_depassee()) { $rqt_date = "select date_add(curdate(),INTERVAL 1 DAY) as nouv_date_debut,\n\t\t\t\t\t\tdate_add(curdate(),INTERVAL {$nb_jour_adhesion_categ} DAY) as nouv_date_fin "; } else { $rqt_date = "select date_add('{$empr_temp->date_expiration}',INTERVAL 1 DAY) as nouv_date_debut,\n\t\t\t\t\t\tdate_add('{$empr_temp->date_expiration}',INTERVAL {$nb_jour_adhesion_categ} DAY) as nouv_date_fin "; } $resultatdate = mysql_query($rqt_date) or die("<br /> {$rqt_date} " . mysql_error()); $resdate = mysql_fetch_object($resultatdate); $nouv_date_debut = $resdate->nouv_date_debut; $nouv_date_fin = $resdate->nouv_date_fin; $nouv_date_debut_formatee = formatdate($nouv_date_debut); $nouv_date_fin_formatee = formatdate($nouv_date_fin); // on conserve la date d'adhésion initiale $action_prolonger = "this.form.form_expiration.value = '{$nouv_date_fin}';\n\t\t\t\tthis.form.form_expiration_lib.value = '{$nouv_date_fin_formatee}';\n\t\t\t\t"; $action_relance_courrier = "openPopUp('./pdf.php?pdfdoc=lettre_relance_adhesion&id_empr={$id}', 'lettre', 600, 500, -2, -2, 'toolbar=no, dependent=yes, resizable=yes'); return(false) "; $aff_relance = "<div class='row'>\n\t\t\t\t\t\t<span class='erreur'>{$mess_relance}</span><br />\n\t\t\t\t\t\t<input class='bouton' type='button' value=\"" . $msg[prolonger] . "\" onClick=\"{$action_prolonger}\" /> \n\t\t\t\t\t\t<input class='bouton' type='button' value=\"" . $msg[prolong_courrier] . "\" onClick=\"{$action_relance_courrier}\" />"; if ($empr_temp->mail && $biblio_email) { $action_relance_mail = "if (confirm('" . $msg["mail_retard_confirm"] . "')) {openPopUp('./mail.php?type_mail=mail_relance_adhesion&id_empr={$id}', 'mail', 600, 500, -2, -2, 'toolbar=no, dependent=yes, resizable=yes, scrollbars=yes'); } return(false) "; $aff_relance .= " <input class='bouton' type='button' value=\"" . $msg['prolong_mail'] . "\" onClick=\"{$action_relance_mail}\" />"; } $aff_relance .= "</div>"; if ($pmb_gestion_financiere && $pmb_gestion_abonnement) { $aff_relance .= "<div class='row'><input type='radio' name='debit' value='0' id='debit_0' " . (!$empr_abonnement_default_debit ? "checked" : "") . " /><label for='debit_0'>" . $msg["finance_abt_no_debit"] . "</label> <input type='radio' name='debit' value='1' id='debit_1' " . ($empr_abonnement_default_debit == 1 ? "checked" : "") . " />"; $aff_relance .= "<label for='debit_1'>" . $msg["finance_abt_debit_wo_caution"] . "</label> "; if ($pmb_gestion_abonnement == 2) { $aff_relance .= "<input type='radio' name='debit' value='2' id='debit_2' " . ($empr_abonnement_default_debit == 2 ? "checked" : "") . " /><label for='debit_2'>" . $msg["finance_abt_debit_wt_caution"] . "</label>"; } $aff_relance .= "</div>"; } } $empr_form = str_replace("!!adhesion_proche_depassee!!", $aff_relance, $empr_form); //Liste des types d'abonnement $list_type_abt = ""; if ($pmb_gestion_abonnement == 2 && $pmb_gestion_financiere) { $requete = "select * from type_abts order by type_abt_libelle "; $resultat_abt = mysql_query($requete); $user_loc = $deflt2docs_location; $t_type_abt = array(); while ($res_abt = mysql_fetch_object($resultat_abt)) { $locs = explode(",", $res_abt->localisations); $as = array_search($user_loc, $locs); if ($as !== false && $as !== null || !$res_abt->localisations) { $t_type_abt[] = $res_abt; } } if (count($t_type_abt)) { $list_type_abt = "<div class='row'>\n<label for='type_abt'>" . $msg["finance_type_abt"] . "</label></div>\n<div class='row'>\n<select name='type_abt' id='type_abt'>\n"; for ($i = 0; $i < count($t_type_abt); $i++) { $list_type_abt .= "<option value='" . $t_type_abt[$i]->id_type_abt . "'"; if ($empr->type_abt == $t_type_abt[$i]->id_type_abt) { $list_type_abt .= " selected"; } $list_type_abt .= ">" . htmlentities($t_type_abt[$i]->type_abt_libelle, ENT_QUOTES, $charset) . "</option>\n"; } $list_type_abt .= "</select></div>"; } } $empr_form = str_replace("!!typ_abonnement!!", $list_type_abt, $empr_form); } else { // création de lecteur $empr->empr_date_adhesion = today(); $empr_form = str_replace('!!cb!!', $cb, $empr_form); $date_clic = "onClick=\"openPopUp('./select.php?what=calendrier&caller=empr_form&date_caller=" . preg_replace('/-/', '', $empr->empr_date_adhesion) . "¶m1=form_adhesion¶m2=form_adhesion_lib&auto_submit=NO&date_anterieure=YES', 'date_adhesion', 250, 260, -2, -2, 'toolbar=no, dependent=yes, resizable=yes')\" "; $adhesion = "{$msg['1401']}{$msg['1901']}\n\t\t\t\t<input type='hidden' name='form_adhesion' value='" . preg_replace('/-/', '', $empr->empr_date_adhesion) . "'>\n\t\t\t\t<input class='bouton' type='button' name='form_adhesion_lib' value='" . formatdate($empr->empr_date_adhesion) . "' " . $date_clic . " />"; $empr_form = str_replace("!!adhesion!!", $adhesion, $empr_form); $empr_form = str_replace("!!adhesion_proche_depassee!!", "", $empr_form); $empr_form = str_replace("!!expiration!!", "<input type='hidden' name='form_expiration' value=''>", $empr_form); //Liste des types d'abonnement $list_type_abt = ""; if ($pmb_gestion_abonnement == 2 && $pmb_gestion_financiere) { $requete = "select * from type_abts"; $resultat_abt = mysql_query($requete); $user_loc = $deflt2docs_location; $t_type_abt = array(); while ($res_abt = mysql_fetch_object($resultat_abt)) { $locs = explode(",", $res_abt->localisations); $as = array_search($user_loc, $locs); if ($as !== false && $as !== null || !$res_abt->localisations) { $t_type_abt[] = $res_abt; } } if (count($t_type_abt)) { $list_type_abt = "<div class='row'>\n<label for='type_abt'>" . $msg["finance_type_abt"] . "</label></div>\n<div class='row'>\n<select name='type_abt' id='type_abt'>\n"; for ($i = 0; $i < count($t_type_abt); $i++) { $list_type_abt .= "<option value='" . $t_type_abt[$i]->id_type_abt . "'>" . htmlentities($t_type_abt[$i]->type_abt_libelle, ENT_QUOTES, $charset) . "</option>\n"; } $list_type_abt .= "</select></div>"; } } $empr_form = str_replace("!!typ_abonnement!!", $list_type_abt, $empr_form); } $empr_form = str_replace("!!nom!!", htmlentities($empr->empr_nom, ENT_QUOTES, $charset), $empr_form); $empr_form = str_replace("!!prenom!!", htmlentities($empr->empr_prenom, ENT_QUOTES, $charset), $empr_form); $empr_form = str_replace("!!adr1!!", htmlentities($empr->empr_adr1, ENT_QUOTES, $charset), $empr_form); $empr_form = str_replace("!!adr2!!", htmlentities($empr->empr_adr2, ENT_QUOTES, $charset), $empr_form); $empr_form = str_replace("!!cp!!", htmlentities($empr->empr_cp, ENT_QUOTES, $charset), $empr_form); $empr_form = str_replace("!!ville!!", htmlentities($empr->empr_ville, ENT_QUOTES, $charset), $empr_form); $empr_form = str_replace("!!pays!!", htmlentities($empr->empr_pays, ENT_QUOTES, $charset), $empr_form); $empr_form = str_replace("!!mail!!", htmlentities($empr->empr_mail, ENT_QUOTES, $charset), $empr_form); $empr_form = str_replace("!!tel1!!", htmlentities($empr->empr_tel1, ENT_QUOTES, $charset), $empr_form); if (!$empr->empr_sms) { $empr_sms_chk = ''; } else { $empr_sms_chk = "checked='checked'"; } $empr_form = str_replace('!!sms!!', $empr_sms_chk, $empr_form); $empr_form = str_replace("!!tel2!!", htmlentities($empr->empr_tel2, ENT_QUOTES, $charset), $empr_form); $empr_form = str_replace("!!prof!!", htmlentities($empr->empr_prof, ENT_QUOTES, $charset), $empr_form); if ($empr->empr_year != 0) { $empr_form = str_replace("!!year!!", htmlentities($empr->empr_year, ENT_QUOTES, $charset), $empr_form); } else { $empr_form = str_replace("!!year!!", "", $empr_form); } if (!$empr->empr_lang) { $empr->empr_lang = $lang; } $empr_form = str_replace('!!combo_empr_lang!!', make_empr_lang_combo($empr->empr_lang), $empr_form); if (!$duplicate_empr_from_id) { $empr_form = str_replace('!!empr_login!!', $empr->empr_login, $empr_form); $empr_form = str_replace("!!empr_msg!!", htmlentities($empr->empr_msg, ENT_QUOTES, $charset), $empr_form); } else { $empr_form = str_replace('!!empr_login!!', "", $empr_form); $empr_form = str_replace("!!empr_msg!!", "", $empr_form); } // on récupère le select catégorie $requete = "SELECT id_categ_empr, libelle, duree_adhesion FROM empr_categ ORDER BY libelle "; $res = mysql_query($requete, $link); $nbr_lignes = mysql_num_rows($res); $categ_content = ''; $empr_grille_categ = "<select id='empr_grille_categ' style='display:none;'><option value='0' selected='selected' >" . $msg['all_categories_empr'] . "</value>"; for ($i = 0; $i < $nbr_lignes; $i++) { $row = mysql_fetch_row($res); $categ_content .= "<option value='{$row['0']}'"; if ($row[0] == $empr->empr_categ) { $categ_content .= " selected='selected'"; } $categ_content .= ">{$row['1']}</option>"; $empr_grille_categ .= "<option value='{$row['0']}'>{$row['1']}</option>"; } $empr_grille_categ .= '</select>'; $empr_form = str_replace("!!categ!!", $categ_content, $empr_form); // Ajout des categories et localisations pour edition des grilles $empr_form = str_replace("<!-- empr_grille_categ -->", $empr_grille_categ, $empr_form); if ($pmb_lecteurs_localises) { $empr_grille_location = docs_location::get_html_select(array(0), array('id' => 0, 'msg' => $msg['all_locations_empr']), array('id' => 'empr_grille_location', 'class' => 'saisie-20em', 'style' => 'display:none;')); } else { $empr_grille_location = "<input type='hidden' id='empr_grille_location' value='0' />"; } $empr_form = str_replace("<!-- empr_grille_location -->", $empr_grille_location, $empr_form); $requete = "SELECT id_categ_empr, libelle, duree_adhesion FROM empr_categ ORDER BY libelle "; $res = mysql_query($requete, $link); $grille_categ = "<option value='0' selected='selected'>" . $msg['all_categories_empr'] . "</value>"; for ($i = 0; $i < $nbr_lignes; $i++) { $row = mysql_fetch_row($res); $categ_content .= "<option value='{$row['0']}'"; if ($row[0] == $empr->empr_categ) { $categ_content .= " selected='selected'"; } $categ_content .= ">{$row['1']}</option>"; $grille_categ .= "<option value='{$row['0']}'>{$row['1']}</option>"; } $empr_form = str_replace("!!categ!!", $categ_content, $empr_form); // on récupère le select statut $requete = "SELECT idstatut, statut_libelle FROM empr_statut ORDER BY statut_libelle "; //Si il n'y a pas de statut on prend celui définit pour l'utilisateur if (!$empr->empr_statut) { global $deflt_empr_statut; $empr->empr_statut = $deflt_empr_statut; } $res = mysql_query($requete, $link); $nbr_lignes = mysql_num_rows($res); for ($i = 0; $i < $nbr_lignes; $i++) { $row = mysql_fetch_row($res); $statut_content .= "<option value='{$row['0']}'"; if ($row[0] == $empr->empr_statut) { $statut_content .= " selected='selected'"; } $statut_content .= ">{$row['1']}</option>"; } $empr_form = str_replace("!!statut!!", $statut_content, $empr_form); // et le select code stat // on récupère le select cod stat $requete = "SELECT idcode, libelle FROM empr_codestat ORDER BY libelle "; $res = mysql_query($requete, $link); $nbr_lignes = mysql_num_rows($res); for ($i = 0; $i < $nbr_lignes; $i++) { $row = mysql_fetch_row($res); $cstat_content .= "<option value='{$row['0']}'"; if ($row[0] == $empr->empr_codestat) { $cstat_content .= " selected='selected'"; } $cstat_content .= ">{$row['1']}</option>"; } // mise à jour du sexe switch ($empr->empr_sexe) { case 1: $empr_form = str_replace("sexe_select_1", 'selected', $empr_form); break; case 2: $empr_form = str_replace("sexe_select_2", 'selected', $empr_form); break; default: $empr_form = str_replace("sexe_select_0", 'selected', $empr_form); break; } $empr_form = preg_replace("/sexe_select_[0-2]/m", '', $empr_form); $empr_form = str_replace("!!cstat!!", $cstat_content, $empr_form); // mise à jour du groupe if ($id) { $requete = "SELECT id_groupe, libelle_groupe, ifnull(empr_id,0) as inscription FROM groupe left join empr_groupe on (id_groupe=groupe_id and empr_id=" . $id . ") ORDER BY libelle_groupe"; } else { $requete = "SELECT id_groupe, libelle_groupe, 0 as inscription FROM groupe ORDER BY libelle_groupe"; } $groupe_form_aff = gen_liste_multiple($requete, "id_groupe", "libelle_groupe", "inscription", "id_grp[]", "", $id, 0, $msg[empr_form_aucungroupe], 0, $msg[empr_form_nogroupe], 5); $empr_form = str_replace("!!groupe_ajout!!", $groupe_form_aff, $empr_form); $empr_form = str_replace('!!cancel!!', $form_cancel, $empr_form); // ldap MaxMan if ($empr->empr_ldap) { $form_ldap = "checked"; } else { $form_ldap = ""; } //$empr_form = str_replace('!!empr_password!!', $empr_password, $empr_form); $empr_form = str_replace("!!ldap!!", $form_ldap, $empr_form); $empr_form = str_replace('!!empr_password!!', '', $empr_form); if (!$empr->empr_location) { $empr->empr_location = $deflt2docs_location; } if ($pmb_lecteurs_localises) { $loc = "\n\t\t<div class='row' id='g2_r1' etirable='yes' recept='yes' recepttype='circrow' highlight='circrow_highlight' downlight='circrow_downlight' >\n\t\t\t<div class='colonne4' id='g2_r1_f0' movable='yes' draggable='yes' dragtype='circcell' recept='yes' recepttype='circcell' highlight='circcell_highlight' downlight='circcell_downlight' title='" . htmlentities($msg['empr_location'], ENT_QUOTES, $charset) . "'>\n\t\t\t\t<div class='row'>\n\t\t\t\t\t<label for='form_empr_location' class='etiquette'>" . $msg['empr_location'] . "</label>\n\t\t\t\t\t</div>\n\t\t\t\t<div class='row'>\n\t\t\t\t\t!!localisation!!\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t<div class='row'></div>\n\t\t</div>"; //$loc = str_replace('!!localisation!!', docs_location::gen_combo_box_empr($empr->empr_location, 0), $loc); $loc = str_replace('!!localisation!!', docs_location::get_html_select(array($empr->empr_location), array(), array('id' => 'empr_location_id', 'name' => 'empr_location_id')), $loc); } else { $loc = "<input type='hidden' name='empr_location_id' id='empr_location_id' value='" . $empr->empr_location . "'>"; $empr_form = str_replace('<!-- !!localisation!! -->', $loc, $empr_form); } $empr_form = str_replace('<!-- !!localisation!! -->', $loc, $empr_form); if ($pmb_opac_view_activate) { $opac_view_tpl = "\n\t\t\t<div class='row' id='g4_r1_f0' movable='yes' draggable='yes' dragtype='circcell' recept='yes' recepttype='circcell' highlight='circcell_highlight' downlight='circcell_downlight' title='" . htmlentities($msg['empr_form_opac_view'], ENT_QUOTES, $charset) . "'>\t\t\t\t\n\t\t\t\t\t!!opac_view!!\n\t\t\t</div>"; $opac_view = new opac_view(0, $id); $opac_view_tpl = str_replace("!!opac_view!!", gen_plus("opac_view", $msg["empr_form_opac_view"], $opac_view->do_sel_list(), 0), $opac_view_tpl); } $empr_form = str_replace('<!-- !!opac_view!! -->', $opac_view_tpl, $empr_form); //Champs persos $p_perso = new parametres_perso("empr"); $perso_ = $p_perso->show_editable_fields($id); if (count($perso_["FIELDS"])) { $perso = "<div class='row'></div>"; } else { $perso = ""; } $class = "colonne2"; for ($i = 0; $i < count($perso_["FIELDS"]); $i++) { $p = $perso_["FIELDS"][$i]; $perso .= "<div class='{$class}' id='g6_r0_f" . $i . "' movable='yes' draggable='yes' dragtype='circcell' recept='yes' recepttype='circcell' highlight='circcell_highlight' downlight='circcell_downlight' title='" . htmlentities($p['TITRE'], ENT_QUOTES, $charset) . "' >"; $perso .= "<div class='row'><label for='" . $p["NAME"] . "' class='etiquette'>" . $p["TITRE"] . "</label></div>\n"; $perso .= "<div class='row'>"; $perso .= $p["AFF"] . "</div>"; $perso .= "</div>"; if ($class == "colonne2") { $class = "colonne_suite"; } else { $class = "colonne2"; } } if ($class == "colonne_suite") { $perso .= "<div class='{$class}'> </div>"; } $perso .= $perso_["CHECK_SCRIPTS"]; $empr_form = str_replace("!!champs_perso!!", $perso, $empr_form); $empr_form = str_replace('!!empr_notice_override!!', get_rights_form($id), $empr_form); print pmb_bidi($empr_form); }
$pair_impair = "even"; } else { $pair_impair = "odd"; } $parity += 1; $nb_pret = get_nombre_pret($membre['id']); $nb_resa = get_nombre_resa($membre['id']); $tr_javascript = "onmouseover=\"this.className='surbrillance'\" onmouseout=\"this.className='" . $pair_impair . "'\" "; $dn_javascript = "onmousedown=\"document.location='./circ.php?categ=pret&form_cb=" . rawurlencode($membre['cb']) . "&groupID={$groupID}';\" style='cursor: pointer' "; print pmb_bidi("<tr class='{$pair_impair}' {$tr_javascript}>\n\t\t\t<td {$dn_javascript}><a href=\"./circ.php?categ=pret&form_cb=" . rawurlencode($membre['cb']) . "&groupID={$groupID}\">" . $membre['nom']); if ($membre['prenom']) { print pmb_bidi(", {$membre['prenom']}"); } print pmb_bidi("\n\t\t\t</a></td>\n\t\t\t<td {$dn_javascript}>{$membre['cb']}</td>\n\t\t\t<td {$dn_javascript}>" . $nb_pret . "</td>\n\t\t\t<td {$dn_javascript}>" . $nb_resa . "</td>"); if ($empr_allow_prolong_members_group) { $empr_temp = new emprunteur($membre['id'], '', FALSE, 0); print pmb_bidi("\n\t\t\t\t<td {$dn_javascript}>" . $empr_temp->aff_date_adhesion . "</td>\n\t\t\t\t<td {$dn_javascript}>" . $empr_temp->aff_date_expiration . "</td>"); if ($empr_temp->adhesion_renouv_proche() || $empr_temp->adhesion_depassee()) { $rqt = "select duree_adhesion from empr_categ where id_categ_empr='{$empr_temp->categ}'"; $res_dur_adhesion = pmb_mysql_query($rqt, $dbh); $row = pmb_mysql_fetch_row($res_dur_adhesion); $nb_jour_adhesion_categ = $row[0]; if ($empr_prolong_calc_date_adhes_depassee && $empr_temp->adhesion_depassee()) { $rqt_date = "select date_add(curdate(),INTERVAL 1 DAY) as nouv_date_debut,\n\t\t\t\t\t\t\tdate_add(curdate(),INTERVAL {$nb_jour_adhesion_categ} DAY) as nouv_date_fin "; } else { $rqt_date = "select date_add('{$empr_temp->date_expiration}',INTERVAL 1 DAY) as nouv_date_debut,\n\t\t\t\t\t\t\tdate_add('{$empr_temp->date_expiration}',INTERVAL {$nb_jour_adhesion_categ} DAY) as nouv_date_fin "; } $resultatdate = pmb_mysql_query($rqt_date) or die("<br /> {$rqt_date} " . pmb_mysql_error()); $resdate = pmb_mysql_fetch_object($resultatdate); $date_clic = "onClick=\"openPopUp('./select.php?what=calendrier&caller=group_form&date_caller=" . preg_replace('/-/', '', $resdate->nouv_date_fin) . "¶m1=form_expiration_" . $membre['id'] . "¶m2=form_expiration_lib_" . $membre['id'] . "&auto_submit=NO&date_anterieure=YES', 'date_adhesion', 205, 300, -2, -2, 'toolbar=no, dependent=yes, resizable=yes')\" "; $expiration = "\n\t\t\t\t<input type='hidden' id='form_expiration_" . $membre['id'] . "' name='form_expiration_" . $membre['id'] . "' value='" . preg_replace('/-/', '', $resdate->nouv_date_fin) . "' />\n\t\t\t\t<input class='bouton' type='button' id='form_expiration_lib_" . $membre['id'] . "' name='form_expiration_lib_" . $membre['id'] . "' value='" . formatdate($resdate->nouv_date_fin) . "' " . $date_clic . " />";
function update_empr($empr_cb = '', $empr_id = 0, $fields) { global $dbh, $lang; global $msg; global $charset; global $pmb_num_carte_auto, $deflt2docs_location, $pmb_gestion_abonnement, $pmb_gestion_financiere; object_to_array($fields); $empr_cb = $this->clean_field((string) $empr_cb); $empr_id += 0; if (!$empr_id && $empr_cb == '') { return $this->build_error("idempr et empr_cb vide."); } if ($empr_id) { $where = " id_empr = {$empr_id} "; } else { $where = " empr_cb = '" . addslashes($empr_cb) . "' "; } $sql = "SELECT id_empr, empr_cb FROM empr WHERE {$where}"; $res = pmb_mysql_query($sql); if (!$res || !pmb_mysql_num_rows($res)) { return $this->build_error("Lecteur inconnu: 'empr_cb' = {$empr_cb} ou id_empr = {$empr_id} ."); } $empr_res = pmb_mysql_fetch_object($res); $empr_id = $empr_res->id_empr; // clean des entrées $fields = $this->clean_fields($fields); /* $fields['nom']=$this->clean_field($fields['nom']); $fields['prenom']=$this->clean_field($fields['prenom']); $fields['adr1']=$this->clean_field($fields['adr1']); $fields['adr2']=$this->clean_field($fields['adr2']); $fields['cp']=$this->clean_field($fields['cp']); $fields['ville']=$this->clean_field($fields['ville']); $fields['pays']=$this->clean_field($fields['pays']); $fields['mail']=$this->clean_field($fields['mail']); $fields['tel1']=$this->clean_field($fields['tel1']); $fields['sms']=$this->clean_field($fields['sms'])+0; $fields['tel2']=$this->clean_field($fields['tel2']); $fields['prof']=$this->clean_field($fields['prof']); $fields['birth']=$this->clean_field($fields['birth']); $fields['sexe']=$this->clean_field($fields['sexe'])+0; $fields['login']=$this->clean_field($fields['login']); $fields['pwd']=$this->clean_field($fields['pwd']); $fields['msg']=$this->clean_field($fields['msg']); $fields['lang']=$this->clean_field($fields['lang']); $fields['location']=$this->clean_field($fields['location']+0); $fields['date_adhesion']=$this->clean_field($fields['date_adhesion']); $fields['date_expiration']=$this->clean_field($fields['date_expiration']); $fields['categ']=$this->clean_field($fields['categ'])+0; $fields['statut']=$this->clean_field($fields['statut']+0); $fields['lang']=$this->clean_field($fields['lang']); $fields['cstat']=$this->clean_field($fields['cstat'])+0; $fields['type_abt']=$this->clean_field($fields['type_abt']+0); $fields['ldap']=$this->clean_field($fields['ldap'])+0;*/ $fields['sexe'] += 0; $fields['location'] += 0; $fields['categ'] += 0; $fields['statut'] += 0; $fields['lang'] += 0; $fields['cstat'] += 0; $fields['type_abt'] += 0; $fields['ldap'] += 0; // vérification des champs obligatoires if (!$fields['nom']) { return $this->build_error("Le champ 'nom' n'est pas renseigne."); } if (!$fields['categ']) { return $this->build_error("Le champ 'categ' n'est pas renseigne."); } if (!$fields['statut']) { return $this->build_error("Le champ 'statut' n'est pas renseigne."); } if (!$fields['cstat']) { return $this->build_error("Le champ 'cstat' n'est pas renseigne."); } // vérification des relations $q = "select idstatut from empr_statut where idstatut='" . $fields['statut'] . "' limit 1"; $r = pmb_mysql_query($q, $dbh); if (!pmb_mysql_num_rows($r)) { return $this->build_error("Le champ 'statut' = " . $fields['statut'] . " n'est pas un Id present dans la base de donnee."); } $q = "select idcode from empr_codestat where idcode='" . $fields['cstat'] . "' limit 1"; $r = pmb_mysql_query($q, $dbh); if (!pmb_mysql_num_rows($r)) { return $this->build_error("Le champ 'cstat' = " . $fields['cstat'] . " n'est pas un Id present dans la base de donnee."); } $q = "select id_categ_empr from empr_categ where id_categ_empr='" . $fields['categ'] . "' limit 1"; $r = pmb_mysql_query($q, $dbh); if (!pmb_mysql_num_rows($r)) { return $this->build_error("Le champ 'categ' = " . $fields['categ'] . " n'est pas un Id present dans la base de donnee."); } if ($fields['location']) { $q = "select idlocation from docs_location where idlocation='" . $fields['location'] . "' limit 1"; $r = pmb_mysql_query($q, $dbh); if (!pmb_mysql_num_rows($r)) { $fields['location'] = 0; } } if (!$fields['location']) { $loca = pmb_mysql_query("select min(idlocation) as idlocation from docs_location", $dbh); $locaid = pmb_mysql_fetch_object($loca); $fields['location'] = $locaid->idlocation; } if ($fields['mail']) { if (!filter_var($fields['mail'], FILTER_VALIDATE_EMAIL)) { return $this->build_error("Le champ 'mail' = " . $fields['mail'] . " n'est pas un mail valide."); } } if (!$fields['sexe']) { $fields['sexe'] = 0; } if (!$fields['lang']) { $fields['lang'] = $lang; } $requete = "UPDATE empr SET "; $requete .= "empr_nom='" . addslashes($fields['nom']) . "', "; $requete .= "empr_prenom='" . addslashes($fields['prenom']) . "', "; $requete .= "empr_adr1='" . addslashes($fields['adr1']) . "', "; $requete .= "empr_adr2='" . addslashes($fields['adr2']) . "', "; $requete .= "empr_cp='" . addslashes($fields['cp']) . "', "; $requete .= "empr_ville='" . addslashes($fields['ville']) . "', "; $requete .= "empr_pays='" . addslashes($fields['pays']) . "', "; $requete .= "empr_mail='" . addslashes($fields['mail']) . "', "; $requete .= "empr_tel1='" . addslashes($fields['tel1']) . "', "; $requete .= "empr_sms='" . addslashes($fields['sms']) . "', "; $requete .= "empr_tel2='" . addslashes($fields['tel2']) . "', "; $requete .= "empr_prof='" . addslashes($fields['prof']) . "', "; $requete .= "empr_year='" . addslashes($fields['birth']) . "', "; $requete .= "empr_categ='" . $fields['categ'] . "', "; $requete .= "empr_statut='" . $fields['statut'] . "', "; $requete .= "empr_lang='" . addslashes($fields['lang']) . "', "; if ($fields['date_adhesion'] == "") { $requete .= "empr_date_adhesion=CURRENT_DATE(), "; } else { $requete .= "empr_date_adhesion='" . addslashes($fields['date_adhesion']) . "', "; } if ($fields['date_expiration'] == "" or $fields['date_expiration'] == $fields['date_adhesion']) { /* AJOUTER ICI LE CALCUL EN FONCTION DE LA CATEGORIE */ $rqt_empr_categ = "select duree_adhesion from empr_categ where id_categ_empr = " . $fields['categ'] . " "; $res_empr_categ = pmb_mysql_query($rqt_empr_categ, $dbh); $empr_categ = pmb_mysql_fetch_object($res_empr_categ); if ($fields['date_adhesion']) { $rqt_date = "select date_add('" . addslashes($fields['date_adhesion']) . "', INTERVAL " . $empr_categ->duree_adhesion . " DAY) as date_expiration "; } else { $rqt_date = "select date_add(CURRENT_DATE(), INTERVAL " . $empr_categ->duree_adhesion . " DAY) as date_expiration "; } $resultatdate = pmb_mysql_query($rqt_date); $resdate = pmb_mysql_fetch_object($resultatdate); $requete .= "empr_date_expiration='" . $resdate->date_expiration . "', "; } else { $requete .= "empr_date_expiration='" . $fields['date_expiration'] . "', "; } $requete .= "empr_codestat=" . $fields['cstat'] . ", "; $requete .= "empr_modif=CURRENT_DATE(), "; $requete .= "empr_sexe='" . $fields['sexe'] . "', "; $requete .= "empr_msg='" . addslashes($fields['msg']) . "', "; $requete .= "empr_login='******'login']) . "', "; $requete .= "empr_location='" . $fields['location'] . "', "; // ldap - MaxMan if ($fields['ldap']) { $requete .= "empr_ldap='1', "; $fields['pwd'] = ""; } else { $requete .= "empr_ldap='0', "; } //Gestion financière if ($pmb_gestion_abonnement == 2 && $pmb_gestion_financiere) { $requete .= "type_abt='" . $fields['type_abt'] . "', "; } else { $requete .= "type_abt=0, "; } if ($fields['pwd'] != "") { $requete .= "empr_password='******'pwd']) . "' "; } else { $requete .= "empr_password='******'birth']) . "' "; } $requete .= " WHERE id_empr=" . $empr_id . " limit 1"; $res = pmb_mysql_query($requete, $dbh); if (!$res) { return $this->build_error("Impossible de modifier le lecteur: {$requete}"); } if ($fields['pwd'] != "") { emprunteur::update_digest($fields['login'], $fields['pwd']); emprunteur::hash_password($fields['login'], $fields['pwd']); } else { emprunteur::update_digest($fields['login'], $fields['birth']); emprunteur::hash_password($fields['login'], $fields['birth']); } if (is_array($fields['pperso_list'])) { $p_perso = new parametres_perso("empr"); foreach ($fields['pperso_list'] as $pp) { $name = $pp["name"]; global ${$name}; ${$name} = $pp["value_list"]; } $p_perso->rec_fields_perso($empr_id); } if (is_array($fields['groupe_list'])) { emprunteur::rec_groupe_empr($empr_id, $fields['groupe_list']); } emprunteur::ins_lect_categ_dsi($empr_id, $fields['categ'], 0); if ($pmb_gestion_financiere && $pmb_gestion_abonnement) { emprunteur::rec_abonnement($empr_id, $type_abt, $fields['categ']); } return $this->build_ok(); }
function supp_lect_par_lect($tab, $dbh) { global $lect_erreur, $lect_supprime, $lect_interdit; $requete = "select id_empr,pret_idexpl from empr left join pret on id_empr=pret_idempr join empr_custom_values on empr_custom_origine=id_empr where empr_cb like '" . addslashes($tab[1]) . "%' and empr_custom_champ='2' and empr_custom_small_text='" . addslashes($tab[0]) . "' group by id_empr"; $select = mysql_query($requete, $dbh); $nb_enreg = mysql_num_rows($select); if ($nb_enreg == 1) { $id = mysql_result($select, 0, 0); if (!mysql_result($select, 0, 1)) { //Si il n'a pas de pret en cours emprunteur::del_empr($id); $lect_supprime++; } else { //On modifi le statut $q = "select idstatut from empr_statut where statut_libelle='A supprimer' limit 1"; $r = mysql_query($q, $dbh); if (mysql_num_rows($r)) { $id_statut = mysql_result($r, 0, 0); } else { $q = "insert into empr_statut (statut_libelle) values ('A supprimer') "; $r = mysql_query($q, $dbh); $id_statut = mysql_insert_id($dbh); } $requete = "update empr set empr_statut='" . $id_statut . "' where id_empr='" . $id . "' "; if (mysql_query($requete)) { $lect_interdit++; } else { $lect_erreur++; echo "<b>Erreur : Pour le lecteur " . $tab[2] . " " . $tab[3] . " avec le code barre " . $tab[1] . " un problème est survenu lors de la modification de son statut<b><br />"; } } } elseif ($nb_enreg > 1) { $lect_erreur++; echo "<b>Erreur : Attention le code barre " . $tab[1] . " est en double dans la base veuillez le modifier pour l'un des deux lecteurs<b><br />"; return; } else { $lect_erreur++; echo "<b>Erreur : Attention le lecteur " . $tab[2] . " " . $tab[3] . " avec le code barre " . $tab[1] . " n'existe pas dans la base, il ne sera pas supprimé<b><br />"; return; } }
$p_perso->delete_values($stat_id->pret_arc_id); // supprimer le prêt annulé $query = "delete from pret "; $query .= "where pret_idexpl = '" . $id_expl . "' "; $result = pmb_mysql_query($query, $dbh); $erreur_affichage = "<hr />\n\t\t\t\t\t<div class='row'>\n\t\t\t\t\t<div class='colonne10'><img src='./images/info.png' /></div>\n\t\t\t\t\t<div class='colonne-suite'><span class='erreur'>" . str_replace('!!cb_expl!!', $cb_doc, $msg[607]) . "</span></div>\n\t\t\t\t\t</div><br />"; $alert_sound_list[] = "information"; $empr = new emprunteur($id_empr, $erreur_affichage, FALSE, 1); $affichage = $empr->fiche; } else { $script_magnetique = "\n<script language='javascript' type='text/javascript'>\nvar requete = null;\n\nfunction creerRequette(){\n\tif(window.XMLHttpRequest) // Firefox\n\t\trequete = new XMLHttpRequest();\n\telse if(window.ActiveXObject) // Internet Explorer\n \t\trequete = new ActiveXObject('Microsoft.XMLHTTP');\n\telse { // XMLHttpRequest non supporté par le navigateur\n \t\talert('Votre navigateur ne supporte pas les objets XMLHTTPRequest...');\n \treturn;\n\t}\n}\n\nfunction magnetise(commande){\n\tcreerRequette();\n\tif(netscape.security.PrivilegeManager)netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');\n\trequete.open('GET', 'http://localhost:30000/?send_value='+commande+'&command=Send', false);\n\trequete.send(null);\n\tif(requete.readyState != 4) alert('Requête antivol non effectuée !');\n}\n\n"; //Si il y a un emprunteur if ($id_empr) { // Vérification id, on dispose d'un id pour l'emprunteur, donc on est en situation de prêt if (check_empr($id_empr)) { $empr_temp = new emprunteur($id_empr, '', FALSE, 0); $empr_date_depassee = $empr_temp->adhesion_depassee(); //Si adhésion dépassée if (!($pmb_pret_adhesion_depassee == 0 && $empr_date_depassee)) { //Si un exemplaire ou un code barres a été fourni if ($cb_doc || $id_expl) { if ($id_expl = get_expl_id_from_cb($cb_doc)) { // Gestion Antivol if ($pmb_antivol > 0) { $rqt = "SELECT type_antivol FROM exemplaires WHERE expl_id='" . $id_expl . "' "; $result = pmb_mysql_query($rqt, $dbh); $expl = pmb_mysql_fetch_object($result); $type_antivol = $expl->type_antivol; if ($type_antivol == 1) { // c'est un support non magnétique (livre, revue...) print "{$script_magnetique}" . "magnetise('DDD');</script>";
if ($pmb_gestion_abonnement == 2 && $pmb_gestion_financiere) { $requete .= "type_abt='" . $type_abt . "', "; } else { $requete .= "type_abt=0, "; } if ($form_empr_password != "") { $requete .= "empr_password='******', "; } $requete .= "empr_msg='{$form_empr_msg}', "; $requete .= "empr_login='******' "; $requete .= " WHERE id_empr='{$id}' "; $res = pmb_mysql_query($requete, $dbh); if (!pmb_mysql_errno($dbh)) { if ($form_empr_password != "") { emprunteur::update_digest($form_empr_login, $form_empr_password); emprunteur::hash_password($form_empr_login, $form_empr_password); } $p_perso->rec_fields_perso($id); rec_groupe_empr($id, $id_grp); // DSI : sur modification de lecteur, pas de mofification de ses inscriptions aux bannettes. // ins_lect_categ_dsi($id, $form_categ, $anc_categ) ; if ($debit) { if ($debit == 2) { $rec_caution = true; } else { $rec_caution = false; } rec_abonnement($id, $type_abt, $form_categ, $rec_caution); } if ($pmb_opac_view_activate) { $opac_view = new opac_view(0, $id);
function del_item_base($item = 0) { global $dbh; if (!$item) { return CADDIE_ITEM_NULL; } $verif_empr_item = $this->verif_empr_item($item); if (!$verif_empr_item) { emprunteur::del_empr($item); return CADDIE_ITEM_SUPPR_BASE_OK; } elseif ($verif_empr_item == 1) { return CADDIE_ITEM_EXPL_PRET; } else { return CADDIE_ITEM_RESA; } }
function verif_validite_compte() { global $dbh, $msg, $opac_default_lang; global $f_nom, $f_prenom, $f_email, $f_login, $f_password; global $f_msg, $f_adr1, $f_adr2, $f_cp, $f_ville, $f_pays, $f_tel1; global $base_path, $opac_websubscribe_num_carte_auto; global $opac_websubscribe_show, $lvl; $ret = array(); $rqt = "select id_empr from empr where empr_mail like '%" . $f_email . "%' "; $res = pmb_mysql_query($rqt, $dbh); if (pmb_mysql_num_rows($res) > 0) { $ret[0] = PBINSC_MAIL; $ret[1] = str_replace("!!email!!", urlencode($f_email), $msg[subs_pb_email]); return $ret; } $rqt = "select id_empr from empr where empr_login ='******' "; $res = pmb_mysql_query($rqt, $dbh); if (pmb_mysql_num_rows($res) > 0) { $ret[0] = PBINSC_LOGIN; $ret[1] = str_replace("!!f_login!!", $f_login, $msg[subs_pb_login]) . generate_form_inscription(); return $ret; } // préparation des données: // langue: if ($_COOKIE['PhpMyBibli-LANG']) { $lang = $_COOKIE['PhpMyBibli-LANG']; } if (!$lang) { if ($opac_default_lang) { $lang = $opac_default_lang; } else { $lang = "fr_FR"; } } // paramétrage : global $opac_websubscribe_empr_status, $opac_websubscribe_empr_categ, $opac_websubscribe_empr_stat, $opac_websubscribe_valid_limit; $opac_websubscribe_empr_status_array = explode(",", $opac_websubscribe_empr_status); if (!$opac_websubscribe_empr_categ) { $ret[0] = PBINSC_PARAM; $ret[1] = $msg[subs_pb_empr_categ]; return $ret; } if (!$opac_websubscribe_empr_stat) { $ret[0] = PBINSC_PARAM; $ret[1] = $msg[subs_pb_empr_codestat]; return $ret; } // codes-barres emprunteur bidon : $pe_emprcb = 'wwwtmp' . rand(0, 100000); // durée d'adhésion de la categ web $rqt = "select duree_adhesion from empr_categ where id_categ_empr='" . $opac_websubscribe_empr_categ . "' "; $res = pmb_mysql_query($rqt, $dbh); $obj = pmb_mysql_fetch_object($res); $duree_adhesion = $obj->duree_adhesion; global $pmb_lecteurs_localises, $opac_websubscribe_show_location; if ($pmb_lecteurs_localises && $opac_websubscribe_show_location) { global $empr_location_id; $websubscribe_empr_location = $empr_location_id ? $empr_location_id : 0; } else { global $opac_websubscribe_empr_location; $websubscribe_empr_location = $opac_websubscribe_empr_location; } // clé de validation : $alphanum = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; $cle_validation = substr(str_shuffle($alphanum), 0, 20); $subscription_action = get_others_informations_from_globals(); $rqt = "insert into empr set "; $rqt .= "id_empr=0, "; $rqt .= "empr_cb ='" . $pe_emprcb . "', "; $rqt .= "empr_login ='******', "; $rqt .= "empr_mail='" . $f_email . "', "; $rqt .= "empr_nom='" . $f_nom . "', "; $rqt .= "empr_prenom='" . $f_prenom . "', "; $rqt .= "empr_password='******', "; $rqt .= "empr_creation=sysdate(), "; $rqt .= "empr_modif=sysdate(), "; $rqt .= "empr_date_adhesion=sysdate(), "; $rqt .= "empr_date_expiration=date_add(sysdate(), INTERVAL {$duree_adhesion} DAY), "; $rqt .= "empr_lang='" . $lang . "', "; $rqt .= "empr_statut='" . $opac_websubscribe_empr_status_array[0] . "', "; $rqt .= "empr_location='" . $websubscribe_empr_location . "', "; $rqt .= "empr_categ='" . $opac_websubscribe_empr_categ . "', "; $rqt .= "empr_codestat='" . $opac_websubscribe_empr_stat . "', "; $rqt .= "empr_msg='" . $f_msg . "', "; $rqt .= "empr_adr1='" . $f_adr1 . "', "; $rqt .= "empr_adr2='" . $f_adr2 . "', "; $rqt .= "empr_cp='" . $f_cp . "', "; $rqt .= "empr_ville='" . $f_ville . "', "; $rqt .= "empr_pays='" . $f_pays . "', "; $rqt .= "empr_tel1='" . $f_tel1 . "', "; $rqt .= "cle_validation='" . $cle_validation . "' "; if (count($subscription_action)) { $rqt .= ",empr_subscription_action = '" . addslashes(serialize($subscription_action)) . "'"; } else { $rqt .= ",empr_subscription_action = '" . addslashes(serialize(array())) . "'"; } $res = pmb_mysql_query($rqt, $dbh) or die(pmb_mysql_error() . "<br /><br />{$rqt}"); $id_empr = pmb_mysql_insert_id(); emprunteur::update_digest($f_login, $f_password); emprunteur::hash_password($f_login, $f_password); if ($id_empr) { //redefine empr.empr_cb $pe_emprcb = 'www' . $id_empr; $opac_websubscribe_num_carte_auto_array = array(); $opac_websubscribe_num_carte_auto_array = explode(",", $opac_websubscribe_num_carte_auto); if ($opac_websubscribe_num_carte_auto_array[0] == "2") { $long_prefixe = $opac_websubscribe_num_carte_auto_array[1]; $nb_chiffres = $opac_websubscribe_num_carte_auto_array[2]; $prefix = $opac_websubscribe_num_carte_auto_array[3]; $rqt = "SELECT CAST(SUBSTRING(empr_cb," . ($long_prefixe + 1) . ") AS UNSIGNED) AS max_cb, SUBSTRING(empr_cb,1," . $long_prefixe * 1 . ") AS prefixdb FROM empr ORDER BY max_cb DESC limit 0,1"; // modif f cerovetti pour sortir dernier code barre tri par ASCII $res = pmb_mysql_query($rqt, $dbh); $cb_initial = pmb_mysql_fetch_object($res); $pe_emprcb = $cb_initial->max_cb * 1 + 1; if (!$nb_chiffres) { $nb_chiffres = strlen($pe_emprcb); } if (!$prefix) { $prefix = $cb_initial->prefixdb; } $pe_emprcb = $prefix . substr((string) str_pad($pe_emprcb, $nb_chiffres, "0", STR_PAD_LEFT), -$nb_chiffres); } elseif ($opac_websubscribe_num_carte_auto_array[0] == '3') { $num_carte_auto_filename = $base_path . '/circ/empr/' . trim($opac_websubscribe_num_carte_auto_array[1]) . '.inc.php'; $num_carte_auto_fctname = trim($opac_websubscribe_num_carte_auto_array[1]); if (file_exists($num_carte_auto_filename)) { require_once $num_carte_auto_filename; if (function_exists($num_carte_auto_fctname)) { $pe_emprcb = $num_carte_auto_fctname(); } } } $rqt = "UPDATE empr SET empr_cb='{$pe_emprcb}' WHERE id_empr='{$id_empr}'"; $res = pmb_mysql_query($rqt, $dbh) or die(pmb_mysql_error() . "<br /><br />{$rqt}"); // envoyer le mail de demande de confirmation global $opac_biblio_name, $opac_biblio_email, $opac_url_base; $obj = str_replace("!!biblio_name!!", $opac_biblio_name, $msg[subs_mail_obj]); $corps = str_replace("!!biblio_name!!", $opac_biblio_name, $msg[subs_mail_corps]); $lien_validation = "<a href='" . $opac_url_base . "subscribe.php?subsact=validation&login={$f_login}&cle_validation={$cle_validation}'>" . $opac_url_base . "subscribe.php?subsact=validation&login={$f_login}&cle_validation={$cle_validation}</a>"; $corps = str_replace("!!lien_validation!!", $lien_validation, $corps); $headers = "MIME-Version: 1.0\n"; $headers .= "Content-type: text/html; charset=iso-8859-1\n"; $res_envoi = @mailpmb(trim(stripslashes($f_prenom . " " . $f_nom)), stripslashes($f_email), $obj, $corps, $opac_biblio_name, $opac_biblio_email, $headers); if (!$res_envoi) { $ret[0] = PBINSC_MAIL; $ret[1] = str_replace("!!f_email!!", $f_email, $msg[subs_pb_mail]); return $ret; } $ret[0] = PBINSC_OK; $ret[1] = str_replace("!!f_email!!", $f_email, $msg[subs_ok_inscrit]); $ret[1] = str_replace("!!nb_h_valid!!", $opac_websubscribe_valid_limit, $ret[1]); //alerte pour les utilisateurs $query_users = "select nom, prenom, user_email from users where user_email like('%@%') and user_alert_subscribemail=1"; $result_users = @pmb_mysql_query($query_users, $dbh); if ($result_users) { if (pmb_mysql_num_rows($result_users) > 0) { global $pmb_url_base; $obj = str_replace("!!biblio_name!!", $opac_biblio_name, $msg[subs_alert_user_mail_obj]); $obj = str_replace("!!empr_name!!", stripslashes($f_nom), $obj); $obj = str_replace("!!empr_first_name!!", stripslashes($f_prenom), $obj); $corps = str_replace("!!biblio_name!!", $opac_biblio_name, $msg[subs_alert_user_mail_corps]); $corps = str_replace("!!empr_name!!", stripslashes($f_nom), $corps); $corps = str_replace("!!empr_first_name!!", stripslashes($f_prenom), $corps); $empr_link = str_replace("!!pmb_url_base!!", $pmb_url_base, $msg[subs_alert_user_mail_empr_link]); $empr_link = str_replace("!!empr_cb!!", $pe_emprcb, $empr_link); $corps = str_replace("!!empr_link!!", $empr_link, $corps); while ($user = @pmb_mysql_fetch_object($result_users)) { @mailpmb(trim($user->prenom . " " . $user->nom), $user->user_email, $obj, $corps, $opac_biblio_name, $opac_biblio_email, $headers); } } } return $ret; } else { $ret[0] = PBINSC_BDD; $ret[1] = $msg[subs_pb_bdd]; return $ret; } }
<?php // +-------------------------------------------------+ // © 2002-2004 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net) // +-------------------------------------------------+ // $Id: delete.inc.php,v 1.12 2008-09-26 19:45:28 touraine37 Exp $ if (stristr($_SERVER['REQUEST_URI'], ".inc.php")) { die("no access"); } require_once "{$class_path}/bannette.class.php"; require_once "{$class_path}/emprunteur.class.php"; // suppression d'un lecteur if ($id) { $total = 0; $total = mysql_result(mysql_query("select count(1) from pret where pret_idempr='" . $id . "' ", $dbh), 0, 0); if ($total == 0) { emprunteur::del_empr($id); } else { error_message($msg[294], $msg[1709], 1, 'circ.php?categ=pret&form_cb=' . rawurlencode($form_cb)); $erreur = 1; } } if (!$erreur) { if ($groupID) { print "<script type=\"text/javascript\">\n\t\t\tdocument.location ='./circ.php?categ=groups&action=showgroup&groupID={$groupID}';\n \t</script>"; } else { get_cb($msg[13], $msg[34], $msg[circ_tit_form_cb_empr], './circ.php?categ=pret', 0); } }
function erase_exldap_users($uu) { $auu = explode(';', $uu); $nuu = count($auu); $n = 0; foreach ($auu as $u) { $cc = explode('|', $u); $id = $cc[0]; $res = emprunteur::del_empr($id); if ($res) { ++$n; } } // print "<h2> utenti exldap eliminati: $n su $nuu</h2>"; }
require_once "{$class_path}/editor.class.php"; require_once "{$class_path}/collection.class.php"; require_once "{$class_path}/subcollection.class.php"; require_once "{$class_path}/serie.class.php"; require_once "{$class_path}/indexint.class.php"; require_once "{$class_path}/category.class.php"; require_once "{$include_path}/notice_authors.inc.php"; require_once "{$include_path}/notice_categories.inc.php"; require_once "{$include_path}/expl_info.inc.php"; require_once "{$include_path}/explnum.inc.php"; require_once "{$include_path}/resa_func.inc.php"; require_once "{$include_path}/isbn.inc.php"; require_once "{$class_path}/docs_location.class.php"; require_once "{$class_path}/bannette.class.php"; if ($categ == 'pretrestrict' && $form_login && $form_password) { $query = "select id_empr, empr_cb from empr where empr_login='******' and empr_password='******' "; $result = pmb_mysql_query($query, $dbh); $id_empr = @pmb_mysql_result($result, '0', 'id_empr'); $form_cb = @pmb_mysql_result($result, '0', 'empr_cb'); if ($id_empr && $form_cb) { $categ = 'pret'; } } if (SESSrights & RESTRICTCIRC_AUTH) { $sub = ""; } switch ($categ) { case 'pret': echo window_title($database_window_title . $msg["5"] . " : " . $msg["13"]); switch ($sub) { case 'pret_prolongation':
function hashEmprPassword() { global $msg, $dbh, $charset, $PMBusername; if (SESSrights & ADMINISTRATION_AUTH) { $result .= "<h3>" . htmlentities($msg["hash_empr_password"], ENT_QUOTES, $charset) . "</h3>"; $rqt = "SHOW COLUMNS FROM empr LIKE 'empr_password_is_encrypted'"; $res = pmb_mysql_query($rqt, $dbh); if (pmb_mysql_num_rows($res)) { $empr = pmb_mysql_query("SELECT count(1) FROM empr where empr_password_is_encrypted=0", $dbh); $count = pmb_mysql_result($empr, 0, 0); $query = pmb_mysql_query("SELECT id_empr, empr_password, empr_login FROM empr where empr_password_is_encrypted=0"); if (pmb_mysql_num_rows($query)) { $requete = "CREATE TABLE if not exists empr_passwords (\n\t\t\t\t\tid_empr INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,\n\t\t\t\t\tempr_password VARCHAR( 255 ) NOT NULL default '')"; pmb_mysql_query($requete, $dbh); $requete = "INSERT INTO empr_passwords SELECT id_empr, empr_password FROM empr where empr_password_is_encrypted=0"; pmb_mysql_query($requete, $dbh); while ($row = pmb_mysql_fetch_object($query)) { emprunteur::update_digest($row->empr_login, $row->empr_password); emprunteur::hash_password($row->empr_login, $row->empr_password); } } $result .= $count . " " . htmlentities($msg['hash_empr_password_status_end'], ENT_QUOTES, $charset); } else { $result .= htmlentities($msg['pmb_v_db_pas_a_jour'], ENT_QUOTES, $charset); } } else { $result .= sprintf($msg["planificateur_rights_bad_user_rights"], $PMBusername); } return $result; }