id_bannette = $id+0;
$this->getData();
}
// ---------------------------------------------------------------
// getData() : récupération infos
// ---------------------------------------------------------------
public function getData() {
global $msg;
global $opac_bannette_priv_periodicite;
$this->periodicite = $opac_bannette_priv_periodicite;
$this->p_perso=new parametres_perso("notices");
if (!$this->id_bannette) {
// pas d'identifiant. on retourne un tableau vide
$this->date_last_envoi=today();
$this->aff_date_last_envoi=formatdate($this->date_last_envoi);
$this->date_last_envoi_sql=today();
} else {
$requete = "SELECT id_bannette, num_classement, nom_bannette,comment_gestion,comment_public,statut_not_account, ";
$requete .= "date_last_remplissage, date_format(date_last_remplissage, '".$msg["format_date_heure"]."') as aff_date_last_remplissage, ";
$requete .= "date_last_envoi,date_last_envoi as date_last_envoi_sql, date_format(date_last_envoi, '".$msg["format_date_heure"]."') as aff_date_last_envoi, ";
$requete .= "proprio_bannette,bannette_auto,periodicite,diffusion_email, nb_notices_diff, update_type, entete_mail, bannette_tpl_num, piedpage_mail, notice_tpl, num_panier, ";
$requete .= "limite_type, limite_nombre, typeexport, prefixe_fichier, param_export, group_type, group_pperso, display_notice_in_every_group, archive_number, ";
$requete .= "document_generate, document_notice_tpl, document_insert_docnum, document_group, document_add_summary, bannette_opac_accueil, bannette_aff_notice_number ";
$requete .= "FROM bannettes WHERE id_bannette='".$this->id_bannette."' " ;
$result = pmb_mysql_query($requete) or die ($requete." in bannette.class.php : ".pmb_mysql_error());
if(pmb_mysql_num_rows($result)) {
$temp = pmb_mysql_fetch_object($result);
$this->id_bannette = $temp->id_bannette ;
$this->num_classement = $temp->num_classement ;
$this->nom_bannette = $temp->nom_bannette ;
$this->comment_gestion = $temp->comment_gestion ;
$this->comment_public = $temp->comment_public ;
$this->bannette_tpl_num = $temp->bannette_tpl_num ;
$this->entete_mail = $temp->entete_mail ;
$this->piedpage_mail = $temp->piedpage_mail ;
$this->notice_tpl = $temp->notice_tpl ;
$this->date_last_remplissage= $temp->date_last_remplissage ;
$this->date_last_envoi = $temp->date_last_envoi ;
$this->aff_date_last_remplissage = $temp->aff_date_last_remplissage ;
$this->aff_date_last_envoi = $temp->aff_date_last_envoi ;
$this->date_last_envoi_sql = $temp->date_last_envoi_sql;
$this->proprio_bannette = $temp->proprio_bannette ;
$this->bannette_auto = $temp->bannette_auto ;
$this->periodicite = $temp->periodicite ;
$this->diffusion_email = $temp->diffusion_email ;
$this->nb_notices_diff = $temp->nb_notices_diff;
$this->update_type = $temp->update_type ;
$this->num_panier = $temp->num_panier ;
$this->limite_type = $temp->limite_type ;
$this->limite_nombre = $temp->limite_nombre ;
$this->typeexport = $temp->typeexport ;
$this->prefixe_fichier = $temp->prefixe_fichier ;
$this->group_pperso = $temp->group_pperso ;
$this->group_type = $temp->group_type;
$this->display_notice_in_every_group=$temp->display_notice_in_every_group;
$this->statut_not_account = $temp->statut_not_account ;
$this->archive_number = $temp->archive_number ;
$this->document_generate = $temp->document_generate ;
$this->document_notice_tpl = $temp->document_notice_tpl;
$this->document_insert_docnum= $temp->document_insert_docnum ;
$this->document_group = $temp->document_group ;
$this->document_add_summary = $temp->document_add_summary ;
$this->bannette_opac_accueil= $temp->bannette_opac_accueil ;
$this->bannette_aff_notice_number= $temp->bannette_aff_notice_number;
$this->param_export = unserialize($temp->param_export) ;
$this->compte_elements();
$requete = "SELECt nom_classement FROM classements WHERE id_classement='".$this->num_classement."'" ;
$resultclass = pmb_mysql_query($requete) or die ($requete." in bannette.class.php : ".pmb_mysql_error());
if ($temp = pmb_mysql_fetch_object($resultclass)) $this->nom_classement = $temp->nom_classement ;
else $this->nom_classement = "" ;
$rqt = "select * from bannette_empr_groupes where empr_groupe_num_bannette = '".$this->id_bannette."'";
$res = pmb_mysql_query($rqt);
if(pmb_mysql_num_rows($res)){
while($row = pmb_mysql_fetch_object($res)){
$this->groupe_lecteurs[] = $row->empr_groupe_num_groupe;
}
}
$rqt = "select * from bannette_empr_categs where empr_categ_num_bannette = '".$this->id_bannette."'";
$res = pmb_mysql_query($rqt);
if(pmb_mysql_num_rows($res)){
while($row = pmb_mysql_fetch_object($res)){
$this->categorie_lecteurs[] = $row->empr_categ_num_categ;
}
}
}
}
$this->bannette_descriptors = new bannette_descriptors($this->id_bannette);
$this->bannette_equations = new bannette_equations($this->id_bannette);
}
public function gen_facette_selection(){
$facette = new bannette_facettes($this->id_bannette);
return $facette->gen_facette_selection();
}
// ---------------------------------------------------------------
// show_form : affichage du formulaire de saisie
// ---------------------------------------------------------------
public function show_form($type="pro") {
global $msg, $charset;
global $dsi_bannette_form;
global $dsi_bannette_form_abo, $dsi_bannette_form_selvars;
global $nom_prenom_abo;
global $dsi_bannette_notices_template, $PMBuserid;
global $form_cb, $id_classement;
global $page, $nbr_lignes, $nb_per_page;
if ($type=="abo") $dsi_bannette_form = $dsi_bannette_form_abo ;
if($this->id_bannette) {
$link_pagination = "";
if($page > 1) {
$link_pagination .= "&page=".$page."&nbr_lignes=".$nbr_lignes."&nb_per_page=".$nb_per_page;
}
$action = "./dsi.php?categ=bannettes&sub=$type&id_bannette=$this->id_bannette&suite=update&id_classement=$id_classement&form_cb=$form_cb$link_pagination";
$link_duplicate = "";
$link_annul = "";
$button_delete = "";
$libelle = $msg['dsi_ban_form_modif'];
} else {
$action = "./dsi.php?categ=bannettes&sub=$type&id_bannette=0&suite=update";
$link_duplicate = "";
$link_annul = "";
$libelle = $msg['dsi_ban_form_creat'];
$button_delete ="";
if ($this->id_bannette_origine) { //On vient d'une duplication
$origine_bannette = new bannette($this->id_bannette_origine) ;
$this->notice_tpl=$origine_bannette->notice_tpl;
} else {
$this->notice_tpl=$dsi_bannette_notices_template;
}
}
$bannette_tpl_list=bannette_tpl::gen_tpl_select("bannette_tpl_num",$this->bannette_tpl_num);
$dsi_bannette_form = str_replace('!!libelle!!', $libelle, $dsi_bannette_form);
$dsi_bannette_form = str_replace('!!type!!', $type, $dsi_bannette_form);
$dsi_bannette_form = str_replace('!!id_bannette!!', $this->id_bannette, $dsi_bannette_form);
$dsi_bannette_form = str_replace('!!action!!', $action, $dsi_bannette_form);
$dsi_bannette_form = str_replace('!!link_duplicate!!', $link_duplicate, $dsi_bannette_form);
$dsi_bannette_form = str_replace('!!link_annul!!', $link_annul, $dsi_bannette_form);
$dsi_bannette_form = str_replace('!!nom_bannette!!', htmlentities($this->nom_bannette,ENT_QUOTES, $charset), $dsi_bannette_form);
if ($type=="pro") $dsi_bannette_form = str_replace('!!num_classement!!', show_classement_utilise ('BAN', $this->num_classement, 0), $dsi_bannette_form);
else $dsi_bannette_form = str_replace('!!num_classement!!', "", $dsi_bannette_form);
global $id_empr ;
$dsi_bannette_form = str_replace('!!id_empr!!', $id_empr, $dsi_bannette_form);
$dsi_bannette_form = str_replace('!!comment_gestion!!', htmlentities($this->comment_gestion,ENT_QUOTES, $charset), $dsi_bannette_form);
$dsi_bannette_form = str_replace('!!comment_public!!', htmlentities($this->comment_public,ENT_QUOTES, $charset), $dsi_bannette_form);
$dsi_bannette_form = str_replace('!!bannette_tpl_list!!', $bannette_tpl_list, $dsi_bannette_form);
$dsi_bannette_form = str_replace('!!entete_mail!!', htmlentities($this->entete_mail,ENT_QUOTES, $charset), $dsi_bannette_form);
$dsi_bannette_form = str_replace('!!piedpage_mail!!', htmlentities($this->piedpage_mail,ENT_QUOTES, $charset), $dsi_bannette_form);
$dsi_bannette_form = str_replace('!!date_last_remplissage!!', htmlentities($this->aff_date_last_remplissage,ENT_QUOTES, $charset), $dsi_bannette_form);
$date_clic = "onClick=\"openPopUp('./select.php?what=calendrier&caller=saisie_bannette&date_caller=".substr(preg_replace('/-/', '', $this->date_last_envoi),0,8)."¶m1=form_date_last_envoi¶m2=form_aff_date_last_envoi&auto_submit=NO&date_anterieure=YES', 'calendar')\" ";
$date_last_envoi = "
date_last_envoi)))."' />
";
$dsi_bannette_form = str_replace('!!date_last_envoi!!', $date_last_envoi, $dsi_bannette_form);
$dsi_bannette_form = str_replace('!!archive_number!!', $this->archive_number, $dsi_bannette_form);
if ($type=="pro") $dsi_bannette_form = str_replace('!!proprio_bannette!!', htmlentities($msg['dsi_ban_no_proprio'],ENT_QUOTES, $charset), $dsi_bannette_form);
else $dsi_bannette_form = str_replace('!!proprio_bannette!!', htmlentities($nom_prenom_abo,ENT_QUOTES, $charset), $dsi_bannette_form);
if ($this->bannette_auto) $dsi_bannette_form = str_replace('!!bannette_auto!!', "checked", $dsi_bannette_form);
else $dsi_bannette_form = str_replace('!!bannette_auto!!', "", $dsi_bannette_form);
$dsi_bannette_form = str_replace('!!periodicite!!', htmlentities($this->periodicite,ENT_QUOTES, $charset), $dsi_bannette_form);
if ($this->diffusion_email) $dsi_bannette_form = str_replace('!!diffusion_email!!', "checked='checked'", $dsi_bannette_form);
else $dsi_bannette_form = str_replace('!!diffusion_email!!', "", $dsi_bannette_form);
$dsi_bannette_form = str_replace('!!nb_notices_diff!!', htmlentities($this->nb_notices_diff,ENT_QUOTES, $charset), $dsi_bannette_form);
$dsi_bannette_form = str_replace('!!notice_tpl!!', notice_tpl_gen::gen_tpl_select("notice_tpl",$this->notice_tpl), $dsi_bannette_form);
if ($this->statut_not_account) $dsi_bannette_form = str_replace('!!statut_not_account!!', "checked", $dsi_bannette_form);
else $dsi_bannette_form = str_replace('!!statut_not_account!!', "", $dsi_bannette_form);
// group_type, group_pperso, group_facettes
if($this->group_type){
$dsi_bannette_form = str_replace('!!checked_group_facette!!', " checked='checked' ", $dsi_bannette_form);
$dsi_bannette_form = str_replace('!!checked_group_pperso!!', "", $dsi_bannette_form);
}else{
$dsi_bannette_form = str_replace('!!checked_group_facette!!', "", $dsi_bannette_form);
$dsi_bannette_form = str_replace('!!checked_group_pperso!!', " checked='checked' ", $dsi_bannette_form);
}
$dsi_bannette_form = str_replace('!!bannette_aff_notice_number!!', ($this->bannette_aff_notice_number ? " checked='checked' " : ""), $dsi_bannette_form);
$liste_p_perso = $this->p_perso->gen_liste_field("group_pperso",$this->group_pperso,$msg["dsi_ban_form_regroupe_pperso_no"]);
$dsi_bannette_form = str_replace('!!pperso_group!!', $liste_p_perso, $dsi_bannette_form);
if ($this->id_bannette_origine) { //On vient d'une duplication
$origine_bannette = new bannette($this->id_bannette_origine) ;
$dsi_bannette_form = str_replace('!!facette_group!!', $origine_bannette->gen_facette_selection(), $dsi_bannette_form);
} else {
$dsi_bannette_form = str_replace('!!facette_group!!', $this->gen_facette_selection(), $dsi_bannette_form);
}
$dsi_bannette_form = str_replace("!!display_notice_in_every_group!!", ($this->display_notice_in_every_group ? "checked='checked'" : ""), $dsi_bannette_form);
if ($type=="pro") {
$requete = 'SELECT id_categ_empr, libelle, IF(empr_categ_num_categ IS NULL, 0,1) as inscription FROM empr_categ
left join bannette_empr_categs on (id_categ_empr=empr_categ_num_categ and empr_categ_num_bannette=' . $this->id_bannette . ' )
ORDER BY libelle';
$categ_lect_aff = gen_liste_multiple ($requete, "id_categ_empr", "libelle", "inscription", "categorie_lecteurs[]", '', 1, 0, $msg['dsi_ban_aucune_categ'], -1,$msg['dsi_all_empr_categ'], 5) ;
$dsi_bannette_form = str_replace('!!categorie_lecteurs!!', $categ_lect_aff, $dsi_bannette_form);
$requete = 'SELECT id_groupe, libelle_groupe, IF(empr_groupe_num_groupe IS NULL, 0,1) as inscription FROM groupe
left join bannette_empr_groupes on (id_groupe=empr_groupe_num_groupe and empr_groupe_num_bannette=' . $this->id_bannette . ' )
ORDER BY libelle_groupe';
$groupe_lect_aff = gen_liste_multiple ($requete, "id_groupe", "libelle_groupe", "inscription", "groupe_lecteurs[]", '', 1, 0, $msg['empr_form_aucungroupe'], 0,'', 5) ;
$dsi_bannette_form = str_replace('!!groupe_lecteurs!!', $groupe_lect_aff, $dsi_bannette_form);
} else {
$dsi_bannette_form = str_replace('!!categorie_lecteurs!!', "", $dsi_bannette_form);
$dsi_bannette_form = str_replace('!!groupe_lecteurs!!', "", $dsi_bannette_form);
}
$dsi_bannette_form = str_replace('!!desc_fields!!', $this->bannette_descriptors->get_form(), $dsi_bannette_form);
$requete = "SELECT idcaddie, name FROM caddie where type='NOTI' ";
if ($PMBuserid!=1) $requete.=" and (autorisations='$PMBuserid' or autorisations like '$PMBuserid %' or autorisations like '% $PMBuserid %' or autorisations like '% $PMBuserid') ";
$requete.=" ORDER BY name ";
$panier_bann_aff = gen_liste ($requete, "idcaddie", "name", "num_panier", "", $this->num_panier, 0, $msg['dsi_panier_aucun'], 0,$msg['dsi_panier_aucun'], 0) ;
$dsi_bannette_form = str_replace('!!num_panier!!', $panier_bann_aff, $dsi_bannette_form);
$limite_type = "";
$dsi_bannette_form = str_replace('!!limite_type!!', $limite_type, $dsi_bannette_form);
$dsi_bannette_form = str_replace('!!limite_nombre!!', $this->limite_nombre, $dsi_bannette_form);
// update_type: se baser sur la date de création ou la date de mise à jour des notices ?
$update_type = "";
$dsi_bannette_form = str_replace('!!update_type!!', $update_type, $dsi_bannette_form);
$exp = start_export::get_exports();
$liste_exports = "" ;
$dsi_bannette_form = str_replace('!!typeexport!!', $liste_exports, $dsi_bannette_form);
$dsi_bannette_form = str_replace('!!prefixe_fichier!!', $this->prefixe_fichier, $dsi_bannette_form);
$dsi_bannette_form = str_replace('!!bannette_opac_accueil_check!!', ($this->bannette_opac_accueil ? "checked='checked'" : ""), $dsi_bannette_form);
$dsi_bannette_form = str_replace('!!document_generate!!', ($this->document_generate ? "checked='checked'" : ""), $dsi_bannette_form);
$dsi_bannette_form = str_replace('!!document_notice_tpl!!', notice_tpl_gen::gen_tpl_select("document_notice_tpl",$this->document_notice_tpl), $dsi_bannette_form);
$dsi_bannette_form = str_replace('!!document_insert_docnum!!', ($this->document_insert_docnum ? "checked='checked'" : ""), $dsi_bannette_form);
$dsi_bannette_form = str_replace('!!document_group!!', ($this->document_group ? "checked='checked'" : ""), $dsi_bannette_form);
$dsi_bannette_form = str_replace('!!document_add_summary!!', ($this->document_add_summary ? "checked='checked'" : ""), $dsi_bannette_form);
$dsi_bannette_form = str_replace('!!delete!!', $button_delete, $dsi_bannette_form);
// afin de revenir où on était : $form_cb, le critère de recherche
$dsi_bannette_form = str_replace('!!form_cb!!', $form_cb, $dsi_bannette_form);
if($this->param_export) {
$param=new export_param(EXP_DSI_CONTEXT, $this->param_export);
} else {
$param=new export_param(EXP_DEFAULT_GESTION);
}
$dsi_bannette_form = str_replace('!!display_liste_param!!', (!$this->typeexport ? 'display:none' : ''), $dsi_bannette_form);
$dsi_bannette_form = str_replace('!!form_param!!', $param->check_default_param(), $dsi_bannette_form);
//ajout champs emprunteur
$dsi_bannette_form = str_replace('!!info_empr!!', $dsi_bannette_form_selvars, $dsi_bannette_form);
print $dsi_bannette_form;
}
public function set_properties_from_form() {
global $num_classement, $nom_bannette, $comment_gestion, $comment_public;
global $entete_mail, $piedpage_mail, $notice_tpl;
global $id_empr;
global $bannette_auto, $periodicite, $diffusion_email, $statut_not_account, $dsi_private_bannette_nb_notices;
global $categorie_lecteurs, $groupe_lecteurs;
global $update_type, $date_last_envoi, $num_panier;
global $limite_type, $limite_nombre, $typeexport, $prefixe_fichier;
global $group_pperso, $display_notice_in_every_group, $archive_number, $group_type;
global $document_generate, $document_notice_tpl, $document_insert_docnum, $document_group, $document_add_summary;
global $bannette_opac_accueil,$bannette_tpl_num, $bannette_aff_notice_number;
global $genere_lien, $mere, $fille, $notice_mere, $notice_fille, $art_link, $bull_link, $perio_link, $bulletinage, $notice_art, $notice_perio;
global $empr_nom, $empr_prenom;
$this->num_classement = $num_classement+0;
if($this->id_bannette) {
$this->nom_bannette = stripslashes($nom_bannette);
$this->comment_gestion = stripslashes($nom_bannette);
} else {
$this->nom_bannette = $empr_nom." ".$empr_prenom.' > '.stripslashes($nom_bannette);
$this->comment_gestion = $empr_nom." ".$empr_prenom.' > '.stripslashes($nom_bannette);
}
$this->comment_public = stripslashes($nom_bannette);
$this->get_entete_mail();
// $this->notice_tpl = $notice_tpl+0;
$this->proprio_bannette = $id_empr+0;
$this->bannette_auto = 1;
$this->periodicite = (!$periodicite || $periodicite>200 ? 15 : $periodicite*1);
$this->diffusion_email = 1;
// $this->statut_not_account = $statut_not_account+0;
$this->nb_notices_diff = $dsi_private_bannette_nb_notices+0;
$this->categorie_lecteurs = array();
$this->groupe_lecteurs = array();
// $this->update_type = 'C';
$this->date_last_envoi = $date_last_envoi;
$this->num_panier = $num_panier+0;
// $this->limite_type = stripslashes($limite_type);
// $this->limite_nombre = $limite_nombre+0;
$this->typeexport = stripslashes($typeexport);
$this->prefixe_fichier = stripslashes($nom_bannette);
$this->group_pperso = stripslashes($group_pperso);
$this->display_notice_in_every_group = $display_notice_in_every_group+0;
$this->archive_number = $archive_number+0;
$this->group_type = $group_type+0;
$this->document_generate = $document_generate+0;
$this->document_notice_tpl = $document_notice_tpl+0;
$this->document_insert_docnum = $document_insert_docnum+0;
$this->document_group = $document_group+0;
$this->document_add_summary = $document_add_summary+0;
$this->bannette_opac_accueil= $bannette_opac_accueil+0;
$this->bannette_tpl_num = $bannette_tpl_num+0;
$this->bannette_aff_notice_number = $bannette_aff_notice_number+0;
if(!$this->id_bannette) {
$this->param_export=array("genere_lien" => $genere_lien+0,
"mere" => $mere+0,
"fille" => $fille+0,
"notice_mere" => $notice_mere+0,
"notice_fille" => $notice_fille+0,
"art_link" => $art_link+0,
"bull_link" => $bull_link+0,
"perio_link" => $perio_link+0,
"bulletinage" => $bulletinage+0,
"notice_art" => $notice_art+0,
"notice_perio" => $notice_perio+0);
}
}
// ---------------------------------------------------------------
// save
// ---------------------------------------------------------------
public function save() {
global $msg;
if ($this->id_bannette) {
// update
$req = "UPDATE bannettes set ";
$clause = " WHERE id_bannette='".$this->id_bannette."'";
} else {
$req = "insert into bannettes set date_last_remplissage=sysdate(), ";
$clause = "";
}
$req.="num_classement='".$this->num_classement."',";
$req.="nom_bannette='".addslashes($this->nom_bannette)."',";
$req.="comment_gestion='".addslashes($this->comment_gestion)."',";
$req.="comment_public='".addslashes($this->comment_public)."',";
$req.="bannette_tpl_num='".$this->bannette_tpl_num."',";
$req.="entete_mail='".addslashes($this->entete_mail)."',";
$req.="piedpage_mail='".addslashes($this->piedpage_mail)."',";
$req.="notice_tpl='".$this->notice_tpl."',";
$req.="proprio_bannette='".$this->proprio_bannette."',";
$req.="bannette_auto='".$this->bannette_auto."',";
$req.="periodicite='".$this->periodicite."',";
$req.="diffusion_email='".$this->diffusion_email."',";
$req.="statut_not_account='".$this->statut_not_account."',";
$req.="nb_notices_diff='".$this->nb_notices_diff."',";
$req.="update_type='".$this->update_type."',";
$req.="num_panier='".$this->num_panier."',";
$req.="limite_type='".$this->limite_type."',";
$req.="limite_nombre='".$this->limite_nombre."',";
$req.="typeexport='".$this->typeexport."',";
$req.="prefixe_fichier='".$this->prefixe_fichier."',";
$req.="group_type='".$this->group_type."',";
$req.="group_pperso='".$this->group_pperso."',";
$req.="display_notice_in_every_group='".$this->display_notice_in_every_group."',";
$req.="archive_number='".$this->archive_number."',";
$req.="param_export='".addslashes(serialize($this->param_export))."',";
$req.="document_generate='".$this->document_generate."',";
$req.="document_notice_tpl='".$this->document_notice_tpl."',";
$req.="document_insert_docnum='".$this->document_insert_docnum."',";
$req.="document_group='".$this->document_group."',";
$req.="document_add_summary='".$this->document_add_summary."',";
$req.="bannette_opac_accueil='".$this->bannette_opac_accueil."',";
$req.="bannette_aff_notice_number='".$this->bannette_aff_notice_number."',";
if (!$this->date_last_envoi) $req.="date_last_envoi=sysdate() ";
else $req.="date_last_envoi='".construitdateheuremysql($this->date_last_envoi)."' ";
$req.=$clause ;
$res = pmb_mysql_query($req);
if (!$this->id_bannette) $this->id_bannette = pmb_mysql_insert_id() ;
$del = "delete from bannette_empr_groupes where empr_groupe_num_bannette = '".$this->id_bannette."'";
pmb_mysql_query($del);
if(count($this->groupe_lecteurs))
for($i=0 ; $igroupe_lecteurs) ; $i++){
$id_groupe=$this->groupe_lecteurs[$i]*1;
$rqt = "insert into bannette_empr_groupes set empr_groupe_num_bannette = '".$this->id_bannette."', empr_groupe_num_groupe = '".$id_groupe."' ";
pmb_mysql_query($rqt);
}
$del = "delete from bannette_empr_categs where empr_categ_num_bannette = '".$this->id_bannette."'";
pmb_mysql_query($del);
if(count($this->categorie_lecteurs)){
$this->categorie_lecteurs=$this->categorie_lecteurs;
if($this->categorie_lecteurs[0]==-1){
$this->categorie_lecteurs=array();
$rqt = "SELECT id_categ_empr FROM empr_categ";
$res=pmb_mysql_query($rqt);
if(pmb_mysql_num_rows($res)){
while($row = pmb_mysql_fetch_object($res)){
$this->categorie_lecteurs[] = $row->id_categ_empr;
}
}
}
for($i=0 ; $icategorie_lecteurs) ; $i++){
$id_categ=$this->categorie_lecteurs[$i]*1;
$rqt = "insert into bannette_empr_categs set empr_categ_num_bannette = '".$this->id_bannette."', empr_categ_num_categ = '".$id_categ."' ";
pmb_mysql_query($rqt);
}
}else{
$this->categorie_lecteurs=array();
}
$this->bannette_descriptors->set_properties_from_form();
$this->bannette_descriptors->save();
$facette = new bannette_facettes($this->id_bannette);
$facette->save();
}
// ---------------------------------------------------------------
// delete() : suppression
// ---------------------------------------------------------------
public function delete() {
global $msg;
$requete = "delete from bannette_abon WHERE num_bannette='$this->id_bannette'";
pmb_mysql_query($requete);
$requete = "delete from bannette_contenu WHERE num_bannette='$this->id_bannette'";
pmb_mysql_query($requete);
$requete = "delete from bannettes WHERE id_bannette='$this->id_bannette'";
pmb_mysql_query($requete);
bannette_descriptors::delete($this->id_bannette);
bannette_equations::delete($this->id_bannette);
$facette = new bannette_facettes($this->id_bannette);
$facette->delete();
$del = "delete from bannette_empr_groupes where empr_groupe_num_bannette = '".$this->id_bannette."'";
pmb_mysql_query($del);
$del = "delete from bannette_empr_categs where empr_categ_num_bannette = '".$this->id_bannette."'";
pmb_mysql_query($del);
}
protected function get_records_over_days() {
$query = "select num_notice from bannette_contenu WHERE num_bannette='$this->id_bannette' and ";
$query .= " date_add(date_ajout, INTERVAL ".$this->limite_nombre." DAY) >= sysdate() ";
$result = pmb_mysql_query($query);
$tab = array();
while ($row=pmb_mysql_fetch_object($result)) {
$tab[] = $row->num_notice ;
}
return $tab;
}
protected function get_records_limit() {
$tab = array();
// selection des ## dernières notices, celles qu'il faut absolument garder
$requete = "select num_notice from bannette_contenu, notices WHERE num_bannette='".$this->id_bannette."' and notice_id=num_notice order by date_ajout DESC, update_date DESC ";
$requete .= " limit $this->limite_nombre ";
$res = pmb_mysql_query($requete);
while ($obj=pmb_mysql_fetch_object($res)) {
$tab[]=$obj->num_notice ;
}
// selection des notices ajoutées depuis moins d'un jour
$requete = "select num_notice from bannette_contenu WHERE num_bannette='".$this->id_bannette."' and ";
$requete .= " date_add(date_ajout, INTERVAL 1 DAY)>=sysdate() ";
$res = pmb_mysql_query($requete);
while ($obj=pmb_mysql_fetch_object($res)) {
$tab[]=$obj->num_notice ;
}
return $tab;
}
// ---------------------------------------------------------------
// purger() : après remplissage, vider ce qui dépasse selon le type de cumul de la bannette
// ---------------------------------------------------------------
public function purger() {
global $msg;
global $gestion_acces_active,$gestion_acces_empr_notice;
//purge pour les bannettes privees des notices ne devant pas etre diffusees
if ($this->proprio_bannette && $gestion_acces_active==1 && $gestion_acces_empr_notice==1){
$ac = new acces();
$dom_2 = $ac->setDomain(2);
$acces_j = $dom_2->getJoin($this->proprio_bannette,'4=0','num_notice');
$q="delete from bannette_contenu using bannette_contenu $acces_j WHERE num_bannette='$this->id_bannette' ";
pmb_mysql_query($q);
}
$tab = array();
switch ($this->limite_type) {
case "D":
$records = $this->get_records_over_days();
break;
case "I":
$records = $this->get_records_limit();
break;
}
if(count($tab)) {
$notice_suppr=implode(",",$records);
if ($this->num_panier) {
$requete = "delete from caddie_content WHERE caddie_id='$this->num_panier' and object_id not in (".$notice_suppr.") ";
$res = pmb_mysql_query($requete);
}
$requete = "delete from bannette_contenu WHERE num_bannette='$this->id_bannette' and num_notice not in (".$notice_suppr.") ";
$res = pmb_mysql_query($requete);
}
$this->compte_elements() ;
}
// ---------------------------------------------------------------
// vider() : vider le contenu de la bannette
// ---------------------------------------------------------------
public function vider() {
$requete = "delete from bannette_contenu WHERE num_bannette='".$this->id_bannette."'";
pmb_mysql_query($requete);
$requete = "delete from caddie_content WHERE caddie_id='".$this->num_panier."'";
pmb_mysql_query($requete);
$this->compte_elements() ;
}
// ---------------------------------------------------------------
// remplir() : remplir la bannette à partir des équations
// ---------------------------------------------------------------
public function remplir() {
global $msg;
global $gestion_acces_active,$gestion_acces_empr_notice;
// récupérer les équations associées à la bannette
$equations = $this->bannette_equations->get_equations() ;
$res_affichage = "
" ;
if ($this->update_type=="C") $colonne_update_create="create_date";
else $colonne_update_create="update_date";
for ($i=0 ; $i < sizeof($equations) ; $i++) {
// pour chaque équation ajouter les notices trouvées au contenu de la bannette
$equ = new equation ($equations[$i]) ;
$search = new search() ;
$search->unserialize_search($equ->requete) ;
$table = $search->make_search() ;
$temp_requete = "insert into bannette_contenu (num_bannette, num_notice) (select ".$this->id_bannette." , notices.notice_id from $table , notices, notice_statut where notices.$colonne_update_create>='".$this->date_last_envoi."' and $table.notice_id=notices.notice_id and statut=id_notice_statut and ((notice_visible_opac=1 and notice_visible_opac_abon=0) or (notice_visible_opac_abon=1 and notice_visible_opac=1)) limit 300) " ;
@pmb_mysql_query($temp_requete);
$res_affichage .= "