source: pmb4.1/trunk/fuentes/pmb/classes/abts_modeles.class.php @ 478

Last change on this file since 478 was 478, checked in by mabarracus, 5 years ago

copy trusty code 4.1

  • Property svn:executable set to *
File size: 39.5 KB
Line 
1<?php
2// +-------------------------------------------------+
3// | 2002-2007 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net)
4// +-------------------------------------------------+
5// $Id: abts_modeles.class.php,v 1.35 2012-09-28 07:36:00 dgoron Exp $
6
7if (stristr($_SERVER['REQUEST_URI'], ".class.php")) die("no access");
8
9require_once($include_path."/templates/abts_modeles.tpl.php");
10require_once($class_path."/serial_display.class.php");
11require_once($include_path."/abts_func.inc.php");
12require_once($class_path."/abts_abonnements.class.php");
13
14class abts_modele {
15        var $modele_id; //Numéro du modèle
16        var $modele_name; //Nom du modèle
17        var $num_notice; //numéro de la notice liée
18        var $num_periodicite; //Identifiant de la périodicité
19        var $duree_abonnement; //Durée de l'abonnement
20        var $date_debut; //Date de début de validité du modèle
21        var $date_fin; //Date de fin de validité du modèle
22        var $days; //Jours de la semaine exclus
23        var $day_month; //Jours du mois exclus
24        var $week_month; //Semaine du mois exclue
25        var $week_year; //Semaine de l'année exclue
26        var $month_year; //Mois dans l'année exclu
27        var $error; //Erreur
28        var $error_message; //Message d'erreur
29       
30        function abts_modele($modele_id="") {
31                if ($modele_id) {
32                        $requete="select * from abts_modeles where modele_id=".$modele_id;
33                        $resultat=mysql_query($requete);
34                        if (mysql_num_rows($resultat)) {
35                                $r=mysql_fetch_object($resultat);
36                                $this->modele_id=$r->modele_id;
37                                $this->modele_name=$r->modele_name;
38                                $this->num_notice=$r->num_notice;
39                                $this->num_periodicite=$r->num_periodicite;
40                                $this->duree_abonnement=$r->duree_abonnement;
41                                $this->date_debut=$r->date_debut;
42                                $this->date_fin=$r->date_fin;
43                                $this->days=$r->days;
44                                $this->day_month=$r->day_month;
45                                $this->week_month=$r->week_month;
46                                $this->week_year=$r->week_year;
47                                $this->month_year=$r->month_year;                       
48                               
49                                $this->num_cycle = $r->num_cycle;                               
50                                $this->num_combien = $r->num_combien;
51                       
52                                $this->num_increment = $r->num_increment;
53                                $this->num_date_unite = $r->num_date_unite;
54                                $this->num_increment_date = $r->num_increment_date;
55                                                               
56                                $this->num_depart = $r->num_depart;
57                                $this->vol_actif = $r->vol_actif;
58                                $this->vol_increment = $r->vol_increment;
59                                $this->vol_date_unite = $r->vol_date_unite;
60                                $this->vol_increment_numero = $r->vol_increment_numero;
61                                $this->vol_increment_date = $r->vol_increment_date;
62                                $this->vol_cycle = $r->vol_cycle;
63                                $this->vol_combien = $r->vol_combien;
64                                $this->vol_depart = $r->vol_depart;
65                                $this->tom_actif = $r->tom_actif;       
66                                $this->tom_increment = $r->tom_increment;
67                                $this->tom_date_unite = $r->tom_date_unite;
68                                $this->tom_increment_numero = $r->tom_increment_numero;
69                                $this->tom_increment_date = $r->tom_increment_date;
70                                $this->tom_cycle = $r->tom_cycle;
71                                $this->tom_combien = $r->tom_combien;
72                                $this->tom_depart = $r->tom_depart;
73                                $this->format_aff = $r->format_aff;
74                                $this->format_periode = $r->format_periode;
75                        } else {
76                                $this->error=true;
77                                $this->error_message="Le modèle demandé n'existe pas";
78                        }
79                }
80        }
81       
82        function getData() {
83        if ($this->modele_id) {
84                        $requete="select * from abts_modeles where modele_id=".$this->modele_id;
85                        $resultat=mysql_query($requete);
86                        if (mysql_num_rows($resultat)) {
87                                $r=mysql_fetch_object($resultat);                               
88                                $this->modele_name=$r->modele_name;
89                                $this->num_notice=$r->num_notice;
90                                $this->num_periodicite=$r->num_periodicite;
91                                $this->duree_abonnement=$r->duree_abonnement;
92                                $this->date_debut=$r->date_debut;
93                                $this->date_fin=$r->date_fin;
94                                $this->days=$r->days;
95                                $this->day_month=$r->day_month;
96                                $this->week_month=$r->week_month;
97                                $this->week_year=$r->week_year;
98                                $this->month_year=$r->month_year;                       
99                               
100                                $this->num_cycle = $r->num_cycle;                               
101                                $this->num_combien = $r->num_combien;
102                                $this->num_increment = $r->num_increment;
103                                $this->num_date_unite = $r->num_date_unite;
104                                $this->num_increment_date = $r->num_increment_date;
105                                       
106                                $this->num_depart = $r->num_depart;
107                                $this->vol_actif = $r->vol_actif;
108                                $this->vol_increment = $r->vol_increment;
109                                $this->vol_date_unite = $r->vol_date_unite;
110                                $this->vol_increment_numero = $r->vol_increment_numero;
111                                $this->vol_increment_date = $r->vol_increment_date;
112                                $this->vol_cycle = $r->vol_cycle;
113                                $this->vol_combien = $r->vol_combien;
114                                $this->vol_depart = $r->vol_depart;
115                                $this->tom_actif = $r->tom_actif;       
116                                $this->tom_increment = $r->tom_increment;
117                                $this->tom_date_unite = $r->tom_date_unite;
118                                $this->tom_increment_numero = $r->tom_increment_numero;
119                                $this->tom_increment_date = $r->tom_increment_date;
120                                $this->tom_cycle = $r->tom_cycle;
121                                $this->tom_combien = $r->tom_combien;
122                                $this->tom_depart = $r->tom_depart;
123                                $this->format_aff = $r->format_aff;
124                                $this->format_periode = $r->format_periode;
125                               
126                        } else {
127                                $this->error=true;
128                                $this->error_message="Le modèle demandé n'existe pas";
129                        }
130                }
131        }
132       
133        function set_perio($num_notice) {
134                $this->num_notice=0;
135                $requete="select niveau_biblio from notices where notice_id=".$num_notice;
136                $resultat=mysql_query($requete);
137                if (mysql_num_rows($resultat)) {
138                        if (mysql_result($resultat,0,0)=="s")
139                                $this->num_notice=$num_notice;
140                } else {
141                        $this->error=true;
142                        $this->error_message="La notice liée n'existe pas ou n'est pas un périodique";
143                }
144        }
145       
146        function show_modele() {
147                global $modele_view,$serial_id;
148                $perio=new serial_display($this->num_notice,1);
149                $r=$modele_view;
150                $r=str_replace("!!view_id_modele!!","catalog.php?categ=serials&sub=modele&serial_id=$serial_id&modele_id=$this->modele_id",$r);
151                $r=str_replace("!!id_modele!!",$this->modele_id,$r);
152                $r=str_replace("!!modele_header!!",$this->modele_name,$r);
153               
154                $r=str_replace("!!num_periodicite!!",pmb_sql_value("SELECT libelle from abts_periodicites where periodicite_id='".$this->num_periodicite."'"),$r);
155                $r=str_replace("!!duree_abonnement!!",$this->duree_abonnement,$r);
156                $r=str_replace("!!date_debut!!",format_date($this->date_debut),$r);
157                $r=str_replace("!!date_fin!!",format_date($this->date_fin),$r);
158                                                                                                       
159                $r=str_replace("!!nombre_de_series!!",pmb_sql_value("select sum(nombre_recu) from abts_grille_modele where num_modele='$this->modele_id' and type_serie ='1'"),$r);
160                $r=str_replace("!!nombre_de_horsseries!!",pmb_sql_value("select sum(nombre_recu) from abts_grille_modele where num_modele='$this->modele_id' and type_serie ='2'"),$r);
161                       
162                return $r;
163        }
164       
165        function show_form() {
166                global $modele_form;
167                global $serial_header;
168                global $msg;
169                global $charset;
170                global $tpl_del_bouton,$tpl_copy_bouton;
171               
172                $r=$serial_header.$modele_form;
173               
174                if (!$this->modele_id) {
175                        $r=str_replace('!!page_title!!', $msg[4000].$msg[1003].$msg["abts_modeles_add_title"], $r);
176                        $r=str_replace('!!libelle_form!!', $msg["abts_modeles_add_title"], $r);
177                        // Valeur par défaut
178                        $this->duree_abonnement= 12;           
179                        $this->num_cycle = 0;
180                        $this->num_combien = 12;
181                       
182                        $this->num_increment = 0;
183                        $this->num_date_unite = 1;
184                        $this->num_increment_date = 12;
185                               
186                        $this->num_depart = 1;
187                        $this->vol_actif = 0;
188                        $this->vol_increment = 0;
189                        $this->vol_date_unite = 1; //mois
190                        $this->vol_increment_numero = 12;
191                        $this->vol_increment_date = 12;
192                        $this->vol_cycle = 0;
193                        $this->vol_combien = 1;
194                        $this->vol_depart = 1;
195                        $this->tom_actif = 0;   
196                        $this->tom_increment = 10;
197                        $this->tom_date_unite = 2;
198                        $this->tom_increment_numero = 1;
199                        $this->tom_increment_date = 1;
200                        $this->tom_cycle = 0;
201                        $this->tom_combien = 1;
202                        $this->tom_depart = 1;
203                        $this->format_aff = sprintf($msg['abts_no'],"\$NUM;");
204                        $this->format_periode = "#date(\$DATE;);";
205                } else {
206                        $r=str_replace('!!page_title!!', $msg[4000].$msg[1003].$msg["abts_modeles_modify_title"], $r);
207                        $r=str_replace('!!libelle_form!!', $msg["abts_modeles_modify_title"], $r);
208                }
209                //Construction du formulaire
210                if ($this->modele_id){
211                        $del_bouton=$tpl_del_bouton; 
212                        $copy_bouton=$tpl_copy_bouton; 
213                }else{ 
214                        $copy_bouton=$del_bouton="";
215                }       
216                $this->getData();
217                $r=str_replace("!!del_button!!",$del_bouton,$r);
218                $r=str_replace("!!copy_bouton!!",$copy_bouton,$r);
219               
220                //Remplacement des valeurs
221                $r=str_replace("!!modele_id!!",htmlentities($this->modele_id,ENT_QUOTES,$charset),$r);
222                $r=str_replace("!!modele_name!!",htmlentities($this->modele_name,ENT_QUOTES,$charset),$r);
223               
224                //Notice mère
225                $perio=new serial_display($this->num_notice,1);
226                $r=str_replace("!!num_notice_libelle!!",$perio->header,$r);
227                $r=str_replace("!!num_notice!!",$this->num_notice,$r);
228               
229                //Périodicité
230                $requete="select periodicite_id,libelle from abts_periodicites";
231                $resultat=mysql_query($requete);
232                $liste_perio="<select name='num_periodicite'>\n<option value='0'>".$msg['abonnements_periodicite_manuel']."</option>\n";
233                while ($rp=mysql_fetch_object($resultat)) {
234                        $liste_perio.="<option value='".$rp->periodicite_id."' ".($this->num_periodicite==$rp->periodicite_id?"selected":"").">".htmlentities($rp->libelle,ENT_QUOTES,$charset)."</option>\n";
235                }
236                $liste_perio.="</select>";
237                $r=str_replace("!!num_periodicite!!",$liste_perio,$r);
238               
239                //Durée d'abonnement
240                $r=str_replace("!!duree_abonnement!!",$this->duree_abonnement,$r);
241               
242                //Date de début
243                if (!$this->date_debut || $this->date_debut == "0000-00-00") $date_debut=date("Ymd",time()); else $date_debut=$this->date_debut;
244               
245                $r=str_replace("!!date_debut!!",str_replace("-","",$date_debut),$r);
246                $r=str_replace("!!date_debut_lib!!",formatdate($date_debut),$r);
247               
248                //Date de fin
249                if (!$this->date_fin || $this->date_fin == "0000-00-00") $date_fin=pmb_sql_value("SELECT DATE_ADD('$date_debut', INTERVAL 1 YEAR)"); else $date_fin=$this->date_fin;
250               
251                $r=str_replace("!!date_fin!!",str_replace("-","",$date_fin),$r);
252                $r=str_replace("!!date_fin_lib!!",format_date($date_fin),$r);
253               
254                //Jours de la semaine exclus
255                $days="
256                <table>";
257                $days_t="<tr>";
258                $days_v="<tr>";
259                for ($i=1; $i<8; $i++) {
260                        $days_t.="<td>".$msg["week_days_short_".$i]."</td>";   
261                        $days_v.="<td><input type='checkbox' value='$i' ".(!$this->days[$i-1] && $this->modele_id ?"checked":"yes")." name='days[$i]'/></td>";
262                }
263                $days_v.="</tr>";
264                $days_t.="</tr>";
265                $days.=$days_t."\n".$days_v."
266                </table>";
267                $r=str_replace("!!days!!",$days,$r);
268               
269                //Jours du mois exclus
270                $day_month="
271                <table>";
272                for ($j=0;$j<3;$j++) {
273                        $days_t="<tr>";
274                        $days_v="<tr>";
275                        for ($i=0; $i<15; $i++) {
276                                if (($j*(14+1)+$i+1)>31) break;
277                                $days_t.="<td>".($j*(14+1)+$i+1)."</td>";
278                                $days_v.="<td><input type='checkbox' value='".($j*(15)+$i+1)."' ".(!$this->day_month[($j*(15)+$i)] && $this->modele_id ?"checked":"yes")." name='day_month[".($j*(15)+$i+1)."]'/></td>";
279                        }
280                        $days_v.="</tr>";
281                        $days_t.="</tr>";
282                        $day_month.=$days_t."\n".$days_v."\n";
283                }
284                $day_month.="
285                </table>";
286                $r=str_replace("!!days_month!!",$day_month,$r);
287               
288                //Semaines dans le mois exclues
289                $week_month="
290                <table>";
291                $days_t="<tr>";
292                $days_v="<tr>";
293                for ($i=1; $i<7; $i++) {
294                        $days_t.="<td>".$i."</td>";
295                        $days_v.="<td><input type='checkbox' value='$i' ".(!$this->week_month[$i-1] && $this->modele_id ?"checked":"yes")." name='week_month[$i]'/></td>";
296                }
297                $days_v.="</tr>";
298                $days_t.="</tr>";
299                $week_month.=$days_t."\n".$days_v."
300                </table>";
301                $r=str_replace("!!week_month!!",$week_month,$r);
302               
303                //Semaines dans l'année exclues
304                $week_year="
305                <table>";
306                $nb_x=15;
307                $nb=54;
308                for ($j=0;$j<($nb/$nb_x);$j++) {
309                        $days_t="<tr>";
310                        $days_v="<tr>";
311                        for ($i=0; $i<$nb_x; $i++) {
312                                if (($j*($nb_x)+$i+1)>($nb)) break;
313                                $days_t.="<td>".($j*($nb_x)+$i+1)."</td>";
314                                $days_v.="<td><input type='checkbox' value='".($j*($nb_x)+$i+1)."' ".(!$this->week_year[($j*($nb_x)+$i)] && $this->modele_id ?"checked":"yes")." name='week_year[".($j*($nb_x)+$i+1)."]'/></td>";
315                        }
316                        $days_v.="</tr>";
317                        $days_t.="</tr>";
318                        $week_year.=$days_t."\n".$days_v."\n";
319                }
320                $week_year.="
321                </table>";
322                $r=str_replace("!!week_year!!",$week_year,$r);         
323       
324                //Mois dans l'année exclus
325                $month_year="
326                <table>";
327                $nb_x=6;
328                $nb=12;
329                for ($j=0;$j<($nb/$nb_x);$j++) {
330                        $days_t="<tr>";
331                        $days_v="<tr>";
332                        for ($i=0; $i<$nb_x; $i++) {
333                                if (($j*($nb_x)+$i+1)>($nb)) break;
334                                $days_t.="<td>".$msg[($j*($nb_x)+$i)+1006]."</td>";
335                                $days_v.="<td><input type='checkbox' value='".($j*($nb_x)+$i+1)."' ".(!$this->month_year[($j*($nb_x)+$i)] && $this->modele_id ?"checked":"yes")." name='month_year[".($j*($nb_x)+$i+1)."]'/></td>";
336                        }
337                        $days_v.="</tr>";
338                        $days_t.="</tr>";
339                        $month_year.=$days_t."\n".$days_v."\n";
340                }
341                $month_year.="
342                </table>";
343                $r=str_replace("!!month_year!!",$month_year,$r);               
344
345                //Numérotation:  Numéro
346                $selected[$this->num_date_unite]= "selected='selected'";
347                $str_unite="
348                        <select id='num_date_unite' name='num_date_unite'>
349                                <option value='0'$selected[0]>$msg[abonnements_periodicite_unite_jour]</option>
350                                <option value='1'$selected[1]>$msg[abonnements_periodicite_unite_mois]</option>
351                                <option value='2'$selected[2]>$msg[abonnements_periodicite_unite_annee]</option>
352                        </select>";
353                $selected[$this->num_date_unite]= '';
354               
355                $num="<table>";
356
357                $num_t="<tr>";
358                $num_v="<tr>";
359                $num_t.="<td>".$msg["abonnements_actif"]."</td>";
360                $num_v.="<td><input type='checkbox' value='1' checked='checked'  disabled='disabled' name='facilite' id='facilite' /></td>";
361                $num_t.="</tr>";
362                $num_v.="</tr>";
363                $num.=$num_t."\n".$num_v."\n";
364                       
365                $num_t="<tr>";
366                $num_v="<tr>"; 
367                $num_t.="<td>".$msg["abonnements_cyclique"]."</td>";
368                $num_v.="<td><input type='checkbox' value='1' ".($this->num_cycle ?"checked":"yes")." name='num_cycle[1]' id='num_cycle'  onClick='gere_num(\"num_cycle\");'/></td>";
369                $num_t.="</tr>";
370                $num_v.="</tr>";
371                $num.=$num_t."\n".$num_v."\n";
372                       
373                $num_t="<tr>";
374                $num_v="<tr>";
375                $num_t.="<td></td>";
376                $num_v.="<td></td>";
377                $num_t.="<td><input type='radio' name='num_increment' id='num_increment' value='0' ".($this->num_increment==0 ?"checked":"yes").">".$msg["abonnements_incrementation_selon_numero_1"]."<input type='text' size='5' name='num_combien' id='num_combien' value='$this->num_combien'/>".$msg["abonnements_incrementation_selon_numero_2"]."</td>";
378                $num_v.="<td><input type='radio' name='num_increment' id='num_increment1' value='1' ".($this->num_increment==1 ?"checked":"yes").">".$msg["abonnements_incrementation_selon_date_1"]."<input type='text' size='5' name='num_increment_date' id='num_increment_date' value='$this->num_increment_date'/>$str_unite".$msg["abonnements_incrementation_selon_date_2"]."</td>";
379                $num_t.="<td>".$msg["abonnements_numero_depart"]."</td>";
380                $num_v.="<td><input type='text' size='5' name='num_depart' id='num_depart' value='$this->num_depart' /></td>";         
381                $num_t.="</tr>";
382                $num_v.="</tr>";
383                $num.=$num_t."\n".$num_v."\n"; 
384
385                $num.="</table>";
386                $r=str_replace("!!numero!!",$num,$r);           
387               
388                //Numérotation: Volume
389                $selected[$this->vol_date_unite]= "selected='selected'";
390                $str_unite="
391                        <select id='vol_date_unite' name='vol_date_unite'>
392                                <option value='0'$selected[0]>$msg[abonnements_periodicite_unite_jour]</option>
393                                <option value='1'$selected[1]>$msg[abonnements_periodicite_unite_mois]</option>
394                                <option value='2'$selected[2]>$msg[abonnements_periodicite_unite_annee]</option>
395                        </select>";
396                $selected[$this->vol_date_unite]= '';
397               
398                $vol="<table>";
399
400                $vol_t="<tr>";
401                $vol_v="<tr>";
402                $vol_t.="<td>".$msg["abonnements_actif"]."</td>";
403                $vol_v.="<td><input type='checkbox' value='1' ".($this->vol_actif && $this->modele_id ?"checked":"yes")." name='vol_actif[1]' id='vol_actif'  onClick='gere_num(\"vol_actif\");'/></td>";
404                $vol_t.="</tr>";
405                $vol_v.="</tr>";
406                $vol.=$vol_t."\n".$vol_v."\n";
407
408                $vol_t="<tr>";
409                $vol_v="<tr>";
410                $vol_t.="<td>".$msg["abonnements_incrementation"]."</td>";
411                $vol_t.="</tr>";
412                $vol_v.="</tr>";
413                $vol.=$vol_t."\n".$vol_v."\n";
414
415                $vol_t="<tr>";
416                $vol_v="<tr>";
417                $vol_t.="<td></td>";
418                $vol_v.="<td></td>";
419                $vol_t.="<td><input type='radio' name='vol_increment' id='vol_increment' value='0' ".($this->vol_increment==0 ?"checked":"yes").">".$msg["abonnements_incrementation_selon_numero_1"]."<input type='text' size='5' name='vol_increment_numero' id='vol_increment_numero' value='$this->vol_increment_numero'/>".$msg["abonnements_incrementation_selon_numero_2"]."</td>";
420                $vol_v.="<td><input type='radio' name='vol_increment' id='vol_increment1' value='1' ".($this->vol_increment==1 ?"checked":"yes").">".$msg["abonnements_incrementation_selon_date_1"]."<input type='text' size='5' name='vol_increment_date' id='vol_increment_date' value='$this->vol_increment_date'/>$str_unite".$msg["abonnements_incrementation_selon_date_2"]."</td>";
421                $vol_t.="</tr>";
422                $vol_v.="</tr>";
423                $vol.=$vol_t."\n".$vol_v."\n"; 
424
425                $vol_t="<tr>";
426                $vol_v="<tr>";
427                $vol_t.="<td>".$msg["abonnements_cyclique"]."</td>";
428                $vol_v.="<td><input type='checkbox' value='1' ".($this->vol_cycle && $this->modele_id ?"checked":"yes")." name='vol_cycle[1]' id='vol_cycle'  onClick='gere_num(\"vol_cycle\");'/></td>";
429                $vol_t.="<td>".$msg["abonnements_combien"]."</td>";
430                $vol_v.="<td><input type='text' size='5' name='vol_combien' id='vol_combien' value='$this->vol_combien'/></td>";
431                $vol_t.="<td>".$msg["abonnements_numero_depart"]."</td>";
432                $vol_v.="<td><input type='text' size='5' name='vol_depart' id='vol_depart' value='$this->vol_depart'/></td>";
433                $vol_t.="</tr>";
434                $vol_v.="</tr>";
435                $vol.=$vol_t."\n".$vol_v."\n";
436                $vol.="</table>";
437                $r=str_replace("!!volume!!",$vol,$r);           
438                       
439                //Numérotation: Tome
440                $selected[$this->tom_date_unite]= "selected='selected'";
441                $str_unite="
442                        <select id='tom_date_unite' name='tom_date_unite'>
443                                <option value='0'$selected[0]>$msg[abonnements_periodicite_unite_jour]</option>
444                                <option value='1'$selected[1]>$msg[abonnements_periodicite_unite_mois]</option>
445                                <option value='2'$selected[2]>$msg[abonnements_periodicite_unite_annee]</option>
446                        </select>";
447
448                $vol="<table>";
449                $tom="<table>";
450
451                $tom_t="<tr>";
452                $tom_v="<tr>";
453                $tom_t.="<td>".$msg["abonnements_actif"]."</td>";
454                $tom_v.="<td><input type='checkbox' value='1' ".($this->tom_actif && $this->modele_id ?"checked":"yes")." name='tom_actif[1]' id='tom_actif'   onClick='gere_num(\"tom_actif\");'/></td>";
455                $tom_t.="</tr>";
456                $tom_v.="</tr>";
457                $tom.=$tom_t."\n".$tom_v."\n";
458               
459                $tom_t="<tr>";
460                $tom_v="<tr>";
461                $tom_t.="<td>".$msg["abonnements_incrementation"]."</td>";
462                $tom_t.="</tr>";
463                $tom_v.="</tr>";
464                $tom.=$tom_t."\n".$tom_v."\n";
465
466                $tom_t="<tr>";
467                $tom_v="<tr>";
468                $tom_t.="<td></td>";
469                $tom_v.="<td></td>";
470                $tom_t.="<td><input type='radio' name='tom_increment' id='tom_increment' value='0' ".($this->tom_increment==0 ?"checked":"yes").">".$msg["abonnements_incrementation_selon_volume_1"]."<input type='text' size='5' name='tom_increment_numero' id='tom_increment_numero' value='$this->tom_increment_numero'/>".$msg["abonnements_incrementation_selon_volume_2"]."</td>";
471                $tom_v.="<td><input type='radio' name='tom_increment' id='tom_increment1'  value='1' ".($this->tom_increment==1 ?"checked":"yes").">".$msg["abonnements_incrementation_selon_date_1"]."<input type='text' size='5' name='tom_increment_date' id='tom_increment_date' value='$this->tom_increment_date'/>$str_unite".$msg["abonnements_incrementation_selon_date_2"]."</td>";
472                $tom_t.="</tr>";
473                $tom_v.="</tr>";
474                $tom.=$tom_t."\n".$tom_v."\n"; 
475
476                $tom_t="<tr>";
477                $tom_v="<tr>";
478                $tom_t.="<td>".$msg["abonnements_cyclique"]."</td>";
479                $tom_v.="<td><input type='checkbox' value='1' ".($this->tom_cycle && $this->modele_id ?"checked":"yes")." name='tom_cycle[1]' id='tom_cycle' onClick='gere_num(\"tom_cycle\");'/></td>";
480                $tom_t.="<td>".$msg["abonnements_combien"]."</td>";
481                $tom_v.="<td><input type='text' size='5' name='tom_combien' id='tom_combien' value='$this->tom_combien'/></td>";
482                $tom_t.="<td>".$msg["abonnements_numero_depart"]."</td>";
483                $tom_v.="<td><input type='text' size='5' name='tom_depart' id='tom_depart' value='$this->tom_depart'/></td>";
484                $tom_t.="</tr>";
485                $tom_v.="</tr>";
486                $tom.=$tom_t."\n".$tom_v."\n";
487
488                $tom.="</table>";
489
490                $r=str_replace("!!tome!!",$tom,$r);             
491                               
492                $format="<table>";
493
494                $format_t="<tr>";
495                $format_v="<tr>";
496                $format_t.="<td>".$msg["abonnements_format_numero"]."</td>";
497                $format_v.="<td><input type='text' size='100' name='format_aff' id='format_aff' value='".htmlentities($this->format_aff,ENT_QUOTES,$charset)."'/></td>";
498                $format_t.="</tr>";
499                $format_v.="</tr>";
500                $format.=$format_t."\n".$format_v."\n";
501       
502                $r=str_replace("!!format!!",$format,$r);               
503       
504                $format_t="<tr>";
505                $format_v="<tr>";
506                $format_t.="<td>".$msg["abonnements_format_periode"]."</td>";
507                $format_v.="<td><input type='text' size='100' name='format_periode' id='format_periode' value='".htmlentities($this->format_periode,ENT_QUOTES,$charset)."'/></td>";
508                $format_t.="</tr>";
509                $format_v.="</tr>";
510                $format=$format_t."\n".$format_v."\n";
511               
512                $format.="</table>";
513
514                $r=str_replace("!!format_periode!!",$format,$r);               
515               
516                global $serial_id;
517                $r=str_replace("!!action!!","./catalog.php?categ=serials&sub=modele&serial_id="."$serial_id",$r);
518                $r=str_replace("!!serial_id!!",$serial_id,$r);
519
520               
521                if ($this->modele_id) {
522                       
523                        $calend="
524                        <script type=\"text/javascript\" src='./javascript/select.js'></script>
525                        <script type=\"text/javascript\" src='./javascript/ajax.js'></script>";   
526                                       
527$calend.= <<<ENDOFTEXT
528                        <script type="text/javascript">
529                        function ad_date(obj,e) {               
530                                if(!e) e=window.event;
531                                var tgt = e.target || e.srcElement; // IE doesn't use .target
532                                var strid = tgt.id;
533                                var type = tgt.tagName;
534                                e.cancelBubble = true;
535                                if (e.stopPropagation) e.stopPropagation();                                     
536                                var id_obj=document.getElementById(obj);
537                                var pos=findPos(id_obj);
538                                if(type!='A'){
539                                        var url="./catalog/serials/modele/modele_parution_edition.php?act=change&serial_id=!!serial_id!!&modele_id=!!modele_id!!&date_parution="+obj+"&type_serie=1&numero=";   
540                                }
541                                else{
542                                        var url="./catalog/serials/modele/modele_parution_edition.php?serial_id=!!serial_id!!&modele_id=!!modele_id!!&date_parution="+obj+"&type_serie=1&numero=";
543                                }
544                                var notice_view=document.createElement("iframe");
545                                notice_view.setAttribute('id','frame_periodique');
546                                notice_view.setAttribute('name','periodique');
547                                notice_view.src=url;
548                               
549                                var att=document.getElementById("att");
550                                notice_view.style.visibility="hidden";
551                                notice_view.style.display="block";
552                                notice_view=att.appendChild(notice_view);
553                                if(type=='A'){         
554                                        w=notice_view.clientWidth;
555                                        h=notice_view.clientHeight;
556                                        notice_view.style.left=pos[0]+"px";
557                                        notice_view.style.top=pos[1]+"px";
558                                        notice_view.style.visibility="visible";                 
559                                        }       
560                        }
561                        function kill_frame_periodique() {
562                                var notice_view=document.getElementById("frame_periodique");
563                                notice_view.parentNode.removeChild(notice_view);       
564                        }
565                        </script>       
566ENDOFTEXT;
567                        $calend=str_replace("!!serial_id!!",$serial_id,$calend);
568                        $calend=str_replace("!!modele_id!!",$this->modele_id,$calend); 
569                       
570                        $base_url="./catalog.php?categ=serials&sub=modele&serial_id="."$serial_id&modele_id=$this->modele_id";
571                        $base_url_mois='';     
572
573                        $calend.= "<div id='calendrier_tab' style='width:99%'>" ;
574                        $date = $this->date_debut;
575                        $calend.= "<A name='ancre_calendrier'></A>"; 
576                               
577                        $year=pmb_sql_value("SELECT YEAR('$date')");
578                        $cur_year=$year;
579                        //debut expand
580                        $calend.="
581                        <div class='row'>&nbsp;</div>
582                        <div id='abts_year_$year' class='notice-parent'>
583                                <img src='./images/minus.gif' class='img_plus' name='imEx' id='abts_year_$year"."Img' title='".addslashes($msg['plus_detail'])."' border='0' onClick=\"expandBase('abts_year_$year', true); return false;\" hspace='3'>
584                                <span class='notice-heada'>
585                                        $year
586                        </span>
587                        </div>
588                        <div id='abts_year_$year"."Child' startOpen='Yes' class='notice-child' style='margin-bottom:6px;width:94%'> "; 
589                                               
590                        $i=pmb_sql_value("SELECT MONTH('$date')");     
591                        if($i==2 || $i==5 || $i==8 || $i==11) {
592                                        $calend.= "<div class='row' style='padding-top: 5px'><div class='colonne3'>&nbsp;";
593                                        $calend.= "</div>\n";           
594                        }
595                        if($i==3 || $i==6 || $i==9 || $i==12) {
596                                        $calend.= "<div class='row' style='padding-top: 5px'><div class='colonne3'>&nbsp;";
597                                        $calend.= "</div>\n";
598                                        $calend.= "<div class='colonne3' style='padding-left: 3px'>&nbsp;";     
599                                        $calend.= "</div>\n";           
600                        }
601                        do {
602                                $year=pmb_sql_value("SELECT YEAR('$date')");   
603                                if($year!=$cur_year){
604                                        $calend.= "</div>";
605                                        $calend.="
606                                        <div class='row'></div>
607                                        <div id='abts_year_$year' class='notice-parent'>
608                                                <img src='./images/plus.gif' class='img_plus' name='imEx' id='abts_year_$year"."Img' title='".addslashes($msg['plus_detail'])."' border='0' onClick=\"expandBase('abts_year_$year', true); return false;\" hspace='3'>
609                                                <span class='notice-heada'>
610                                                        $year
611                                        </span>
612                                        </div>
613                                        <div id='abts_year_$year"."Child' class='notice-child' style='margin-bottom:6px;display:none;width:94%'>
614                                        ";     
615                                        $cur_year=$year;
616                                }                                               
617                                $i=pmb_sql_value("SELECT MONTH('$date')");     
618                               
619                                if ($i==1 || $i==4 || $i==7 || $i==10 ) $calend.= "<div class='row' style='padding-top: 5px'><div class='colonne3'>";
620                                else 
621                                        $calend.= "<div class='colonne3' style='padding-left: 3px'>";
622                                $calend.= pmb_bidi(calendar_gestion(str_replace("-","",$date), 0, $base_url, $base_url_mois,0,$this->modele_id,0));
623                                $calend.= "</div>\n";
624                                if ($i==3 || $i==6 || $i==9 || $i==12 ) $calend.="</div>\n";
625                               
626                                $date=pmb_sql_value("SELECT DATE_ADD('$date', INTERVAL 1 MONTH)");
627                                $diff=pmb_sql_value("SELECT DATEDIFF('$date_fin','$date')");                   
628                        }
629                        while($diff>=0);       
630                        //fin expand
631                        $calend.= "</div>";                                                             
632                        $calend.= "</div>\n";
633                        $calend.="<script type='text/javascript'>parent.location.href='#ancre_calendrier';</script>";                   
634                        $r.=$calend;
635                }
636                return $r;
637        }
638       
639        function gen_date(){
640                global $dbh;
641                global $msg;
642                global $include_path;
643                if($this->modele_id) {
644                        $dummy = "delete FROM abts_grille_modele WHERE num_modele='$this->modele_id' ";
645                        mysql_query($dummy, $dbh);             
646                               
647                        $date = construitdateheuremysql($this->date_debut);     
648                        $date_fin = construitdateheuremysql($this->date_fin);           
649                       
650                        //Lire la périodicté
651                        $duree=1;
652                        $requete="select duree,unite from abts_periodicites where periodicite_id='$this->num_periodicite'";
653                        $resultat=mysql_query($requete);
654                        if($r=mysql_fetch_object($resultat)) {
655                                $duree=$r->duree;
656                                $unite=$r->unite;                                                                       
657                                do {                           
658                                        $dayofweek=pmb_sql_value("SELECT DAYOFWEEK('$date')");  //1 = Dimanche, 2 = Lundi, ... 7 = Samedi
659                                        if($dayofweek==1)$dayofweek=8;
660                                        $dayofweek--;
661                                        $day=pmb_sql_value("SELECT DAYOFMONTH('$date')");       // 1 à 31
662                                        $month=pmb_sql_value("SELECT MONTH('$date')");  //1 à 12
663                                        $week=pmb_sql_value("SELECT WEEK('$date',5)") + 1;//0 ... 53
664                                       
665                                        //calcul numero de semaine dans le mois
666                                        $weekofmonth=($day+7-$dayofweek)/7+1;
667       
668                                        //Mois dans l'année exclu
669                                        if($this->month_year[$month-1])
670                                                if($this->week_year[$week-1])
671                                                        if($this->week_month[$weekofmonth-1])
672                                                                if($this->day_month[$day-1])
673                                                                        if($this->days[$dayofweek-1]) {
674                                                                                //c'est un jour prévu de réception     
675                                                                                $requete = "INSERT INTO abts_grille_modele SET num_modele='$this->modele_id', date_parution ='$date', type_serie = '1'";
676                                                                                mysql_query($requete, $dbh);
677                                                                        }                                                       
678                                        // Calcul de la date suivante à analyser et la sortie du while                                 
679                                        if($unite==0) $sql_add="INTERVAL $duree DAY";
680                                        if($unite==1) $sql_add="INTERVAL $duree MONTH"; 
681                                        if($unite==2) $sql_add="INTERVAL $duree YEAR"; 
682                                        $date=pmb_sql_value("SELECT DATE_ADD('$date', $sql_add)");
683                                        $diff=pmb_sql_value("SELECT DATEDIFF('$date_fin','$date')");                                                                   
684                                }
685                                while(($diff>=0) && ($duree != 0));     
686                        }
687                }
688        }
689       
690        function update() {
691                global $dbh;
692                global $msg;
693                global $include_path;
694                global $act;
695               
696                if(!$this->modele_name) return false;
697               
698                // nettoyage des valeurs en entrée
699                $this->modele_name = clean_string($this->modele_name); 
700       
701                // construction de la requête
702                $requete = "SET modele_name='".addslashes($this->modele_name)."', ";
703                $requete .= "num_notice='$this->num_notice', ";
704                $requete .= "num_periodicite='$this->num_periodicite', ";
705                $requete .= "duree_abonnement='$this->duree_abonnement', ";
706                $requete .= "date_debut='$this->date_debut', ";
707                $requete .= "date_fin='$this->date_fin', ";
708                $requete .= "days='$this->days', ";
709                $requete .= "day_month='$this->day_month', ";
710                $requete .= "week_month='$this->week_month', ";
711                $requete .= "week_year='$this->week_year', ";
712                $requete .= "month_year='$this->month_year', ";
713               
714                $requete .= "num_cycle='$this->num_cycle', ";           
715                $requete .= "num_increment='$this->num_increment', ";
716                $requete .= "num_combien='$this->num_combien', ";
717                $requete .= "num_date_unite='$this->num_date_unite', ";
718                $requete .= "num_increment_date='$this->num_increment_date', ";
719                $requete .= "num_depart='$this->num_depart', ";
720                $requete .= "vol_actif='$this->vol_actif', ";
721                $requete .= "vol_increment='$this->vol_increment', ";
722                $requete .= "vol_date_unite='$this->vol_date_unite', ";
723                $requete .= "vol_increment_numero='$this->vol_increment_numero', ";
724                $requete .= "vol_increment_date='$this->vol_increment_date', ";
725                $requete .= "vol_cycle='$this->vol_cycle', ";
726                $requete .= "vol_combien='$this->vol_combien', ";
727                $requete .= "vol_depart='$this->vol_depart', ";
728                $requete .= "tom_actif='$this->tom_actif', ";
729                $requete .= "tom_increment='$this->tom_increment', ";
730                $requete .= "tom_date_unite='$this->tom_date_unite', ";
731                $requete .= "tom_increment_numero='$this->tom_increment_numero', ";
732                $requete .= "tom_increment_date='$this->tom_increment_date', ";
733                $requete .= "tom_cycle='$this->tom_cycle', ";
734                $requete .= "tom_combien='$this->tom_combien', ";
735                $requete .= "tom_depart='$this->tom_depart', ";
736                $requete .= "format_aff='".addslashes($this->format_aff)."', ";
737                $requete .= "format_periode='".addslashes($this->format_periode)."' ";
738               
739                if($this->modele_id) {
740                        // update: s'assurer que le nom de modèle n'existe pas déjà
741                        $dummy = "SELECT * FROM abts_modeles WHERE modele_name='".addslashes($this->modele_name)."' and num_notice='$this->num_notice' and modele_id!='$this->modele_id' ";
742                        $check = mysql_query($dummy, $dbh);
743                        if(mysql_num_rows($check)) {
744                                require_once("$include_path/user_error.inc.php");
745                                warning($msg["abonnements_titre_creation_edition_modele"], $msg["abonnements_erreur_creation_doublon_modele"]." ($this->modele_name).");
746                                return FALSE;
747                        }                       
748                        $requete = 'UPDATE abts_modeles '.$requete;
749                        $requete .= ' WHERE modele_id='.$this->modele_id.' LIMIT 1;';
750                        if(mysql_query($requete, $dbh)) {
751                               
752                                if($act=="gen") $this->gen_date();                             
753                                return TRUE;
754                        }else {
755                                require_once("$include_path/user_error.inc.php");
756                                warning($msg["abonnements_titre_creation_edition_modele"], $msg["abonnements_titre_creation_edition_modele_impossible"]);
757                                return FALSE;
758                        }
759                } else {
760                               
761                        // s'assurer que le modèle n'existe pas déjà
762                        $dummy = "SELECT * FROM abts_modeles WHERE modele_name='".addslashes($this->modele_name)."' and num_notice='$this->num_notice'";
763                        $check = mysql_query($dummy, $dbh);
764                        if(mysql_num_rows($check)) {
765                                require_once("$include_path/user_error.inc.php");
766                                warning($msg["abonnements_titre_creation_edition_modele"], $msg["abonnements_erreur_creation_doublon_modele"]." ($this->modele_name).");
767                                return FALSE;
768                        }
769                        $requete = 'INSERT INTO abts_modeles '.$requete.';';
770               
771                        if(mysql_query($requete, $dbh)) {
772                                $this->modele_id=mysql_insert_id();
773                               
774                                if($act=="gen") $this->gen_date();
775                                return TRUE;
776                        } else {
777                                require_once("$include_path/user_error.inc.php");
778                                warning($msg["abonnements_titre_creation_edition_modele"], $msg["abonnements_titre_creation_edition_modele_impossible"]);
779                                return FALSE;
780                        }
781                }               
782        }
783       
784        function delete()
785        {
786                global $dbh;
787                global $msg;
788                global $include_path;
789               
790                //Je supprime les abonnements liés au modèle
791                $requete="SELECT abt_id FROM abts_abts_modeles WHERE modele_id='".$this->modele_id."'";
792                $res=mysql_query($requete);
793                if(mysql_num_rows($res)){
794                        while ($ligne=mysql_fetch_object($res)) {
795                                $mon_abt= new abts_abonnement($ligne->abt_id);
796                                $mon_abt->delete();
797                        }
798                }
799               
800                $dummy = "delete FROM abts_modeles WHERE modele_id='".$this->modele_id."' ";
801                $check = mysql_query($dummy, $dbh);     
802                                                       
803                $dummy = "delete FROM abts_grille_modele WHERE num_modele='".$this->modele_id."' ";
804                $check = mysql_query($dummy, $dbh);                     
805        }
806       
807        function proceed() {
808                global $include_path,$charset;
809                global $act;
810                global $serial_id,$msg,$modele_name,$num_notice,$num_periodicite,$duree_abonnement,$date_debut,$date_fin,$days,$day_month,$week_month,$week_year,$month_year,$date_parution;                   
811                global $num_cycle,$num_combien,$num_depart,$vol_actif,$vol_increment,$vol_date_unite,$vol_increment_numero,
812                $vol_increment_date,$vol_cycle,$vol_combien,$vol_depart,$tom_actif,$tom_increment,$tom_date_unite,$tom_increment_numero,
813                $tom_increment_date,$tom_cycle,$tom_combien,$tom_depart,$month_year,$format_aff,$format_periode,$new_serial_id,$num_increment,$num_date_unite,$num_increment_date;
814                global $dbh,$include_path;
815               
816                switch ($act) {
817                        case 'update':                                                         
818                                // mise à jour modèle
819                                $this->modele_name= stripslashes($modele_name);
820                                $this->num_notice= $num_notice;
821                                $this->num_periodicite= $num_periodicite;
822                                $this->duree_abonnement= $duree_abonnement;
823                                $this->date_debut=$date_debut;
824                                $this->date_fin= $date_fin;
825                                $this->days=$this->calc_selection($days,7);
826                                $this->day_month=$this->calc_selection($day_month,31);
827                                $this->week_month=$this->calc_selection($week_month,6);
828                                $this->week_year= $this->calc_selection($week_year,54);
829                                $this->month_year=$this->calc_selection($month_year,12);
830                                $this->num_cycle = 1-$this->calc_selection($num_cycle,1);
831                                $this->num_combien = $num_combien;
832                                $this->num_depart = $num_depart;
833                                $this->num_increment=$num_increment;
834                                $this->num_date_unite=$num_date_unite;
835                                $this->num_increment_date=$num_increment_date;
836                                $this->vol_actif = 1-$this->calc_selection($vol_actif,1);
837                                $this->vol_increment = $vol_increment;
838                                $this->vol_date_unite = $vol_date_unite;
839                                $this->vol_increment_numero = $vol_increment_numero;
840                                $this->vol_increment_date = $vol_increment_date;
841                                $this->vol_cycle = 1-$this->calc_selection($vol_cycle,1);
842                                $this->vol_combien = $vol_combien;
843                                $this->vol_depart = $vol_depart;
844                                $this->tom_actif = 1-$this->calc_selection($tom_actif,1);       
845                                $this->tom_increment = $tom_increment;
846                                $this->tom_date_unite = $tom_date_unite;
847                                $this->tom_increment_numero = $tom_increment_numero;
848                                $this->tom_increment_date = $tom_increment_date;
849                                $this->tom_cycle = 1-$this->calc_selection($tom_cycle,1);
850                                $this->tom_combien = $tom_combien;
851                                $this->tom_depart = $tom_depart;
852                                $this->format_aff = stripslashes($format_aff);
853                                $this->format_periode = stripslashes($format_periode);
854                                $this->update();                                                                               
855                                print $this->show_form();               
856                        break;
857                        case 'gen':                                                             
858                                // mise à jour modèle
859                                $this->modele_name= stripslashes($modele_name);
860                                $this->num_notice= $num_notice;
861                                $this->num_periodicite= $num_periodicite;
862                                $this->duree_abonnement= $duree_abonnement;
863                                $this->date_debut=$date_debut;
864                                $this->date_fin= $date_fin;
865                                $this->days=$this->calc_selection($days,7);
866                                $this->day_month=$this->calc_selection($day_month,31);
867                                $this->week_month=$this->calc_selection($week_month,6);
868                                $this->week_year= $this->calc_selection($week_year,54);
869                                $this->month_year=$this->calc_selection($month_year,12);
870                                $this->num_cycle = 1-$this->calc_selection($num_cycle,1);
871                                $this->num_combien = $num_combien;
872                                $this->num_depart = $num_depart;
873                                $this->vol_actif = 1-$this->calc_selection($vol_actif,1);
874                                $this->vol_increment = $vol_increment;
875                                $this->vol_date_unite = $vol_date_unite;
876                                $this->vol_increment_numero = $vol_increment_numero;
877                                $this->vol_increment_date = $vol_increment_date;
878                                $this->vol_cycle = 1-$this->calc_selection($vol_cycle,1);
879                                $this->vol_combien = $vol_combien;
880                                $this->vol_depart = $vol_depart;
881                                $this->tom_actif = 1-$this->calc_selection($tom_actif,1);       
882                                $this->tom_increment = $tom_increment;
883                                $this->tom_date_unite = $tom_date_unite;
884                                $this->tom_increment_numero = $tom_increment_numero;
885                                $this->tom_increment_date = $tom_increment_date;
886                                $this->tom_cycle = 1-$this->calc_selection($tom_cycle,1);
887                                $this->tom_combien = $tom_combien;
888                                $this->tom_depart = $tom_depart;
889                                $this->format_aff = stripslashes($format_aff);
890                                $this->format_periode = stripslashes($format_periode);
891                                $this->update();                                                                               
892                                print $this->show_form();               
893                        break;                 
894                        case 'copy':
895                                // mise à jour modèle
896                                $requete = "select type_serie, numero,date_parution,type_serie,nombre_recu from abts_grille_modele where num_modele='$this->modele_id'";
897                                $resultat=mysql_query($requete);
898                               
899                                //Création du nouveau modèle
900                                $this->modele_id='';
901                                $this->num_notice=$new_serial_id;
902                                $this->modele_name= clean_string($msg["abonnement_nom_nouveau_modele"]); 
903                                $serial_id=$new_serial_id;
904                                $this->update();
905                                $requete = "delete FROM abts_grille_modele WHERE num_modele='$this->modele_id'";
906                                mysql_query($requete, $dbh);           
907                                //recopie des infos du calendrier
908                                if(mysql_num_rows($resultat)) { 
909                                        while(($r=mysql_fetch_object($resultat))){                             
910                                                $date_parution=$r->date_parution;
911                                                $type_serie=$r->type_serie;
912                                                $nombre_recu=$r->nombre_recu;
913                                                $numero=$r->numero;
914                                               
915                                                $requete = "INSERT INTO abts_grille_modele SET num_modele='$this->modele_id', date_parution ='$date_parution', type_serie = '$type_serie', nombre_recu= '$nombre_recu'";
916                                                mysql_query($requete, $dbh);
917                                        }
918                                }                       
919                                print $this->show_form();               
920                        break;
921                        case 'del':     
922                                // Verif si abonnements associés
923                                $requete="select abt_name,abts_abts.abt_id as ab_id from abts_abts_modeles,abts_abts where modele_id='$this->modele_id' and abts_abts.abt_id=abts_abts_modeles.abt_id";
924                                $resultat=mysql_query($requete);
925                                if (mysql_num_rows($resultat)) {       
926                                        while(($r=mysql_fetch_object($resultat))) {
927                                                $liste.="<a href=\"catalog.php?categ=serials&sub=abon&serial_id=".$this->num_notice."&abt_id=".$r->ab_id."\">".$r->abt_name."</a><br />";       
928                                        }
929                                        require_once("$include_path/user_error.inc.php");
930                                        warning(htmlentities($msg["abonnements_titre_effacement_modele"],ENT_QUOTES,$charset), htmlentities($msg["abonnements_effacement_modele_erreur"],ENT_QUOTES,$charset)."<br /><strong>".$liste."</strong>");
931                                        print $this->show_form();               
932                                        return; 
933                                }
934                                $this->delete();               
935                                print "<div class='row'><div class='msg-perio'>".$msg[maj_encours]."</div></div>";
936                                $id_form = md5(microtime());
937                                $retour = "./catalog.php?categ=serials&sub=view&serial_id=$serial_id&view=modele";
938                                print "<form class='form-$current_module' name=\"dummy\" method=\"post\" action=\"$retour\" style=\"display:none\">
939                                        <input type=\"hidden\" name=\"id_form\" value=\"$id_form\">
940                                        </form>
941                                        <script type=\"text/javascript\">document.dummy.submit();</script>
942                                        </div>";
943                        break;
944                        default:
945                                print $this->show_form();
946                                break;
947                }
948        }
949       
950        function calc_selection($val,$size){
951                $ret='';
952                for ($i=0; $i<$size; $i++) {
953                        if(!isset($val[$i+1])) $ret .='1'; else $ret .='0';
954                }               
955                return $ret;
956        }
957}
958
959class abts_modeles {
960       
961        var $modeles = array(); //Tableau des IDs des modèles
962       
963    function abts_modeles($id_perio) {
964        $requete="select modele_id from abts_modeles where num_notice=$id_perio";
965        $resultat=mysql_query($requete);
966        while ($r=mysql_fetch_object($resultat)) {
967                $modele=new abts_modele($r->modele_id);
968                if (!$modele->error) $this->modeles[]=$modele;
969        }
970    }
971   
972    function show_list() {
973        global $modele_list,$msg;
974        $r=$modele_list;
975        $modeles="";
976        if (count($this->modeles)) {
977                for ($i=0; $i<count($this->modeles); $i++) {
978                        $modeles.=$this->modeles[$i]->show_modele();
979                }
980        } else $modeles=$msg["abts_modeles_no_modele"];
981        return str_replace("!!modele_list!!",$modeles,$r);
982    }
983}
984
985/*function sql_value($rqt)
986{
987        $result=mysql_query($rqt);
988        $row = mysql_fetch_row($result);
989        return $row[0];
990}*/
991?>
Note: See TracBrowser for help on using the repository browser.