source: pmb4.2/trunk/fuentes/pmb/includes/fields_empr.inc.php @ 819

Last change on this file since 819 was 815, checked in by jrpelegrina, 4 years ago

Initial release of pmb 4.2

  • Property svn:executable set to *
File size: 103.3 KB
Line 
1<?php
2// +-------------------------------------------------+
3// © 2002-2010 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net)
4// +-------------------------------------------------+
5// $Id: fields_empr.inc.php,v 1.103.2.8 2015-12-02 12:44:02 apetithomme Exp $
6
7if (stristr($_SERVER['REQUEST_URI'], ".inc.php")) die("no access");
8
9require_once($class_path."/categories.class.php");
10require_once("$class_path/editor.class.php");
11
12$aff_list_empr=array("text"=>"aff_text_empr","list"=>"aff_list_empr","query_list"=>"aff_query_list_empr","query_auth"=>"aff_query_auth_empr","date_box"=>"aff_date_box_empr","comment"=>"aff_comment_empr","external"=>"aff_external_empr","url"=>"aff_url_empr","resolve"=>"aff_resolve_empr","marclist"=>"aff_marclist_empr","html"=>"aff_html_empr","text_i18n"=>"aff_text_i18n_empr");
13$aff_list_empr_search=array("text"=>"aff_text_empr_search","list"=>"aff_list_empr_search","query_list"=>"aff_query_list_empr_search","query_auth"=>"aff_query_auth_empr_search","date_box"=>"aff_date_box_empr_search","comment"=>"aff_comment_empr_search","external"=>"aff_external_empr_search","url"=>"aff_url_empr_search","resolve"=>"aff_resolve_empr_search","marclist"=>"aff_marclist_empr_search","html"=>"aff_comment_empr_search","text_i18n"=>"aff_text_i18n_empr_search");
14$aff_filter_list_empr=array("text"=>"aff_filter_text_empr","list"=>"aff_filter_list_empr","query_list"=>"aff_filter_query_list_empr","query_auth"=>"aff_filter_query_auth_empr","date_box"=>"aff_filter_date_box_empr","comment"=>"aff_filter_comment_empr","external"=>"aff_filter_external_empr","url"=>"aff_filter_resolve_empr","resolve"=>"aff_filter_resolve_empr","marclist"=>"aff_filter_marclist_empr","html"=>"aff_filter_comment_empr","text_i18n"=>"aff_filter_text_i18n_empr");
15$chk_list_empr=array("text"=>"chk_text_empr","list"=>"chk_list_empr","query_list"=>"chk_query_list_empr","query_auth"=>"chk_query_auth_empr","date_box"=>"chk_date_box_empr","comment"=>"chk_comment_empr","external"=>"chk_external_empr","url"=>"chk_url_empr","resolve"=>"chk_resolve_empr","marclist"=>"chk_marclist_empr","html"=>"chk_comment_empr","text_i18n"=>"chk_text_i18n_empr");
16$val_list_empr=array("text"=>"val_text_empr","list"=>"val_list_empr","query_list"=>"val_query_list_empr","query_auth"=>"val_query_auth_empr","date_box"=>"val_date_box_empr","comment"=>"val_comment_empr","external"=>"val_external_empr","url"=>"val_url_empr","resolve"=>"val_resolve_empr","marclist"=>"val_marclist_empr","html"=>"val_html_empr","text_i18n"=>"val_text_i18n_empr");
17$type_list_empr=array("text"=>$msg["parperso_text"],"list"=>$msg["parperso_choice_list"],"query_list"=>$msg["parperso_query_choice_list"],"query_auth"=>$msg["parperso_authorities"],"date_box"=>$msg["parperso_date"],"comment"=>$msg["parperso_comment"],"external"=>$msg["parperso_external"],"url"=>$msg["parperso_url"],"resolve"=>$msg["parperso_resolve"],"marclist"=>$msg["parperso_marclist"],"html"=>$msg["parperso_html"],"text_i18n"=>$msg["parperso_text_i18n"]);
18$options_list_empr=array("text"=>"options_text.php","list"=>"options_list.php","query_list"=>"options_query_list.php","query_auth"=>"options_query_authorities.php","date_box"=>"options_date_box.php","comment"=>"options_comment.php","external"=>"options_external.php","url"=>"options_url.php","resolve"=>"options_resolve.php","marclist"=>"options_marclist.php","html"=>"options_html.php","text_i18n"=>"options_text_i18n.php");
19
20// formulaire de saisie des param perso des autorités
21function aff_query_auth_empr($field,&$check_scripts,$script="") {
22        global $charset;
23        global $_custom_prefixe_;       
24        global $msg,$lang;
25       
26        if($field["OPTIONS"][0]["METHOD"]["0"]["value"]==1) {
27                $text_name=$field[NAME]."_id";
28                $hidden_name=$field[NAME];
29        } else {
30                $text_name=$field[NAME];
31                $hidden_name=$field[NAME]."_id";
32        }
33        //pré-remplissage
34        $param = $text_name;
35        global $$param;
36       
37        switch($field["OPTIONS"][0]["DATA_TYPE"]["0"]["value"]) {
38                case 1:$what="auteur";$completion='authors';break;//auteurs
39                case 2:$what="categorie";$completion="categories_mul";break;//categories
40                case 3:$what="editeur";$completion="publishers";break;//Editeurs
41                case 4:$what="collection";$completion="collections";break;//collection
42                case 5:$what="subcollection";$completion="subcollections";break;// subcollection
43                case 6:$what="serie";$completion="serie";break;//Titre de serie
44                case 7:$what="indexint";$completion="indexint"; break;// Indexation decimale
45                case 8:$what="titre_uniforme";$completion="titre_uniforme";     break;// titre uniforme
46        }
47
48        $values=$field[VALUES];
49       
50        $options=$field[OPTIONS][0];
51       
52        if ($values=="") $values=array();
53        $caller = get_form_name();
54
55        $id_thes_unique=$field["OPTIONS"][0]["ID_THES"]["0"]["value"];
56        $n=count($values);
57        $ret="<script src='javascript/ajax.js'></script>";
58        if (($n==0)||($options[MULTIPLE][0][value]!="yes")) $n=1;
59        if ($options[MULTIPLE][0][value]=="yes") {
60                $readonly='';
61                $ret.="<script>
62                function fonction_selecteur_".$field["NAME"]."() {
63                        name=this.getAttribute('id').substring(4);
64                        name_id = name;
65                        openPopUp('./select.php?what=$what&caller=$caller&p1='+name_id+'&p2=f_'+name_id+'&perso_id=".$field["ID"]."&custom_prefixe=".$_custom_prefixe_."&dyn=$val_dyn&perso_name=".$field['NAME']."&id_thes_unique=$id_thes_unique', 'select_author2', 400, 400, -2, -2, 'toolbar=no, dependent=yes, resizable=yes, scrollbars=yes');
66                }
67                function fonction_raz_".$field["NAME"]."() {
68                        name=this.getAttribute('id').substring(4);
69                        document.getElementById(name).value='';
70                        document.getElementById('f_'+name).value='';
71                }
72                function add_".$field["NAME"]."() {
73                        template = document.getElementById('div_".$field["NAME"]."');
74                        perso=document.createElement('div');
75                        perso.className='row';         
76
77                        suffixe = eval('document.$caller.n_".$field["NAME"].".value')
78                        nom_id = '".$field["NAME"]."_'+suffixe
79                        f_perso = document.createElement('input');
80                        f_perso.setAttribute('name','f_'+nom_id);
81                        f_perso.setAttribute('id','f_'+nom_id);
82                        f_perso.setAttribute('completion','$completion');
83                        f_perso.setAttribute('persofield','".$field["NAME"]."');
84                        f_perso.setAttribute('autfield',nom_id);
85                        f_perso.setAttribute('type','text');
86                        f_perso.className='saisie-50emr';
87                        $readonly
88                        f_perso.setAttribute('value','');
89                       
90                        del_f_perso = document.createElement('input');
91                        del_f_perso.setAttribute('id','del_".$field["NAME"]."_'+suffixe);
92                        del_f_perso.onclick=fonction_raz_".$field["NAME"].";
93                        del_f_perso.setAttribute('type','button');
94                        del_f_perso.className='bouton';
95                        del_f_perso.setAttribute('readonly','');
96                        del_f_perso.setAttribute('value','X'); 
97                       
98                        f_perso_id = document.createElement('input');
99                        f_perso_id.name=nom_id;
100                        f_perso_id.setAttribute('type','hidden');
101                        f_perso_id.setAttribute('id',nom_id);
102                        f_perso_id.setAttribute('value','');
103       
104                        perso.appendChild(f_perso);
105                        space=document.createTextNode(' ');
106                        perso.appendChild(space);
107                        space=document.createTextNode(' ');
108                        perso.appendChild(space);
109                        perso.appendChild(del_f_perso);
110                        perso.appendChild(f_perso_id);
111
112                        template.appendChild(perso);
113       
114                        document.$caller.n_".$field["NAME"].".value=suffixe*1+1*1 ;
115                        ajax_pack_element(document.getElementById('f_'+nom_id));
116                }
117                </script>
118                ";
119        }
120        $ret.="<input type='hidden' value='$n' name='n_".$field["NAME"]."' />\n<div id='div_".$field["NAME"]."'>";
121        $readonly='';
122        $val_dyn=3;
123        for ($i=0; $i<$n; $i++) {
124                $id=$values[$i];
125               
126                $isbd="";
127                if($id){
128                        switch($field["OPTIONS"][0]["DATA_TYPE"]["0"]["value"]) {
129                                case 1:// auteur
130                                        $aut = new auteur($id);
131                                        $isbd=html_entity_decode($aut->isbd_entry,ENT_QUOTES, $charset);
132                                break;
133                                case 2:// categories
134                                        if ($field["OPTIONS"][0]["CATEG_SHOW"]["0"]["value"]==1) {
135                                                $isbd=html_entity_decode(categories::getLibelle($id,$lang),ENT_QUOTES, $charset);
136                                        } else {
137                                                $isbd=html_entity_decode(categories::listAncestorNames($id,$lang),ENT_QUOTES, $charset);
138                                        }
139                                break;
140                                case 3:// Editeur
141                                        $aut = new editeur($id);
142                                        $isbd=html_entity_decode($aut->isbd_entry,ENT_QUOTES, $charset);
143                                break;
144                                case 4:// collection
145                                        $aut = new collection($id);
146                                        $isbd=html_entity_decode($aut->isbd_entry,ENT_QUOTES, $charset);
147                                break;                 
148                                case 5:// subcollection
149                                        $aut = new subcollection($id);
150                                        $isbd=html_entity_decode($aut->isbd_entry,ENT_QUOTES, $charset);
151                                break;
152                                case 6:// Titre de serie
153                                        $aut = new serie($id);
154                                        $isbd=html_entity_decode($aut->name,ENT_QUOTES, $charset);
155                                break;
156                                case 7:// Indexation decimale
157                                        $aut = new indexint($id);
158                                        $isbd=html_entity_decode($aut->display,ENT_QUOTES, $charset);   
159                                break;
160                                case 8:// titre uniforme
161                                        $aut = new titre_uniforme($id);
162                                        $isbd=html_entity_decode($aut->libelle,ENT_QUOTES, $charset);           
163                                break;
164                        }
165                }
166                $ret.="<input type='text' att_id_filter='".$id_thes_unique."' completion='$completion' autfield='".$field["NAME"]."_$i' class='saisie-50emr' id='f_".$field["NAME"]."_$i'  persofield='".$field["NAME"]."' autfield='".$field["NAME"]."_$i' name='f_".$field["NAME"]."_$i' $readonly value=\"".htmlentities($isbd,ENT_QUOTES,$charset)."\" />\n";
167                $ret.="<input type='hidden' id='".$field["NAME"]."_$i' name='".$field["NAME"]."_$i' value=\"".htmlentities($values[$i],ENT_QUOTES,$charset)."\">";
168                               
169                $ret.="<input type='button' class='bouton' value='X' onclick=\"this.form.f_".$field["NAME"]."_$i.value=''; this.form.".$field["NAME"]."_$i.value=''; \" />\n";
170                if (($i==0)) {
171                        if ($options[MULTIPLE][0][value]=="yes") {                             
172                                $ret.="<input type='button' class='bouton' value='...' onclick=\"openPopUp('./select.php?what=$what&caller=$caller&p1=".$field["NAME"]."_$i&p2=f_".$field["NAME"]."_$i&perso_id=".$field["ID"]."&custom_prefixe=".$_custom_prefixe_."&dyn=$val_dyn&perso_name=".$field['NAME']
173                                ."&max_field=n_".$field["NAME"]."&field_id=".$field["NAME"]."_&field_name_id=f_".$field["NAME"]."_&add_field=add_".$field["NAME"]."&id_thes_unique=".$id_thes_unique."', 'select_perso_".$field["ID"]
174                                ."', 700, 500, -2, -2,'toolbar=no, dependent=yes, resizable=yes, scrollbars=yes')\" />";                       
175                                $ret.=" <input type='button' class='bouton' value='+' onClick=\"add_".$field["NAME"]."();\"/>";
176                        }else {                         
177                                $ret.="<input type='button' class='bouton' value='...' onclick=\"openPopUp('./select.php?what=$what&caller=$caller&p1=".$field["NAME"]."_$i&p2=f_".$field["NAME"]."_$i&perso_id=".$field["ID"]."&custom_prefixe=".$_custom_prefixe_."&dyn=$val_dyn&perso_name=".$field['NAME']
178                                ."&max_field=n_".$field["NAME"]."&field_id=".$field["NAME"]."_0&field_name_id=f_".$field["NAME"]."_0&add_field=add_".$field["NAME"]."&id_thes_unique=".$id_thes_unique."', 'select_perso_".$field["ID"]
179                                ."', 700, 500, -2, -2,'toolbar=no, dependent=yes, resizable=yes, scrollbars=yes')\" />";
180                               
181                        }       
182                }
183                $ret.="<br />";
184        }
185        $ret.="</div>";
186       
187        return $ret;
188}
189
190function aff_query_auth_empr_search($field,&$check_scripts,$varname) {
191
192        global $msg,$lang, $categ,$charset;
193
194        if($field["OPTIONS"][0]["METHOD"]["0"]["value"]==1) {
195                $text_name=$field[NAME]."_id";
196                $hidden_name=$field[NAME];
197        } else {
198                $text_name=$field[NAME];
199                $hidden_name=$field[NAME]."_id";
200        }
201        $id=$field[VALUES][0];
202        //pré-remplissage
203        $param = $text_name;
204        global $$param;
205       
206        switch($field["OPTIONS"][0]["DATA_TYPE"]["0"]["value"]) {
207                case 1:$what="auteur";$completion='authors';break;//auteurs
208                case 2:
209                        $what="categorie";$completion="categories_mul";
210                        //Pour n'appeler que le thésaurus choisi en champ perso
211                        if(isset($field["OPTIONS"][0]["ID_THES"]["0"]["value"])){
212                                $fnamevar_id = "linkfield=\"fieldvar_".$varname."_id_thesaurus\"";
213                                $id_thesaurus="<input  type='hidden' id='fieldvar_".$varname."_id_thesaurus' name='fieldvar_".$varname."_id_thesaurus' value='".$field["OPTIONS"][0]["ID_THES"]["0"]["value"]."'>";
214                                $id_thes_unique=$field["OPTIONS"][0]["ID_THES"]["0"]["value"];
215                        }
216                        break;//categories
217                case 3:$what="editeur";$completion="publishers";break;//Editeurs
218                case 4:$what="collection";$completion="collections";break;//collection
219                case 5:$what="subcollection";$completion="subcollections";break;// subcollection
220                case 6:$what="serie";$completion="serie";break;//Titre de serie
221                case 7:$what="indexint";$completion="indexint"; break;// Indexation decimale
222                case 8:$what="titre_uniforme";$completion="titre_uniforme";     break;// titre uniforme
223        }       
224        $libelle="";
225        if($id){       
226                switch($field["OPTIONS"][0]["DATA_TYPE"]["0"]["value"]) {
227                        case 1:
228                                $aut = new auteur($id);
229                                $isbd=$aut->isbd_entry;
230                                break;
231                        case 2:
232                                if ($field["OPTIONS"][0]["CATEG_SHOW"]["0"]["value"]==1) {
233                                        $isbd=categories::getLibelle($id,$lang);
234                                } else {
235                                        $isbd=categories::listAncestorNames($id,$lang);
236                                }
237                                //print $isbd;
238                                break;
239                        case 3:
240                                $aut=new editeur($id);
241                                $isbd=$aut->isbd_entry;
242                        break;
243                        case 4:
244                                $aut = new collection($id);
245                                $isbd=$aut->isbd_entry;
246                        break;
247                        case 5:
248                                $aut = new subcollection($id);
249                                $isbd=$aut->isbd_entry;
250                        break;
251                        case 6:
252                                $aut = new serie($id);
253                                $isbd=$aut->name;
254                        break;
255                        case 7:
256                                $aut = new indexint($id);
257                                $isbd=$aut->display;
258                        break;
259                        case 8:
260                                $aut = new titre_uniforme($id);
261                                $isbd=$aut->libelle;
262                        break;
263                }
264               
265                $libelle=html_entity_decode($isbd,ENT_QUOTES, $charset);
266        }
267       
268        $ret="<script src='javascript/ajax.js'></script>";
269        switch ($categ) {
270                case "planificateur" :
271                        $form_name = "planificateur_form";
272                        break;
273                default :
274                        $form_name = "formulaire";
275                        break;
276        }
277       
278        $val_dyn=3;
279        $ret.="<input type='text'  completion='$completion' autfield='".$field["NAME"]."' class='saisie-50emr' id='f_".$field["NAME"]."'  persofield='".$field["NAME"]."' autfield='".$field["NAME"]."' name='f_".$field["NAME"]."' $readonly $fnamevar_id value=\"".htmlentities($libelle,ENT_QUOTES,$charset)."\" />\n";
280        $ret.="<input type='hidden' id='".$field["NAME"]."' name='".$varname."[]' value=\"".htmlentities($id,ENT_QUOTES,$charset)."\">";
281       
282        $ret.="<input type='button' class='bouton' value='...' onclick=\"openPopUp('./select.php?what=$what&caller=$caller&p1=".$field["NAME"]."_$i&p2=f_".$field["NAME"]."_$i&perso_id=".$field["ID"]."&custom_prefixe=".$_custom_prefixe_."&dyn=$val_dyn&perso_name=".$field['NAME']
283                                ."&max_field=n_".$field["NAME"]."&field_id=".$field["NAME"]."&field_name_id=f_".$field["NAME"]."&add_field=add_".$field["NAME"].($id_thes_unique?"&id_thes_unique=".$id_thes_unique:"")."', 'select_perso_".$field["ID"]
284                                ."', 700, 500, -2, -2,'toolbar=no, dependent=yes, resizable=yes, scrollbars=yes')\" />";
285        $ret.="<input name='".$hidden_name."' id='".$hidden_name."'  value='".htmlentities($id,ENT_QUOTES,$charset)."' type='hidden'>$id_thesaurus";
286
287        if ($field[MANDATORY]=="yes") $check_scripts.="if (document.".$form_name.".".$field[NAME].".value==\"\") return cancel_submit(\"".sprintf($msg["parperso_field_is_needed"],$field[ALIAS][0][value])."\");\n";
288        return $ret;
289}
290
291// Sauvegarde du formulaire
292function chk_query_auth_empr($field,&$check_message) { 
293        global $charset;
294        global $msg;
295        $name=$field[NAME];
296        $options=$field[OPTIONS][0];
297        global $$name;
298         $val=array();
299         $nn="n_".$name;
300         global $$nn;
301         $n=$$nn;
302         for ($i=0; $i<$n; $i++) {
303                $v=$field["NAME"]."_".$i;
304                global $$v;
305                if ($$v!="") {
306                        $val[]=$$v;
307                }elseif($options["INSERTAUTHORIZED"][0]["value"]=="yes"){
308                        $v2="f_".$v;
309                        global $$v2;
310                        if ($$v2!="") {
311                                $val[]=$$v2;
312                        }
313                }
314         }
315         
316         if (count($val)==0) unset($val);
317       
318        if ($field[MANDATORY]==1) {
319        if ((!isset($val))||((count($val)==1)&&($val[0]==""))) {
320                        $check_message=sprintf($msg["parperso_field_is_needed"],$field[ALIAS]);
321                        return 0;
322                }
323        }
324       
325        $check_datatype_message="";
326        $val_1=chk_datatype($field,$val,$check_datatype_message);
327        if ($check_datatype_message) {
328                $check_message=$check_datatype_message;
329                return 0;
330        }
331        $$name=$val_1;
332        return 1;
333}
334
335// affichage de l'autorité
336function val_query_auth_empr($field,$val) {
337        global $lang,$pmb_perso_sep,$charset;
338       
339        $name=$field[NAME];
340        $options=$field[OPTIONS][0];
341        $isbd_s=array();
342        if(!$val)return "";
343        foreach($val as $id){
344                if($id)
345                switch($field["OPTIONS"][0]["DATA_TYPE"]["0"]["value"]) {
346                        case 1:// auteur
347                                $aut = new auteur($id);
348                                $isbd_s[]=html_entity_decode($aut->isbd_entry,ENT_QUOTES, $charset);
349                        break;
350                        case 2:// categories
351                                if ($field["OPTIONS"][0]["CATEG_SHOW"]["0"]["value"]==1) {
352                                        $isbd_s[]=html_entity_decode(categories::getLibelle($id,$lang),ENT_QUOTES, $charset);
353                                } else {
354                                        $isbd_s[]=html_entity_decode(categories::listAncestorNames($id,$lang),ENT_QUOTES, $charset);
355                                }
356                        break;
357                        case 3:// Editeur
358                                $aut = new editeur($id);
359                                $isbd_s[]=html_entity_decode($aut->isbd_entry,ENT_QUOTES, $charset);
360                        break;
361                        case 4:// collection
362                                $aut = new collection($id);
363                                $isbd_s[]=html_entity_decode($aut->isbd_entry,ENT_QUOTES, $charset);
364                        break;                 
365                        case 5:// subcollection
366                                $aut = new subcollection($id);
367                                $isbd_s[]=html_entity_decode($aut->isbd_entry,ENT_QUOTES, $charset);
368                        break;
369                        case 6:// Titre de serie
370                                $aut = new serie($id);
371                                $isbd_s[]=html_entity_decode($aut->name,ENT_QUOTES, $charset);
372                        break;
373                        case 7:// Indexation decimale
374                                $aut = new indexint($id);
375                                $isbd_s[]=html_entity_decode($aut->display,ENT_QUOTES, $charset);                       
376                        break;
377                        case 8:// titre uniforme
378                                $aut = new titre_uniforme($id);
379                                $isbd_s[]=html_entity_decode($aut->libelle,ENT_QUOTES, $charset);                       
380                        break;
381                }
382        }
383        $aff=implode($pmb_perso_sep,$isbd_s);
384       
385        return $aff;
386}
387
388
389function chk_datatype($field,$values,&$check_datatype_message) {
390        global $chk_type_list;
391        global $msg;
392       
393        //Nettoyage des valeurs vides
394        if(isset($values)) {
395                $chk_values = array();
396                foreach ($values as $val) {
397                        if ($val != "") $chk_values[] = $val; 
398                }
399                $values = $chk_values;
400        }
401        if (((!isset($values))||((count($values)==1)&&($values[0]=="")))&&($field[MANDATORY]!=1)) return $values;
402        for ($i=0; $i<count($values); $i++) {
403                $chk_message="";
404                eval("\$val=".$chk_type_list[$field[DATATYPE]]."(stripslashes(\$values[\$i]),\$chk_message);");
405                if ($chk_message) {
406                        $check_datatype_message=sprintf($msg["parperso_chk_datatype"],$field[NAME],$chk_message);
407                }
408                $values[$i]=addslashes($val);
409        }
410        return $values;
411}
412
413function format_output($field,$values) {
414        global $format_list;
415        for ($i=0; $i<count($values); $i++) {
416                eval("\$val=".$format_list[$field[DATATYPE]]."(\$values[\$i]);");
417                $values[$i]=$val;
418        }
419        return $values;
420}
421
422//fonction de découpage d'une chaine trop longue
423function cutlongwords($valeur) {
424        global $charset;
425        $valeur=str_replace("\n"," ",$valeur);
426        if (strlen($valeur)>=20) {
427        $pos=strrpos(substr($valeur,0,20)," ");
428        if ($pos) {
429                $valeur=substr($valeur,0,$pos+1)."...";
430        } else $valeur=substr($valeur,0,20)."...";
431    } 
432    return $valeur;             
433}
434
435function aff_date_box_empr($field,&$check_scripts) {
436        global $charset;
437        global $msg;
438        global $base_path;
439        $values = ($field['VALUES'] ? $field['VALUES'] : array(""));
440        $options=$field[OPTIONS][0];
441        $afield_name = $field["ID"];
442        $count = 0;
443        $ret = "";
444        foreach ($values as $value) {
445                $d=explode("-",$value);
446       
447        if ((!@checkdate($d[1],$d[2],$d[0]))&&(!$options["DEFAULT_TODAY"][0]["value"])) {
448                $val=date("Y-m-d",time());
449                $val_popup=date("Ymd",time());
450        } else if ((!@checkdate($d[1],$d[2],$d[0]))&&($options["DEFAULT_TODAY"][0]["value"])) {
451                $val_popup="";
452                $val="";
453        } else {
454                $val_popup=$d[0].$d[1].$d[2];
455                        $val=$value;
456                }
457                $ret .= "<div>
458                                        <input type='hidden' id='".$field[NAME]."_val_".$count."' name='".$field[NAME]."[]' value='$val' />
459                                        <input class='bouton' type='button' name='".$field[NAME]."_lib_".$count."' value='".($val_popup?formatdate($val_popup):htmlentities($msg["parperso_nodate"],ENT_QUOTES,$charset))."' onClick=\"openPopUp('".$base_path."/select.php?what=calendrier&caller='+this.form.name+'&date_caller=".$val_popup."&param1=".$field[NAME]."_val_".$count."&param2=".$field[NAME]."_lib_".$count."&auto_submit=NO&date_anterieure=YES', 'date_".$field[NAME]."', 250, 300, -2, -2, 'toolbar=no, dependent=yes, resizable=yes')\" />&nbsp;
460                                        <input class='bouton' type='button' value='X' onClick='this.form.elements[\"".$field[NAME]."_lib_".$count."\"].value=\"".htmlentities($msg["parperso_nodate"],ENT_QUOTES,$charset)."\"; document.getElementById(\"".$field[NAME]."_val_".$count."\").value=\"\"; '/>";
461                if ($options[REPEATABLE][0][value] && !$count)
462                        $ret .= '<input class="bouton" type="button" value="+" onclick="add_custom_date_box_(\''.$afield_name.'\', \''.addslashes($field[NAME]).'\',\''.(!$options["DEFAULT_TODAY"][0]["value"] ? formatdate(date("Ymd",time())).'\',\''.date("Y-m-d",time()) : '\',\'').'\')">';
463                $ret .= '</div>';
464                $count++;
465        }
466        if ($options[REPEATABLE][0][value]) {
467                $ret .= '<input id="customfield_date_box_'.$afield_name.'" type="hidden" name="customfield_date_box_'.$afield_name.'" value="'.$count.'">';
468                $ret .= '<div id="spaceformorecustomfielddatebox_'.$afield_name.'"></div>';
469                $ret .= "<script>
470                        function add_custom_date_box_(field_id, field_name, value, value_popup) {
471                                var count = document.getElementById('customfield_date_box_'+field_id).value;
472                               
473                                var val = document.createElement('input');
474                                val.setAttribute('name', field_name + '[]');
475                                val.setAttribute('id', field_name + '_val_' + count);
476                        val.setAttribute('type','hidden');
477                                if (value) {
478                                val.setAttribute('value',value_popup);
479                                } else {
480                                        val.setAttribute('value','');
481                                }
482                               
483                                var lib = document.createElement('input');
484                        lib.setAttribute('name',field_name + '_lib_' + count);
485                        lib.setAttribute('class','bouton');
486                        lib.setAttribute('type','button');
487                                if (value_popup) {
488                                lib.setAttribute('value',value);
489                                } else {
490                                        lib.setAttribute('value','".htmlentities($msg["parperso_nodate"],ENT_QUOTES,$charset)."');
491                                }
492                                lib.addEventListener('click', function() {
493                                        openPopUp('".$base_path."/select.php?what=calendrier&caller='+this.form.name+'&date_caller=' + value_popup + '&param1=' + field_name + '_val_' + count + '&param2=' + field_name + '_lib_' + count + '&auto_submit=NO&date_anterieure=YES', 'date_' + field_name, 250, 300, -2, -2, 'toolbar=no, dependent=yes, resizable=yes');
494                                }, false);
495                               
496                                var del = document.createElement('input');
497                                del.setAttribute('type', 'button');
498                        del.setAttribute('class','bouton');
499                        del.setAttribute('value','X');
500                                del.addEventListener('click', function() {
501                                        this.form.elements[field_name + \"_lib_\" + count].value=\"".htmlentities($msg["parperso_nodate"],ENT_QUOTES,$charset)."\";
502                                        document.getElementById(field_name + '_val_' + count).value=\"\";
503                                }, false);
504                               
505                                var br = document.createElement('br');
506                               
507                                document.getElementById('spaceformorecustomfielddatebox_'+field_id).appendChild(val);
508                                document.getElementById('spaceformorecustomfielddatebox_'+field_id).appendChild(lib);
509                                document.getElementById('spaceformorecustomfielddatebox_'+field_id).appendChild(del);
510                                document.getElementById('spaceformorecustomfielddatebox_'+field_id).appendChild(br);
511                                document.getElementById('customfield_date_box_'+field_id).value = document.getElementById('customfield_date_box_'+field_id).value * 1 + 1;
512                        }
513                </script>";
514        }
515        if ($field[MANDATORY]==1) {
516                $caller = get_form_name();
517                $check_scripts.="if (document.forms[\"".$caller."\"].elements[\"".$field[NAME]."[]\"].value==\"\") return cancel_submit(\"".sprintf($msg["parperso_field_is_needed"],$field[ALIAS])."\");\n";
518        }
519        return $ret;
520}
521
522function aff_date_box_empr_search($field,&$check_scripts,$varname) {
523        global $charset;
524        global $msg;
525       
526        $values=$field[VALUES];
527        $d=explode("-",$values[0]);
528        if (!@checkdate($d[1],$d[2],$d[0])) {
529                $val='';
530                $val_popup=date("Ymd",time());
531                $val_lib=$msg['format_date_input_placeholder'];
532        } else {
533                $val=$values[0];
534                $val_popup=$d[0].$d[1].$d[2];
535                $val_lib=formatdate($val_popup);
536        }
537        $ret="<input type='hidden' name='".$varname."[]' value='$val' />
538                                <input class='bouton' type='button' name='".$varname."_lib' value='".$val_lib."' onClick=\"openPopUp('./select.php?what=calendrier&caller='+this.form.name+'&date_caller=".$val_popup."&param1=".$varname."[]&param2=".$varname."_lib&auto_submit=NO&date_anterieure=YES', 'date_".$varname."', 250, 300, -2, -2, 'toolbar=no, dependent=yes, resizable=yes')\"   />";
539        return $ret;
540}
541
542function chk_date_box_empr($field,&$check_message) {
543        $name=$field[NAME];
544        global $$name;
545        $val=$$name;
546       
547        $check_datatype_message="";
548        $val_1=chk_datatype($field,$val,$check_datatype_message);
549        if ($check_datatype_message) {
550                $check_message=$check_datatype_message;
551                return 0;
552        }
553        $$name=$val_1;
554        return 1;
555}
556
557function val_date_box_empr($field,$value) {
558        global $charset, $pmb_perso_sep;
559
560        $return = "";
561        $format_value = format_output($field,$value);
562        if (!$value) $value = array();
563        foreach ($value as $key => $val) {
564                if ($val == "0000-00-00") $val = "";
565                if ($val) {
566                        if ($return) $return .= $pmb_perso_sep;
567                        $return .= $format_value[$key];
568                }
569        }
570        return $return;
571}
572
573       
574function aff_text_empr($field,&$check_scripts) {
575        global $charset;
576        global $msg;
577       
578        $options=$field[OPTIONS][0];
579        $values=$field[VALUES];
580        $afield_name = $field["ID"];
581        $ret = "";
582        $count = 0;
583        if (!$values) {
584                $values = array("");
585        }
586        foreach ($values as $avalues) {
587                $ret.="<input id=\"".$field[NAME]."\" type=\"text\" size=\"".$options[SIZE][0][value]."\" maxlength=\"".$options[MAXSIZE][0][value]."\" name=\"".$field[NAME]."[]\" value=\"".htmlentities($avalues,ENT_QUOTES,$charset)."\">";
588                if ($options[REPEATABLE][0][value] && !$count)
589                        $ret.='<input class="bouton" type="button" value="+" onclick="add_custom_text_(\''.$afield_name.'\', \''.addslashes($field[NAME]).'\', \''.addslashes($options[SIZE][0][value]).'\', \''.addslashes($options[MAXSIZE][0][value]).'\')">';
590                $ret.="<br />";
591                $count++;
592        }
593        if ($options[REPEATABLE][0][value]) {
594                $ret.='<input id="customfield_text_'.$afield_name.'" type="hidden" name="customfield_text_'.$afield_name.'" value="'.(count($values)).'">';
595                //$ret.='<input class="bouton" type="button" value="+" onclick="add_custom_text_(\''.$afield_name.'\', \''.addslashes($field[NAME]).'\', \''.addslashes($options[SIZE][0][value]).'\', \''.addslashes($options[MAXSIZE][0][value]).'\')">';
596                $ret .= '<div id="spaceformorecustomfieldtext_'.$afield_name.'"></div>';
597                $ret.="<script>
598                        function add_custom_text_(field_id, field_name, field_size, field_maxlen) {
599                                document.getElementById('customfield_text_'+field_id).value = document.getElementById('customfield_text_'+field_id).value * 1 + 1;
600                        count = document.getElementById('customfield_text_'+field_id).value;
601                                f_aut0 = document.createElement('input');
602                        f_aut0.setAttribute('name',field_name+'[]');
603                        f_aut0.setAttribute('type','text');
604                        f_aut0.setAttribute('size',field_size);
605                        f_aut0.setAttribute('maxlength',field_maxlen);
606                        f_aut0.setAttribute('value','');
607                        space=document.createElement('br');
608                                document.getElementById('spaceformorecustomfieldtext_'+field_id).appendChild(f_aut0);
609                                document.getElementById('spaceformorecustomfieldtext_'+field_id).appendChild(space);
610                        }
611                </script>";
612        }
613        if ($field[MANDATORY]==1) {
614                $caller = get_form_name();
615                $check_scripts.="if (document.forms[\"".$caller."\"].elements[\"".$field[NAME]."[]\"].value==\"\") return cancel_submit(\"".sprintf($msg["parperso_field_is_needed"],$field[ALIAS])."\");\n";
616        }
617        return $ret;
618}
619
620function aff_text_empr_search($field,&$check_scripts,$varname) {
621        global $charset;
622        global $msg;
623       
624        $options=$field[OPTIONS][0];
625        $values=$field[VALUES];
626        $ret="<input id=\"".$varname."\" type=\"text\" size=\"".$options[SIZE][0][value]."\" name=\"".$varname."[]\" value=\"".htmlentities($values[0],ENT_QUOTES,$charset)."\">";
627        return $ret;
628}
629
630function chk_text_empr($field,&$check_message) {
631        $name=$field[NAME];
632        global $$name;
633        $val=$$name;
634       
635        $check_datatype_message="";
636        $val_1=chk_datatype($field,$val,$check_datatype_message);
637        if ($check_datatype_message) {
638                $check_message=$check_datatype_message;
639                return 0;
640        }
641        $$name=$val_1;
642        return 1;
643}
644
645function val_text_empr($field,$value) {
646        global $charset,$pmb_perso_sep;
647
648        $value=format_output($field,$value);
649        if (!$value) $value=array();
650       
651        if($field["OPTIONS"][0]["ISHTML"][0]["value"]){
652                return array("ishtml" => true, "value"=>implode($pmb_perso_sep,$value), "withoutHTML" =>implode($pmb_perso_sep,$value));
653        }else{
654                return implode($pmb_perso_sep,$value);
655        }
656}
657
658function aff_comment_empr($field,&$check_scripts) {
659        global $charset;
660        global $msg;
661       
662        $options=$field[OPTIONS][0];
663        $values=$field[VALUES];
664        $afield_name = $field["ID"];
665        $ret = "";
666       
667        $count = 0;
668        if (!$values) {
669                $values = array("");
670        }
671        foreach ($values as $avalues) {
672                $ret.="<textarea id=\"".$field[NAME]."_".$count."\"' cols=\"".$options[COLS][0][value]."\"  rows=\"".$options[ROWS][0][value]."\" maxlength=\"".$options[MAXSIZE][0][value]."\" name=\"".$field[NAME]."[]\" wrap=virtual>".htmlentities($avalues,ENT_QUOTES,$charset)."</textarea>";
673                if ($options[REPEATABLE][0][value] && !$count) {
674                        $ret.='<span style="vertical-align:top"><input class="bouton" type="button" value="+" onclick="add_custom_comment_(\''.$afield_name.'\', \''.addslashes($field[NAME]).'\','.$options[ROWS][0][value].','.$options[COLS][0][value].','.$options[MAXSIZE][0][value].'); "></span>';
675                }
676                $ret.="<br /><br / >";
677                $count++;
678        }
679
680        if ($options[REPEATABLE][0][value]) {
681                $ret.='<input id="customfield_text_'.$afield_name.'" type="hidden" name="customfield_text_'.$afield_name.'" value="'.(count($values)).'">';
682                $ret .= '<div id="spaceformorecustomfieldtext_'.$afield_name.'"></div>';
683                $ret.="<script>
684                var cpt = $count;
685               
686                function add_custom_comment_(field_id, field_name, field_rows, field_cols, field_maxsize) {
687                                document.getElementById('customfield_text_'+field_id).value = document.getElementById('customfield_text_'+field_id).value * 1 + 1;
688                                count = document.getElementById('customfield_text_'+field_id).value;
689                               
690                                f_aut0 = document.createElement('textarea');
691                                f_aut0.setAttribute('name',field_name+'[]');
692                                f_aut0.setAttribute('id',field_name+'_'+cpt);
693                                f_aut0.setAttribute('cols',field_cols);
694                                f_aut0.setAttribute('rows',field_rows);
695                                f_aut0.setAttribute('maxlength',field_maxsize);
696                                f_aut0.setAttribute('wrap','virtual');
697                               
698                                space=document.createElement('br');
699                               
700                                document.getElementById('spaceformorecustomfieldtext_'+field_id).appendChild(f_aut0);
701                                document.getElementById('spaceformorecustomfieldtext_'+field_id).appendChild(space);
702                                document.getElementById('spaceformorecustomfieldtext_'+field_id).appendChild(space);
703                                cpt++;
704                        }
705                        </script>";
706               
707        }
708        if ($field[MANDATORY]==1) {
709                $caller = get_form_name();
710                $check_scripts.="if (document.forms[\"".$caller."\"].elements[\"".$field[NAME]."[]\"].value==\"\") return cancel_submit(\"".sprintf($msg["parperso_field_is_needed"],$field[ALIAS])."\");\n";
711        }
712        return $ret;
713}
714
715function aff_comment_empr_search($field,&$check_scripts,$varname) {
716        global $charset;
717        global $msg;
718       
719        $options=$field[OPTIONS][0];
720        $values=$field[VALUES];
721        $ret="<textarea id=\"".$varname."\" cols=\"".$options[COLS][0][value]."\"  rows=\"".$options[ROWS][0][value]."\" name=\"".$varname."[]\" wrap=virtual>".htmlentities($values[0],ENT_QUOTES,$charset)."</textarea>";
722        return $ret;
723}
724
725function chk_comment_empr($field,&$check_message) {
726        $name=$field[NAME];
727        global $$name;
728        $val=$$name;
729       
730        $check_datatype_message="";
731        $val_1=chk_datatype($field,$val,$check_datatype_message);
732        if ($check_datatype_message) {
733                $check_message=$check_datatype_message;
734                return 0;
735        }
736        $$name=$val_1;
737        return 1;
738}
739
740function val_comment_empr($field,$value) {
741        global $charset,$pmb_perso_sep;
742
743        $value=format_output($field,$value);
744        if (!$value) $value=array();
745       
746        if($field["OPTIONS"][0]["ISHTML"][0]["value"]){
747                return array("ishtml" => true, "value"=>implode($pmb_perso_sep,$value), "withoutHTML" =>implode($pmb_perso_sep,$value));
748        }else{
749                return implode($pmb_perso_sep,$value);
750        }
751}
752
753function val_html_empr($field,$value) {
754        global $charset,$pmb_perso_sep;
755
756        $value=format_output($field,$value);
757        if (!$value) $value=array();
758
759        return array("ishtml" => true, "value"=>implode($pmb_perso_sep,$value), "withoutHTML" =>implode($pmb_perso_sep,$value));
760}
761
762function aff_list_empr($field,&$check_scripts,$script="") {
763        global $charset;
764        global $_custom_prefixe_;
765        $_custom_prefixe_=$field["PREFIX"];
766       
767        $options=$field[OPTIONS][0];
768        $values=$field[VALUES];
769        if ($values=="") $values=array();
770       
771        if ($options["AUTORITE"][0]["value"]!="yes") {
772                if ($options["CHECKBOX"][0]["value"]=="yes"){
773                        if ($options[MULTIPLE][0][value]=="yes") $type = "checkbox";
774                        else $type = "radio";
775                        $ret="";
776                        if (($options[UNSELECT_ITEM][0][VALUE]!="")&&($options[UNSELECT_ITEM][0][value]!="")) {
777                                $ret.= "<input id='".$field[NAME]."_".$options[UNSELECT_ITEM][0][VALUE]."' type='$type' name='".$field[NAME]."[]' checked=checked";
778                                $ret.=" value='".$options[UNSELECT_ITEM][0][VALUE]."' /><span id='lib_".$field[NAME]."_".$options[UNSELECT_ITEM][0][VALUE]."'>&nbsp;".$options[UNSELECT_ITEM][0][value]."</span>";
779                        }
780                        $requete="select ".$_custom_prefixe_."_custom_list_value, ".$_custom_prefixe_."_custom_list_lib from ".$_custom_prefixe_."_custom_lists where ".$_custom_prefixe_."_custom_champ=".$field[ID]." order by ordre";
781                        $resultat=pmb_mysql_query($requete);   
782                        if ($resultat) {
783                                $i=0;
784                                while ($r=pmb_mysql_fetch_array($resultat)) {
785                                        $ret.= "<input id='".$field[NAME]."_".$r[$_custom_prefixe_."_custom_list_value"]."' type='$type' name='".$field[NAME]."[]'";
786                                        if (count($values)) {
787                                                $as=in_array($r[$_custom_prefixe_."_custom_list_value"],$values);
788                                                if (($as!==FALSE)&&($as!==NULL)) $ret.=" checked=checked";
789                                        } else {
790                                                //Recherche de la valeur par défaut s'il n'y a pas de choix vide
791                                                if (($options[UNSELECT_ITEM][0][VALUE]=="") || ($options[UNSELECT_ITEM][0][value]=="")) {
792                                                        //si aucune valeur par défaut, on coche le premier pour les boutons de type radio
793                                                        if (($i==0)&&($type=="radio")&&($options[DEFAULT_VALUE][0][value]=="")) $ret.=" checked=checked";
794                                                        elseif ($r[$_custom_prefixe_."_custom_list_value"]==$options[DEFAULT_VALUE][0][value]) $ret.=" checked=checked";
795                                                }
796                                        }
797                                        $ret.=" value='".$r[$_custom_prefixe_."_custom_list_value"]."'/><span id='lib_".$field[NAME]."_".$r[$_custom_prefixe_."_custom_list_value"]."'>&nbsp;".$r[$_custom_prefixe_."_custom_list_lib"]."</span>";
798                                        $i++;
799                                }
800                        }       
801                }else{
802                        $ret="<select id=\"".$field[NAME]."\" name=\"".$field[NAME];
803                        $ret.="[]";
804                        $ret.="\" ";
805                        if ($script) $ret.=$script." ";
806                        if ($options[MULTIPLE][0][value]=="yes") $ret.="multiple";
807                        $ret.=">\n";
808                        if (($options[UNSELECT_ITEM][0][VALUE]!="")||($options[UNSELECT_ITEM][0][value]!="")) {
809                                $ret.="<option value=\"".htmlentities($options[UNSELECT_ITEM][0][VALUE],ENT_QUOTES,$charset)."\">".htmlentities($options[UNSELECT_ITEM][0][value],ENT_QUOTES,$charset)."</option>\n";
810                        }
811                        $requete="select ".$_custom_prefixe_."_custom_list_value, ".$_custom_prefixe_."_custom_list_lib from ".$_custom_prefixe_."_custom_lists where ".$_custom_prefixe_."_custom_champ=".$field[ID]." order by ordre";
812                        $resultat=pmb_mysql_query($requete);
813                        if ($resultat) {
814                                $i=0;
815                                while ($r=pmb_mysql_fetch_array($resultat)) {
816                                        $options[ITEMS][0][ITEM][$i][VALUE]=$r[$_custom_prefixe_."_custom_list_value"];
817                                        $options[ITEMS][0][ITEM][$i][value]=$r[$_custom_prefixe_."_custom_list_lib"];
818                                        $i++;
819                                }
820                        }
821                        for ($i=0; $i<count($options[ITEMS][0][ITEM]); $i++) {
822                                $ret.="<option value=\"".htmlentities($options[ITEMS][0][ITEM][$i][VALUE],ENT_QUOTES,$charset)."\"";
823                                if (count($values)) {
824                                        $as=array_search($options[ITEMS][0][ITEM][$i][VALUE],$values);
825                                        if (($as!==FALSE)&&($as!==NULL)) $ret.=" selected"; 
826                                } else {
827                                        //Recherche de la valeur par défaut
828                                        if ($options[ITEMS][0][ITEM][$i][VALUE]==$options[DEFAULT_VALUE][0][value]) $ret.=" selected";
829                                }
830                                $ret.=">".htmlentities($options[ITEMS][0][ITEM][$i][value],ENT_QUOTES,$charset)."</option>\n";
831                        }
832                $ret.= "</select>\n";
833                }
834        }else {
835                $caller = get_form_name();
836
837                if ($values) {
838                        $values_received=$values;
839                        $values=array();
840                        $libelles=array();
841                        $requete="select ".$_custom_prefixe_."_custom_list_value, ".$_custom_prefixe_."_custom_list_lib from ".$_custom_prefixe_."_custom_lists where ".$_custom_prefixe_."_custom_champ=".$field[ID]." order by ordre";
842                        $resultat=pmb_mysql_query($requete);
843                        $i=0;
844                        while ($r=pmb_mysql_fetch_array($resultat)) {
845                                $as=array_search($r[$_custom_prefixe_."_custom_list_value"],$values_received);
846                                if (($as!==null)&&($as!==false)) {
847                                        $values[$i]=$r[$_custom_prefixe_."_custom_list_value"];
848                                        $libelles[$i]=$r[$_custom_prefixe_."_custom_list_lib"];
849                                        $i++;
850                                }
851                        }
852                } else {
853                        //Recherche de la valeur par défaut
854                        if ($options[DEFAULT_VALUE][0][value]) {
855                                $requete="select ".$_custom_prefixe_."_custom_list_value, ".$_custom_prefixe_."_custom_list_lib from ".$_custom_prefixe_."_custom_lists where ".$_custom_prefixe_."_custom_champ=".$field[ID]." and ".$_custom_prefixe_."_custom_list_value='".$options[DEFAULT_VALUE][0][value]."'  order by ordre";
856                                $resultat=pmb_mysql_query($requete);
857                                while ($r=pmb_mysql_fetch_array($resultat)) {
858                                        $values[0]=$r[$_custom_prefixe_."_custom_list_value"];
859                                        $libelles[0]=$r[$_custom_prefixe_."_custom_list_lib"];
860                                }
861                        }
862                }
863                $readonly='';
864                $n=count($values);
865                if(($options[MULTIPLE][0][value]=="yes") )      $val_dyn=1;
866                else $val_dyn=0;
867                if (($n==0)||($options[MULTIPLE][0][value]!="yes")) $n=1;
868                if ($options[MULTIPLE][0][value]=="yes") {
869                        $readonly='';
870                        $ret.="<script>
871                        function fonction_selecteur_".$field["NAME"]."() {
872                                name=this.getAttribute('id').substring(4);
873                                name_id = name;
874                                openPopUp('./select.php?what=perso&caller=$caller&p1='+name_id+'&p2=f_'+name_id+'&perso_id=".$field["ID"]."&custom_prefixe=".$_custom_prefixe_."&dyn=$val_dyn&perso_name=".$field['NAME']."', 'select_author2', 400, 400, -2, -2, 'toolbar=no, dependent=yes, resizable=yes, scrollbars=yes');
875                        }
876                        function fonction_raz_".$field["NAME"]."() {
877                                name=this.getAttribute('id').substring(4);
878                                document.getElementById(name).value=0;
879                                document.getElementById('f_'+name).value='';
880                        }
881                        function add_".$field["NAME"]."() {
882                                template = document.getElementById('div_".$field["NAME"]."');
883                                perso=document.createElement('div');
884                                perso.className='row';         
885
886                                suffixe = eval('document.$caller.n_".$field["NAME"].".value')
887                                nom_id = '".$field["NAME"]."_'+suffixe
888                                f_perso = document.createElement('input');
889                                f_perso.setAttribute('name','f_'+nom_id);
890                                f_perso.setAttribute('id','f_'+nom_id);
891                                f_perso.setAttribute('completion','perso_".$_custom_prefixe_."');
892                                f_perso.setAttribute('persofield','".$field["NAME"]."');
893                                f_perso.setAttribute('autfield',nom_id);
894                                f_perso.setAttribute('type','text');
895                                f_perso.className='saisie-50emr';
896                                $readonly
897                                f_perso.setAttribute('value','');
898                               
899                                del_f_perso = document.createElement('input');
900                                del_f_perso.setAttribute('id','del_".$field["NAME"]."_'+suffixe);
901                                del_f_perso.onclick=fonction_raz_".$field["NAME"].";
902                                del_f_perso.setAttribute('type','button');
903                                del_f_perso.className='bouton';
904                                del_f_perso.setAttribute('readonly','');
905                                del_f_perso.setAttribute('value','X');
906               
907                                sel_f_perso = document.createElement('input');
908                                sel_f_perso.setAttribute('id','sel_".$field["NAME"]."_'+suffixe);
909                                sel_f_perso.setAttribute('type','button');
910                                sel_f_perso.className='bouton';
911                                sel_f_perso.setAttribute('readonly','');
912                                sel_f_perso.setAttribute('value','...');
913                                sel_f_perso.onclick=fonction_selecteur_".$field["NAME"].";
914               
915                                f_perso_id = document.createElement('input');
916                                f_perso_id.name=nom_id;
917                                f_perso_id.setAttribute('type','hidden');
918                                f_perso_id.setAttribute('id',nom_id);
919                                f_perso_id.setAttribute('value','');
920               
921                                perso.appendChild(f_perso);
922                                space=document.createTextNode(' ');
923                                perso.appendChild(space);
924                                perso.appendChild(sel_f_perso);
925                                space=document.createTextNode(' ');
926                                perso.appendChild(space);
927                                perso.appendChild(del_f_perso);
928                                perso.appendChild(f_perso_id);
929       
930                                template.appendChild(perso);
931               
932                                document.$caller.n_".$field["NAME"].".value=suffixe*1+1*1 ;
933                                ajax_pack_element(document.getElementById('f_'+nom_id));
934                        }
935                        </script>
936                        ";
937                }
938                $ret.="<input type='hidden' value='$n' name='n_".$field["NAME"]."'/>\n<div id='div_".$field["NAME"]."'>";
939                $readonly='';
940                for ($i=0; $i<$n; $i++) {
941                        $ret.="<input type='text' class='saisie-50emr' id='f_".$field["NAME"]."_$i' completion='perso_".$_custom_prefixe_."' persofield='".$field["NAME"]."' autfield='".$field["NAME"]."_$i' name='f_".$field["NAME"]."_$i' $readonly value=\"".htmlentities($libelles[$i],ENT_QUOTES,$charset)."\" />\n";
942                        $ret.="<input type='hidden' id='".$field["NAME"]."_$i' name='".$field["NAME"]."_$i' value=\"".htmlentities($values[$i],ENT_QUOTES,$charset)."\">";
943                       
944                        $ret.="<input type='button' class='bouton' value='...' onclick=\"openPopUp('./select.php?what=perso&caller=$caller&p1=".$field["NAME"]."_$i&p2=f_".$field["NAME"]."_$i&perso_id=".$field["ID"]."&custom_prefixe=".$_custom_prefixe_."&dyn=$val_dyn&perso_name=".$field['NAME']."', 'select_perso_".$field["ID"]."', 700, 500, -2, -2, 'toolbar=no, dependent=yes, resizable=yes, scrollbars=yes')\" />
945                        <input type='button' class='bouton' value='X' onclick=\"this.form.f_".$field["NAME"]."_$i.value=''; this.form.".$field["NAME"]."_$i.value=''; \" />\n";
946                        if (($i==0)&&($options[MULTIPLE][0][value]=="yes")) {
947                                $ret.=" <input type='button' class='bouton' value='+' onClick=\"add_".$field["NAME"]."();\"/>";
948                        }
949                        $ret.="<br />";
950                }
951                $ret.="</div>";
952        }
953        return $ret;
954}
955
956function aff_list_empr_search($field,&$check_scripts,$varname,$script="") {
957        global $charset;
958        $_custom_prefixe_=$field["PREFIX"];
959       
960        $options=$field[OPTIONS][0];
961        $values=$field[VALUES];
962        if ($values=="") $values=array();
963        $ret="<select id=\"".$varname."\" name=\"".$varname;
964        $ret.="[]";
965        $ret.="\" ";
966        if ($script) $ret.=$script." ";
967        $ret.="multiple";
968        $ret.=">\n";
969        if (($options[UNSELECT_ITEM][0][VALUE]!="")||($options[UNSELECT_ITEM][0][value]!="")) {
970                $ret.="<option value=\"".htmlentities($options[UNSELECT_ITEM][0][VALUE],ENT_QUOTES,$charset)."\">".htmlentities($options[UNSELECT_ITEM][0][value],ENT_QUOTES,$charset)."</option>\n";
971        }
972        $requete="select ".$_custom_prefixe_."_custom_list_value, ".$_custom_prefixe_."_custom_list_lib from ".$_custom_prefixe_."_custom_lists where ".$_custom_prefixe_."_custom_champ=".$field[ID]." order by ordre";
973        $resultat=pmb_mysql_query($requete);
974        if ($resultat) {
975                $i=0;
976                while ($r=pmb_mysql_fetch_array($resultat)) {
977                        $options[ITEMS][0][ITEM][$i][VALUE]=$r[$_custom_prefixe_."_custom_list_value"];
978                        $options[ITEMS][0][ITEM][$i][value]=$r[$_custom_prefixe_."_custom_list_lib"];
979                        $i++;
980                }
981        }
982        for ($i=0; $i<count($options[ITEMS][0][ITEM]); $i++) {
983                $ret.="<option value=\"".htmlentities($options[ITEMS][0][ITEM][$i][VALUE],ENT_QUOTES,$charset)."\"";
984                $as=array_search($options[ITEMS][0][ITEM][$i][VALUE],$values);
985                if (($as!==FALSE)&&($as!==NULL)) $ret.=" selected"; 
986                $ret.=">".htmlentities($options[ITEMS][0][ITEM][$i][value],ENT_QUOTES,$charset)."</option>\n";
987        }
988        $ret.= "</select>\n";
989        return $ret;
990}
991
992function aff_empr_search($field) {
993        $table = array();
994        $table['label'] = $field['TITRE'];
995        $table['name'] = $field['NAME'];
996        $table['type'] =$field['DATATYPE'];
997       
998        $_custom_prefixe_=$field['PREFIX'];
999        $requete="select ".$_custom_prefixe_."_custom_list_value, ".$_custom_prefixe_."_custom_list_lib from ".$_custom_prefixe_."_custom_lists where ".$_custom_prefixe_."_custom_champ=".$field[ID]." order by ordre";
1000        $resultat=pmb_mysql_query($requete);
1001        if ($resultat) {
1002                while ($r=pmb_mysql_fetch_array($resultat)) {
1003                        $value['value_id']=$r[$_custom_prefixe_."_custom_list_value"];
1004                        $value['value_caption']=$r[$_custom_prefixe_."_custom_list_lib"];
1005                        $table['values'][]=$value;
1006                }
1007        }else{
1008                $table['values'] = array();
1009        }
1010        return $table;
1011}
1012
1013function chk_list_empr($field,&$check_message) {
1014        global $charset;
1015        global $msg;
1016       
1017        $name=$field[NAME];
1018        $options=$field[OPTIONS][0];
1019       
1020        global $$name;
1021        if ($options["AUTORITE"][0]["value"]!="yes") {
1022                $val=$$name;
1023        } else {
1024                 $val=array();
1025                 $nn="n_".$name;
1026                 global $$nn;
1027                 $n=$$nn;
1028                 for ($i=0; $i<$n; $i++) {
1029                        $v=$field["NAME"]."_".$i;
1030                        global $$v;
1031                        if ($$v!="") {
1032                                $val[]=$$v;
1033                        }
1034                 }
1035                 if (count($val)==0) unset($val);
1036        }
1037        if ($field[MANDATORY]==1) {
1038                if ((!isset($val))||((count($val)==1)&&($val[0]==""))) {
1039                        $check_message=sprintf($msg["parperso_field_is_needed"],$field[ALIAS]);
1040                        return 0;
1041                }
1042        }
1043       
1044        $check_datatype_message="";
1045        $val_1=chk_datatype($field,$val,$check_datatype_message);
1046        if ($check_datatype_message) {
1047                $check_message=$check_datatype_message;
1048                return 0;
1049        }
1050        $$name=$val_1;
1051       
1052        return 1;
1053}
1054
1055function val_list_empr($field,$val) {
1056        global $charset,$pmb_perso_sep;
1057        global $options_;
1058        $_custom_prefixe_=$field["PREFIX"];
1059
1060        if ($val=="") return "";
1061       
1062        if (!$options_[$_custom_prefixe_][$field[ID]]) {
1063                $requete="select ".$_custom_prefixe_."_custom_list_value, ".$_custom_prefixe_."_custom_list_lib from ".$_custom_prefixe_."_custom_lists where ".$_custom_prefixe_."_custom_champ=".$field[ID]." order by ordre";
1064                $resultat=pmb_mysql_query($requete);
1065                if ($resultat) {
1066                        $i=0;
1067                        while ($r=pmb_mysql_fetch_array($resultat)) {
1068                                $options_[$_custom_prefixe_][$field[ID]][$r[$_custom_prefixe_."_custom_list_value"]]=$r[$_custom_prefixe_."_custom_list_lib"];
1069                                $i++;
1070                        }
1071                }
1072        }
1073        if (!is_array($options_[$_custom_prefixe_][$field[ID]])) return ""; 
1074        $exec_func_array_flip = true;
1075        foreach ($val as $key=>$value) {
1076                if ($value == "") $exec_func_array_flip = false; 
1077        }
1078        if ($exec_func_array_flip) $val_r=array_flip($val);
1079        else $val_r=array();
1080        $val_c=array_intersect_key($options_[$_custom_prefixe_][$field[ID]],$val_r);
1081        if ($val_c=="") $val_c=array();
1082        $val_=implode($pmb_perso_sep,$val_c);
1083        return $val_;
1084}
1085
1086function aff_query_list_empr($field,&$check_scripts,$script="") {
1087        global $charset;
1088        global $_custom_prefixe_;
1089        $values=$field[VALUES];
1090       
1091        $options=$field[OPTIONS][0];
1092       
1093        if ($values=="") $values=array();
1094        if ($options["AUTORITE"][0]["value"]!="yes") {
1095                if ($options["CHECKBOX"][0]["value"]=="yes"){
1096                        if ($options[MULTIPLE][0][value]=="yes") $type = "checkbox";
1097                        else $type = "radio";
1098                        $resultat=pmb_mysql_query($options[QUERY][0][value]);
1099                        if ($resultat) {
1100                                $i=0;
1101                                $ret="<table><tr>";
1102                                $limit = $options[CHECKBOX_NB_ON_LINE][0][value];
1103                                if($limit==0) $limit = 4;
1104                                while ($r=pmb_mysql_fetch_array($resultat)) {
1105                                        if ($i>0 && $i%$limit == 0)$ret.="</tr><tr>";
1106                                        $ret.= "<td><input id='".$field[NAME]."_$i' type='$type' name='".$field[NAME]."[]' ".(in_array($r[0],$values) ? "checked=checked" : "")." value='".$r[0]."'/><span id='lib_".$field[NAME]."_$i'>&nbsp;".$r[1]."</span></td>";
1107                                        $i++;
1108                                }
1109                                $ret.="</tr></table>";
1110                        }       
1111                } else {
1112                        $options=$field[OPTIONS][0];
1113                        $ret="<select id=\"".$field[NAME]."\" name=\"".$field[NAME];
1114                        $ret.="[]";
1115                        $ret.="\" ";
1116                        if ($script) $ret.=$script." ";
1117                        if ($options[MULTIPLE][0][value]=="yes") $ret.="multiple";
1118                        $ret.=">\n";
1119                        if (($options[UNSELECT_ITEM][0][VALUE]!="")||($options[UNSELECT_ITEM][0][value]!="")) {
1120                                $ret.="<option value=\"".htmlentities($options[UNSELECT_ITEM][0][VALUE],ENT_QUOTES,$charset)."\">".htmlentities($options[UNSELECT_ITEM][0][value],ENT_QUOTES,$charset)."</option>\n";
1121                        }
1122                        $resultat=pmb_mysql_query($options[QUERY][0][value]);
1123                        while ($r=pmb_mysql_fetch_row($resultat)) {
1124                                $ret.="<option value=\"".htmlentities($r[0],ENT_QUOTES,$charset)."\"";
1125                                $as=array_search($r[0],$values);
1126                                if (($as!==FALSE)&&($as!==NULL)) $ret.=" selected"; 
1127                                $ret.=">".htmlentities($r[1],ENT_QUOTES,$charset)."</option>\n";
1128                        }
1129                }
1130                $ret.= "</select>\n";
1131        } else {
1132                $caller = get_form_name();
1133
1134                if ($values) {
1135                        $values_received=$values;
1136                        $values_received_bis=$values;
1137                        $values=array();
1138                        $libelles=array();
1139                        $resultat=pmb_mysql_query($options[QUERY][0][value]);
1140                        $i=0;
1141                        while ($r=pmb_mysql_fetch_row($resultat)) {
1142                                $as=array_search($r[0],$values_received);
1143                                if (($as!==null)&&($as!==false)) {
1144                                        $values[$i]=$r[0];
1145                                        $libelles[$i]=$r[1];
1146                                        $i++;
1147                                        unset($values_received_bis[$as]);
1148                                }
1149                        }
1150                        if ($options["INSERTAUTHORIZED"][0]["value"]=="yes") {
1151                                foreach ($values_received_bis as $key=>$val) {
1152                                        $values[$i]="";
1153                                        $libelles[$i]=$val;
1154                                        $i++;
1155                                }
1156                        }
1157                }
1158                $n=count($values);
1159                if(($options[MULTIPLE][0][value]=="yes") )      $val_dyn=1;
1160                else $val_dyn=0;
1161                if (($n==0)||($options[MULTIPLE][0][value]!="yes")) $n=1;
1162                if ($options[MULTIPLE][0][value]=="yes") {
1163//                      $readonly="f_perso.setAttribute('readonly','');";
1164//                      if($options["INSERTAUTHORIZED"][0]["value"]=="yes"){
1165//                              $readonly="";
1166//                      }
1167                        $readonly='';
1168                        $ret.="<script>
1169                        function fonction_selecteur_".$field["NAME"]."() {
1170                                name=this.getAttribute('id').substring(4);
1171                                name_id = name;
1172                                openPopUp('./select.php?what=perso&caller=$caller&p1='+name_id+'&p2=f_'+name_id+'&perso_id=".$field["ID"]."&custom_prefixe=".$_custom_prefixe_."&dyn=$val_dyn&perso_name=".$field['NAME']."', 'select_author2', 400, 400, -2, -2, 'toolbar=no, dependent=yes, resizable=yes, scrollbars=yes');
1173                        }
1174                        function fonction_raz_".$field["NAME"]."() {
1175                                name=this.getAttribute('id').substring(4);
1176                                document.getElementById(name).value='';
1177                                document.getElementById('f_'+name).value='';
1178                        }
1179                        function add_".$field["NAME"]."() {
1180                                template = document.getElementById('div_".$field["NAME"]."');
1181                                perso=document.createElement('div');
1182                                perso.className='row';         
1183
1184                                suffixe = eval('document.$caller.n_".$field["NAME"].".value')
1185                                nom_id = '".$field["NAME"]."_'+suffixe
1186                                f_perso = document.createElement('input');
1187                                f_perso.setAttribute('name','f_'+nom_id);
1188                                f_perso.setAttribute('id','f_'+nom_id);
1189                                f_perso.setAttribute('completion','perso_".$_custom_prefixe_."');
1190                                f_perso.setAttribute('persofield','".$field["NAME"]."');
1191                                f_perso.setAttribute('autfield',nom_id);
1192                                f_perso.setAttribute('type','text');
1193                                f_perso.className='saisie-50emr';
1194                                $readonly
1195                                f_perso.setAttribute('value','');
1196                               
1197                                del_f_perso = document.createElement('input');
1198                                del_f_perso.setAttribute('id','del_".$field["NAME"]."_'+suffixe);
1199                                del_f_perso.onclick=fonction_raz_".$field["NAME"].";
1200                                del_f_perso.setAttribute('type','button');
1201                                del_f_perso.className='bouton';
1202                                del_f_perso.setAttribute('readonly','');
1203                                del_f_perso.setAttribute('value','X');
1204               
1205                                sel_f_perso = document.createElement('input');
1206                                sel_f_perso.setAttribute('id','sel_".$field["NAME"]."_'+suffixe);
1207                                sel_f_perso.setAttribute('type','button');
1208                                sel_f_perso.className='bouton';
1209                                sel_f_perso.setAttribute('readonly','');
1210                                sel_f_perso.setAttribute('value','...');
1211                                sel_f_perso.onclick=fonction_selecteur_".$field["NAME"].";
1212               
1213                                f_perso_id = document.createElement('input');
1214                                f_perso_id.name=nom_id;
1215                                f_perso_id.setAttribute('type','hidden');
1216                                f_perso_id.setAttribute('id',nom_id);
1217                                f_perso_id.setAttribute('value','');
1218               
1219                                perso.appendChild(f_perso);
1220                                space=document.createTextNode(' ');
1221                                perso.appendChild(space);
1222                                perso.appendChild(sel_f_perso);
1223                                space=document.createTextNode(' ');
1224                                perso.appendChild(space);
1225                                perso.appendChild(del_f_perso);
1226                                perso.appendChild(f_perso_id);
1227       
1228                                template.appendChild(perso);
1229               
1230                                document.$caller.n_".$field["NAME"].".value=suffixe*1+1*1 ;
1231                                ajax_pack_element(document.getElementById('f_'+nom_id));
1232                        }
1233                        </script>
1234                        ";
1235                }
1236                $ret.="<input type='hidden' value='$n' name='n_".$field["NAME"]."'\>\n<div id='div_".$field["NAME"]."'>";
1237//              $readonly="readonly";
1238//              if($options["INSERTAUTHORIZED"][0]["value"]=="yes"){
1239//                      $readonly="";
1240//              }
1241                $readonly='';
1242                for ($i=0; $i<$n; $i++) {
1243                        $ret.="<input type='text' class='saisie-50emr' id='f_".$field["NAME"]."_$i' completion='perso_".$_custom_prefixe_."' persofield='".$field["NAME"]."' autfield='".$field["NAME"]."_$i' name='f_".$field["NAME"]."_$i' $readonly value=\"".htmlentities($libelles[$i],ENT_QUOTES,$charset)."\" />\n";
1244                        $ret.="<input type='hidden' id='".$field["NAME"]."_$i' name='".$field["NAME"]."_$i' value=\"".htmlentities($values[$i],ENT_QUOTES,$charset)."\">";
1245                        $ret.="<input type='button' class='bouton' value='...' onclick=\"openPopUp('./select.php?what=perso&caller=$caller&p1=".$field["NAME"]."_$i&p2=f_".$field["NAME"]."_$i&perso_id=".$field["ID"]."&custom_prefixe=".$_custom_prefixe_."&dyn=$val_dyn&perso_name=".$field['NAME']."', 'select_perso_".$field["ID"]."', 700, 500, -2, -2,'toolbar=no, dependent=yes, resizable=yes, scrollbars=yes')\" />
1246                        <input type='button' class='bouton' value='X' onclick=\"this.form.f_".$field["NAME"]."_$i.value=''; this.form.".$field["NAME"]."_$i.value=''; \" />\n";
1247                        if (($i==0)&&($options[MULTIPLE][0][value]=="yes")) {
1248                                $ret.=" <input type='button' class='bouton' value='+' onClick=\"add_".$field["NAME"]."();\"/>";
1249                        }
1250                        $ret.="<br />";
1251                }
1252                $ret.="</div>";
1253        }
1254        return $ret;
1255}
1256
1257function aff_query_list_empr_search($field,&$check_scripts,$varname,$script="") {
1258        global $charset;
1259        $values=$field[VALUES];
1260        if ($values=="") $values=array();
1261        $options=$field[OPTIONS][0];
1262        $ret="<select id=\"".$varname."\" name=\"".$varname;
1263        $ret.="[]";
1264        $ret.="\" ";
1265        if ($script) $ret.=$script." ";
1266        $ret.="multiple";
1267        $ret.=">\n";
1268        if (($options[UNSELECT_ITEM][0][VALUE]!="")||($options[UNSELECT_ITEM][0][value]!="")) {
1269                $ret.="<option value=\"".htmlentities($options[UNSELECT_ITEM][0][VALUE],ENT_QUOTES,$charset)."\">".htmlentities($options[UNSELECT_ITEM][0][value],ENT_QUOTES,$charset)."</option>\n";
1270        }
1271        $resultat=pmb_mysql_query($options[QUERY][0][value]);
1272        while ($r=pmb_mysql_fetch_row($resultat)) {
1273                $ret.="<option value=\"".htmlentities($r[0],ENT_QUOTES,$charset)."\"";
1274                $as=array_search($r[0],$values);
1275                if (($as!==FALSE)&&($as!==NULL)) $ret.=" selected"; 
1276                $ret.=">".htmlentities($r[1],ENT_QUOTES,$charset)."</option>\n";
1277        }
1278        $ret.= "</select>\n";
1279        return $ret;
1280}
1281
1282function chk_query_list_empr($field,&$check_message) {
1283        global $charset;
1284        global $msg;
1285       
1286        $name=$field[NAME];
1287        $options=$field[OPTIONS][0];
1288        global $$name;
1289        if ($options["AUTORITE"][0]["value"]!="yes") {
1290                $val=$$name;
1291        } else {
1292                 $val=array();
1293                 $nn="n_".$name;
1294                 global $$nn;
1295                 $n=$$nn;
1296                 for ($i=0; $i<$n; $i++) {
1297                        $v=$field["NAME"]."_".$i;
1298                        global $$v;
1299                        if ($$v!="") {
1300                                $val[]=$$v;
1301                        }elseif($options["INSERTAUTHORIZED"][0]["value"]=="yes"){
1302                                $v2="f_".$v;
1303                                global $$v2;
1304                                if ($$v2!="") {
1305                                        $val[]=$$v2;
1306                                }
1307                        }
1308                 }
1309                 if (count($val)==0) unset($val);
1310        }
1311        if ($field[MANDATORY]==1) {
1312        if ((!isset($val))||((count($val)==1)&&($val[0]==""))) {
1313                        $check_message=sprintf($msg["parperso_field_is_needed"],$field[ALIAS]);
1314                        return 0;
1315                }
1316        }
1317       
1318        $check_datatype_message="";
1319        $val_1=chk_datatype($field,$val,$check_datatype_message);
1320        if ($check_datatype_message) {
1321                $check_message=$check_datatype_message;
1322                return 0;
1323        }
1324        $$name=$val_1;
1325       
1326        return 1;
1327}
1328
1329function val_query_list_empr($field,$val) {
1330        global $charset,$pmb_perso_sep;
1331        if ($val=="") return "";
1332        $val_c="";
1333        if (($field["OPTIONS"][0]["FIELD0"][0]["value"])&&($field["OPTIONS"][0]["FIELD1"][0]["value"])&&($field["OPTIONS"][0]["OPTIMIZE_QUERY"][0]["value"]=="yes")) {
1334                $val_ads=array_map("addslashes",$val);
1335                $requete="select * from (".$field[OPTIONS][0][QUERY][0][value].") as sub1 where ".$field["OPTIONS"][0]["FIELD0"][0]["value"]." in (BINARY '".implode("',BINARY '",$val_ads)."')";
1336                $resultat=pmb_mysql_query($requete);
1337                if ($resultat && pmb_mysql_num_rows($resultat)) {
1338                        while ($r=pmb_mysql_fetch_row($resultat)) {
1339                                $val_c[]=$r[1];
1340                        }
1341                }
1342        } else {
1343                $resultat=pmb_mysql_query($field[OPTIONS][0][QUERY][0][value]);
1344                if($resultat && pmb_mysql_num_rows($resultat)){
1345                        while ($r=pmb_mysql_fetch_row($resultat)) {
1346                                $options_[$r[0]]=$r[1];
1347                        }
1348                }
1349       
1350                for ($i=0; $i<count($val); $i++) {
1351                        $val_c[$i]=$options_[$val[$i]];
1352                }
1353        }
1354       
1355        if ($val_c=="") $val_c=array();
1356        $val_=implode($pmb_perso_sep,$val_c);
1357        return $val_;
1358}
1359
1360function aff_text_i18n_empr($field,&$check_scripts) {
1361        global $charset, $base_path;
1362        global $msg, $langue_doc, $value_deflt_lang;
1363       
1364        if (!count($langue_doc)) {
1365                $langue_doc = new marc_list('lang');
1366                $langue_doc = $langue_doc->table;
1367        }
1368
1369        $options=$field['OPTIONS'][0];
1370        $values=$field['VALUES'];
1371        $afield_name = $field["ID"];
1372        $ret = "";
1373        $count = 0;
1374        if (!$values) {
1375                $values = array("");
1376        }
1377        foreach ($values as $value) {
1378                $exploded_value = explode("|||", $value);
1379                $ret.="<input id=\"".$field['NAME']."_".$count."\" type=\"text\" size=\"".$options['SIZE'][0]['value']."\" maxlength=\"".$options['MAXSIZE'][0]['value']."\" name=\"".$field['NAME']."[".$count."]\" value=\"".htmlentities($exploded_value[0],ENT_QUOTES,$charset)."\">";
1380                $ret.="<input id=\"".$field['NAME']."_lang_".$count."\" class=\"saisie-10emr\" type=\"text\" value=\"".($exploded_value[1] ? htmlentities($langue_doc[$exploded_value[1]],ENT_QUOTES,$charset) : htmlentities($langue_doc[$value_deflt_lang],ENT_QUOTES,$charset))."\" autfield=\"".$field['NAME']."_lang_code_".$count."\" completion=\"langue\" autocomplete=\"off\">";
1381                $ret.="<input class=\"bouton\" type=\"button\" value=\"...\" onClick=\"openPopUp('".$base_path."/select.php?what=lang&caller='+this.form.name+'&p1=".$field['NAME']."_lang_code_".$count."&p2=".$field['NAME']."_lang_".$count."', 'select_lang', 500, 400, -2, -2, 'scrollbars=yes, toolbar=no, dependent=yes, resizable=yes')\">";
1382                $ret.="<input class=\"bouton\" type=\"button\" onclick=\"this.form.".$field['NAME']."_lang_".$count.".value=''; this.form.".$field['NAME']."_lang_code_".$count.".value=''; \" value=\"X\">";
1383                $ret.="<input id=\"".$field['NAME']."_lang_code_".$count."\" type=\"hidden\" value=\"".($exploded_value[1] ? htmlentities($exploded_value[1], ENT_QUOTES, $charset) : htmlentities($value_deflt_lang, ENT_QUOTES, $charset))."\" name=\"".$field['NAME']."_langs[".$count."]\">"; 
1384                if ($options['REPEATABLE'][0]['value'] && !$count)
1385                        $ret.='<input class="bouton" type="button" value="+" onclick="add_custom_text_i18n_(\''.$afield_name.'\', \''.addslashes($field['NAME']).'\', \''.$options['SIZE'][0]['value'].'\', \''.$options['MAXSIZE'][0]['value'].'\')">';
1386                $ret.="<br />";
1387                $count++;
1388        }
1389        if ($options['REPEATABLE'][0]['value']) {
1390                $ret.='<input id="customfield_text_i18n_'.$afield_name.'" type="hidden" name="customfield_text_'.$afield_name.'" value="'.$count.'">';
1391                $ret .= '<div id="spaceformorecustomfieldtexti18n_'.$afield_name.'"></div>';
1392                $ret.="<script>
1393                        function add_custom_text_i18n_(field_id, field_name, field_size, field_maxlen) {
1394                        var count = document.getElementById('customfield_text_i18n_'+field_id).value;
1395                                var text = document.createElement('input');
1396                                text.setAttribute('id', field_name + '_' + count);
1397                        text.setAttribute('name',field_name+'[' + count + ']');
1398                        text.setAttribute('type','text');
1399                        text.setAttribute('value','');
1400                        text.setAttribute('size',field_size);
1401                        text.setAttribute('maxlength',field_maxlen);
1402                               
1403                                var lang = document.createElement('input');
1404                                lang.setAttribute('id', field_name + '_lang_' + count);
1405                                lang.setAttribute('class', 'saisie-10emr');
1406                                lang.setAttribute('type', 'text');
1407                                lang.setAttribute('value', '');
1408                                lang.setAttribute('autfield', field_name + '_lang_code_' + count);
1409                                lang.setAttribute('completion', 'langue');
1410                                lang.setAttribute('autocomplete', 'off');
1411                               
1412                                var select = document.createElement('input');
1413                                select.setAttribute('class', 'bouton');
1414                                select.setAttribute('type', 'button');
1415                                select.setAttribute('value', '...');
1416                                select.addEventListener('click', function(){
1417                                        openPopUp('".$base_path."/select.php?what=lang&caller='+this.form.name+'&p1=' + field_name + '_lang_code_' + count + '&p2=' + field_name + '_lang_' + count, 'select_lang', 500, 400, -2, -2, 'scrollbars=yes, toolbar=no, dependent=yes, resizable=yes');
1418                                }, false);
1419                               
1420                                var del = document.createElement('input');
1421                                del.setAttribute('class', 'bouton');
1422                                del.setAttribute('type', 'button');
1423                                del.setAttribute('value', 'X');
1424                                del.addEventListener('click', function(){
1425                                        document.getElementById(field_name + '_lang_' + count).value=''; document.getElementById(field_name + '_lang_code_' + count).value='';
1426                                }, false);
1427                                                       
1428                                var lang_code = document.createElement('input');
1429                                lang_code.setAttribute('id', field_name + '_lang_code_' + count);
1430                                lang_code.setAttribute('type', 'hidden');
1431                                lang_code.setAttribute('value', '');
1432                                lang_code.setAttribute('name', field_name + '_langs[' + count + ']');
1433                               
1434                        space=document.createElement('br');
1435                               
1436                                document.getElementById('spaceformorecustomfieldtexti18n_'+field_id).appendChild(text);
1437                                document.getElementById('spaceformorecustomfieldtexti18n_'+field_id).appendChild(lang);
1438                                document.getElementById('spaceformorecustomfieldtexti18n_'+field_id).appendChild(select);
1439                                document.getElementById('spaceformorecustomfieldtexti18n_'+field_id).appendChild(del);
1440                                document.getElementById('spaceformorecustomfieldtexti18n_'+field_id).appendChild(lang_code);
1441                                document.getElementById('spaceformorecustomfieldtexti18n_'+field_id).appendChild(space);
1442                               
1443                                document.getElementById('customfield_text_i18n_'+field_id).value = document.getElementById('customfield_text_i18n_'+field_id).value * 1 + 1;
1444                        }
1445                </script>";
1446        }
1447        if ($field[MANDATORY]==1) {
1448                $caller = get_form_name();
1449                $check_scripts.="if (document.forms[\"".$caller."\"].elements[\"".$field[NAME]."[]\"].value==\"\") return cancel_submit(\"".sprintf($msg["parperso_field_is_needed"],$field[ALIAS])."\");\n";
1450        }
1451        return $ret;
1452}
1453
1454function aff_text_i18n_empr_search($field,&$check_scripts,$varname) {
1455        global $charset;
1456        global $msg;
1457
1458        $options=$field[OPTIONS][0];
1459        $values=$field[VALUES];
1460        $ret="<input id=\"".$varname."\" type=\"text\" size=\"".$options[SIZE][0][value]."\" name=\"".$varname."[]\" value=\"".htmlentities($values[0],ENT_QUOTES,$charset)."\">";
1461        return $ret;
1462}
1463
1464function chk_text_i18n_empr($field,&$check_message) {
1465        global $value_deflt_lang;
1466        $name=$field[NAME];
1467        global $$name, ${$name."_langs"};
1468        $val=$$name;
1469        $langs = (${$name."_langs"});
1470        $final_value = array();
1471        foreach ($val as $key => $value) {
1472                if ($value) {
1473                        $final_value[] = $value."|||".($langs[$key] ? $langs[$key] : $value_deflt_lang);
1474                }
1475        }
1476
1477        $check_datatype_message="";
1478        $val_1=chk_datatype($field,$final_value,$check_datatype_message);
1479        if ($check_datatype_message) {
1480                $check_message=$check_datatype_message;
1481                return 0;
1482        }
1483
1484        $$name=$val_1;
1485        return 1;
1486}
1487
1488function val_text_i18n_empr($field,$value) {
1489        global $charset,$pmb_perso_sep;
1490        global $langue_doc, $value_deflt_lang;
1491       
1492        if (!count($langue_doc)) {
1493                $langue_doc = new marc_list('lang');
1494                $langue_doc = $langue_doc->table;
1495        }
1496
1497        $value=format_output($field,$value);
1498        if (!$value) $value=array();
1499       
1500        $formatted_values = array();
1501        foreach ($value as $val) {
1502                $exploded_val = explode("|||", $val);
1503                $formatted_values[] = $exploded_val[0]." (".($exploded_val[1] ? $langue_doc[$exploded_val[1]] : $langue_doc[$value_deflt_lang]).")";
1504        }
1505
1506        if($field["OPTIONS"][0]["ISHTML"][0]["value"]){
1507                return array("ishtml" => true, "value"=>implode($pmb_perso_sep,$formatted_values), "withoutHTML" =>implode($pmb_perso_sep,$formatted_values));
1508        }else{
1509                return implode($pmb_perso_sep,$formatted_values);
1510        }
1511}
1512
1513function aff_filter_comment_empr($field,$varname,$multiple) {
1514        global $charset;
1515        global $msg;
1516       
1517        $ret="<select id=\"".$varname."\" name=\"".$varname;
1518        $ret.="[]";
1519        $ret.="\" ";
1520        if ($multiple) $ret.="size=5 multiple";
1521        $ret.=">\n";
1522               
1523        $values=$field[VALUES];
1524        if ($values=="") $values=array();
1525        $options=$field[OPTIONS][0];
1526        if (($options[UNSELECT_ITEM][0][VALUE]!="")||($options[UNSELECT_ITEM][0][value]!="")) {
1527                $ret.="<option value=\"".htmlentities($options[UNSELECT_ITEM][0][VALUE],ENT_QUOTES,$charset)."\"";
1528                if ($options[UNSELECT_ITEM][0][VALUE]==$options[DEFAULT_VALUE][0][value]) $ret.=" selected"; 
1529                $ret.=">".htmlentities($options[UNSELECT_ITEM][0][value],ENT_QUOTES,$charset)."</option>\n";
1530        }
1531        $resultat=pmb_mysql_query($options[QUERY][0][value]);
1532        while ($r=pmb_mysql_fetch_row($resultat)) {
1533                $ret.="<option value=\"".htmlentities($r[0],ENT_QUOTES,$charset)."\"";
1534                $as=array_search($r[0],$values);
1535                if (($as!==FALSE)&&($as!==NULL)) $ret.=" selected"; 
1536                $ret.=">".htmlentities(cutlongwords($r[0]),ENT_QUOTES,$charset)."</option>\n";
1537               
1538        }
1539        $ret.= "</select>\n";
1540        return $ret;
1541}
1542
1543function aff_filter_date_box_empr($field,$varname,$multiple) {
1544        global $charset;
1545        global $msg;
1546       
1547        $ret="<select id=\"".$varname."\" name=\"".$varname;
1548        $ret.="[]";
1549        $ret.="\" ";
1550        if ($multiple) $ret.="size=5 multiple";
1551        $ret.=">\n";   
1552       
1553        $values=$field[VALUES];
1554        if ($values=="") $values=array();
1555        $options=$field[OPTIONS][0];
1556        if (($options[UNSELECT_ITEM][0][VALUE]!="")||($options[UNSELECT_ITEM][0][value]!="")) {
1557                $ret.="<option value=\"".htmlentities($options[UNSELECT_ITEM][0][VALUE],ENT_QUOTES,$charset)."\"";
1558                if ($options[UNSELECT_ITEM][0][VALUE]==$options[DEFAULT_VALUE][0][value]) $ret.=" selected"; 
1559                $ret.=">".htmlentities($options[UNSELECT_ITEM][0][value],ENT_QUOTES,$charset)."</option>\n";
1560        }
1561        $resultat=pmb_mysql_query($options[QUERY][0][value]);
1562        while ($r=pmb_mysql_fetch_row($resultat)) {
1563                $ret.="<option value=\"".htmlentities($r[0],ENT_QUOTES,$charset)."\"";
1564                $as=array_search($r[0],$values);
1565                if (($as!==FALSE)&&($as!==NULL)) $ret.=" selected"; 
1566                $ret.=">".htmlentities(formatdate($r[0]),ENT_QUOTES,$charset)."</option>\n";
1567        }
1568        $ret.= "</select>\n";
1569        return $ret;
1570}
1571
1572function aff_filter_text_empr($field,$varname,$multiple) {
1573        global $charset;
1574        global $msg;
1575       
1576        $ret="<select id=\"".$varname."\" name=\"".$varname;
1577        $ret.="[]";
1578        $ret.="\" ";
1579        if ($multiple) $ret.="size=5 multiple";
1580        $ret.=">\n";
1581               
1582        $values=$field[VALUES];
1583        if ($values=="") $values=array();
1584        $options=$field[OPTIONS][0];
1585        if (($options[UNSELECT_ITEM][0][VALUE]!="")||($options[UNSELECT_ITEM][0][value]!="")) {
1586                $ret.="<option value=\"".htmlentities($options[UNSELECT_ITEM][0][VALUE],ENT_QUOTES,$charset)."\"";
1587                if ($options[UNSELECT_ITEM][0][VALUE]==$options[DEFAULT_VALUE][0][value]) $ret.=" selected"; 
1588                $ret.=">".htmlentities($options[UNSELECT_ITEM][0][value],ENT_QUOTES,$charset)."</option>\n";
1589        }
1590        $resultat=pmb_mysql_query($options[QUERY][0][value]);
1591        while ($r=pmb_mysql_fetch_row($resultat)) {
1592                $ret.="<option value=\"".htmlentities($r[0],ENT_QUOTES,$charset)."\"";
1593                $as=array_search($r[0],$values);
1594                if (($as!==FALSE)&&($as!==NULL)) $ret.=" selected"; 
1595                $ret.=">".htmlentities(cutlongwords($r[0]),ENT_QUOTES,$charset)."</option>\n";
1596        }
1597        $ret.= "</select>\n";
1598        return $ret;
1599}
1600
1601function aff_filter_query_list_empr($field,$varname,$multiple) {
1602        global $charset;
1603               
1604        $options=$field[OPTIONS][0];
1605        $values=$field[VALUES];
1606        if ($values=="") $values=array();
1607       
1608        $ret="<select id=\"".$varname."\" name=\"".$varname;
1609        $ret.="[]";
1610        $ret.="\" ";
1611        if ($multiple) $ret.="size=5 multiple";
1612        $ret.=">\n";
1613        if ($options["AUTORITE"][0]["value"]!="yes") {
1614                if (($options[UNSELECT_ITEM][0][VALUE]!="")||($options[UNSELECT_ITEM][0][value]!="")) {
1615                        $ret.="<option value=\"".htmlentities($options[UNSELECT_ITEM][0][VALUE],ENT_QUOTES,$charset)."\">".htmlentities($options[UNSELECT_ITEM][0][value],ENT_QUOTES,$charset)."</option>\n";
1616                }
1617                $resultat=pmb_mysql_query($options[QUERY][0][value]);
1618                while ($r=pmb_mysql_fetch_row($resultat)) {
1619                        $ret.="<option value=\"".htmlentities($r[0],ENT_QUOTES,$charset)."\"";
1620                        $as=array_search($r[0],$values);
1621                        if (($as!==FALSE)&&($as!==NULL)) $ret.=" selected"; 
1622                        $ret.=">".htmlentities($r[1],ENT_QUOTES,$charset)."</option>\n";
1623                }
1624        } else {
1625                       
1626        }
1627        $ret.= "</select>\n";
1628}
1629
1630function aff_filter_list_empr($field,$varname,$multiple) {
1631        global $charset;
1632        global $msg;
1633       
1634        $_custom_prefixe_=$field["PREFIX"];
1635        $options=$field[OPTIONS][0];
1636        $values=$field[VALUES];
1637        if ($values=="") $values=array();
1638       
1639        $ret="<select id=\"".$varname."\" name=\"".$varname;
1640        $ret.="[]";
1641        $ret.="\" ";
1642        if ($multiple) $ret.="size=5 multiple";
1643        $ret.=">\n";
1644               
1645        if (($options[UNSELECT_ITEM][0][VALUE]!="")||($options[UNSELECT_ITEM][0][value]!="")) {
1646                $ret.="<option value=\"".htmlentities($options[UNSELECT_ITEM][0][VALUE],ENT_QUOTES,$charset)."\">".htmlentities($options[UNSELECT_ITEM][0][value],ENT_QUOTES,$charset)."</option>\n";
1647        }
1648        $requete="select ".$_custom_prefixe_."_custom_list_value, ".$_custom_prefixe_."_custom_list_lib from ".$_custom_prefixe_."_custom_lists where ".$_custom_prefixe_."_custom_champ=".$field[ID]." order by ordre";
1649        $resultat=pmb_mysql_query($requete);
1650        if ($resultat) {
1651                $i=0;
1652                while ($r=pmb_mysql_fetch_array($resultat)) {
1653                        $options[ITEMS][0][ITEM][$i][VALUE]=$r[$_custom_prefixe_."_custom_list_value"];
1654                        $options[ITEMS][0][ITEM][$i][value]=$r[$_custom_prefixe_."_custom_list_lib"];
1655                        $i++;
1656                }
1657        }
1658        for ($i=0; $i<count($options[ITEMS][0][ITEM]); $i++) {
1659                $ret.="<option value=\"".htmlentities($options[ITEMS][0][ITEM][$i][VALUE],ENT_QUOTES,$charset)."\"";
1660                if (count($values)) {
1661                        $as=array_search($options[ITEMS][0][ITEM][$i][VALUE],$values);
1662                        if (($as!==FALSE)&&($as!==NULL)) $ret.=" selected"; 
1663                } else {
1664                        //Recherche de la valeur par défaut
1665                        if ($options[ITEMS][0][ITEM][$i][VALUE]==$options[DEFAULT_VALUE][0][value]) $ret.=" selected";
1666                }
1667                $ret.=">".htmlentities($options[ITEMS][0][ITEM][$i][value],ENT_QUOTES,$charset)."</option>\n";
1668        }
1669                $ret.= "</select>\n";
1670        return $ret;
1671}
1672
1673function aff_external_empr($field,&$check_scripts) {
1674        global $charset;
1675        global $msg;
1676       
1677        $options=$field[OPTIONS][0];
1678        $values=$field[VALUES];
1679        //Recherche du libellé
1680        $vallib=$values[0];
1681        if ($options["QUERY"][0]["value"]) {
1682                $rvalues=pmb_mysql_query(str_replace("!!id!!",$values[0],$options["QUERY"][0]["value"]));
1683                if ($rvalues) {
1684                        $vallib=@pmb_mysql_result($rvalues,0,0);
1685                }
1686        }
1687        $ret="<input id=\"".$field["NAME"]."\" type=\"hidden\" name=\"".$field["NAME"]."[]\" value=\"".htmlentities($values[0],ENT_QUOTES,$charset)."\">";
1688        if (!$options["HIDE"][0]["value"]) {
1689                $ret.="<input id=\"".$field["NAME"]."_lib\" type=\"text\" readonly='readonly' size=\"".$options["SIZE"][0]["value"]."\" maxlength=\"".$options["MAXSIZE"][0]["value"]."\" name=\"".$field["NAME"]."_lib[]\" value=\"".htmlentities($vallib,ENT_QUOTES,$charset)."\">";
1690        }
1691        $ret.="&nbsp;<input type='button' id='".$field["NAME"]."_button' name='".$field["NAME"]."_button' class='bouton' value='".(($vallib&&($options["HIDE"][0]["value"]))?htmlentities($vallib,ENT_QUOTES,$charset):($options["BUTTONTEXT"][0]["value"]?htmlentities($options["BUTTONTEXT"][0]["value"],ENT_QUOTES,$charset):$msg["parperso_external_browse"]))."' onClick='openPopUp(\"".$options["URL"][0]["value"]."?field_val=".$field["NAME"]."&"."field_lib=".($options["HIDE"][0]["value"]?$field["NAME"]."_button":$field["NAME"]."_lib")."\",\"w_".$field["NAME"]."\",".($options["WIDTH"][0]["value"]?$options["WIDTH"][0]["value"]:"400").",".($options["HEIGHT"][0]["value"]?$options["HEIGHT"][0]["value"]:"600").",-2,-2,\"infobar=no, status=no, scrollbars=yes, menubar=no\");'/>";
1692        if ($options["DELETE"][0]["value"]) $ret.="&nbsp;<input type='button' class='bouton' value='X' onClick=\"document.getElementById('".$field["NAME"]."').value=''; document.getElementById('".($options["HIDE"][0]["value"]?$field["NAME"]."_button":$field["NAME"]."_lib")."').value='".($options["HIDE"][0]["value"]?($options["BUTTONTEXT"][0]["value"]?htmlentities($options["BUTTONTEXT"][0]["value"],ENT_QUOTES,$charset):$msg["parperso_external_browse"]):"")."';\"/>";
1693        if ($field["MANDATORY"]==1) {
1694                $caller = get_form_name();
1695                $check_scripts.="if (document.forms[\"".$caller."\"].elements[\"".$field["NAME"]."[]\"].value==\"\") return cancel_submit(\"".sprintf($msg["parperso_field_is_needed"],$field["ALIAS"])."\");\n";
1696        }
1697        return $ret;
1698}
1699
1700function aff_external_empr_search($field,&$check_scripts,$varname) {
1701        global $charset;
1702        global $msg;
1703       
1704        $options=$field[OPTIONS][0];
1705        $values=$field[VALUES];
1706        //Recherche du libellé
1707        $vallib=$values[0];
1708        if ($options["QUERY"][0]["value"]) {
1709                $rvalues=pmb_mysql_query(str_replace("!!id!!",$values[0],$options["QUERY"][0]["value"]));
1710                if ($rvalues) {
1711                        $vallib=@pmb_mysql_result($rvalues,0,0);
1712                }
1713        }
1714        $ret="<input id=\"".$varname."\" type=\"hidden\" name=\"".$varname."[]\" value=\"".htmlentities($values[0],ENT_QUOTES,$charset)."\">";
1715        $ret.="<input id=\"".$varname."_lib\" type=\"text\" size=\"".$options[SIZE][0][value]."\" name=\"".$varname."_lib[]\" readonly=\"readonly\" value=\"".htmlentities($vallib,ENT_QUOTES,$charset)."\">";
1716        $ret.="&nbsp;<input type='button' name='".$varname."_button' class='bouton' value='".($options["BUTTONTEXT"][0]["value"]?$options["BUTTONTEXT"][0]["value"]:$msg["parperso_external_browse"])."' onClick='openPopUp(\"".$options["URL"][0]["value"]."?field_val=".$varname."&"."field_lib=".$varname."_lib"."\",\"w_".$varname."\",".($options["WIDTH"][0]["value"]?$options["WIDTH"][0]["value"]:"400").",".($options["HEIGHT"][0]["value"]?$options["HEIGHT"][0]["value"]:"600").",-2,-2,\"\");'/>";
1717        return $ret;
1718}
1719
1720function chk_external_empr($field,&$check_message) {
1721        $name=$field[NAME];
1722        global $$name;
1723        $val=$$name;
1724       
1725        $check_datatype_message="";
1726        $val_1=chk_datatype($field,$val,$check_datatype_message);
1727        if ($check_datatype_message) {
1728                $check_message=$check_datatype_message;
1729                return 0;
1730        }
1731        $$name=$val_1;
1732        return 1;
1733}
1734
1735function val_external_empr($field,$value) {
1736        global $charset;
1737
1738        $options=$field[OPTIONS][0];
1739        $value=format_output($field,$value);
1740        //Calcul du libelle
1741        if ($options["QUERY"][0]["value"]) {
1742                $rvalues=pmb_mysql_query(str_replace("!!id!!",$value[0],$options["QUERY"][0]["value"]));
1743                if ($rvalues) {
1744                        return @pmb_mysql_result($rvalues,0,0);
1745                }
1746        }
1747        return $value[0];
1748}
1749
1750
1751function aff_url_empr($field,&$check_scripts){
1752        global $charset;
1753        global $msg;
1754       
1755        $options=$field[OPTIONS][0];
1756        $values=$field[VALUES];
1757        $afield_name = $field["ID"];
1758        $ret = "";
1759        $count = 0;
1760        if (!$values) {
1761                $values = array("");
1762        }
1763        foreach ($values as $avalues) {
1764                $avalues = explode("|",$avalues);
1765                $ret.="<div id='".$field[NAME]."_check_$count' style='display:inline'></div>";
1766                $ret.= $msg['persofield_url_link']."<input id='".$field[NAME]."_link' type='text' class='saisie-30em' name='".$field[NAME]."[link][]' onchange='cp_chklnk_".$field["NAME"]."($count,this);' value='".htmlentities($avalues[0],ENT_QUOTES,$charset)."'>";
1767                $ret.=" <input class=\"bouton\" type='button' value='".$msg['persofield_url_check']."' onclick='cp_chklnk_".$field["NAME"]."($count,this);'>";
1768                //$ret.="<br />";
1769                $ret.="&nbsp;".$msg['persofield_url_linklabel']."<input id='".$field[NAME]."_linkname' type='text' class='saisie-15em' size='".$options[SIZE][0][value]."' name='".$field[NAME]."[linkname][]' value='".htmlentities($avalues[1],ENT_QUOTES,$charset)."'>";
1770                if ($options[REPEATABLE][0][value] && !$count)
1771                        $ret.="<input class='bouton' type='button' value='+' onclick=\"add_custom_url_('$afield_name', '".addslashes($field[NAME])."', '".addslashes($options[SIZE][0][value])."')\">";
1772                $ret.="<br />";
1773                $count++;
1774        }
1775        $ret.= "
1776        <script type='text/javascript'>
1777                function cp_chklnk_".$field["NAME"]."(indice,element){
1778                        var links = element.form.elements['".$field[NAME]."[link][]'];
1779                        if(links.length) var link = links[indice];
1780                        else var link = links;
1781                        if(link.value != ''){
1782                                var wait = document.createElement('img');
1783                                wait.setAttribute('src','images/patience.gif');
1784                                wait.setAttribute('align','top');
1785                                while(document.getElementById('".$field[NAME]."_check_'+indice).firstChild){
1786                                        document.getElementById('".$field[NAME]."_check_'+indice).removeChild(document.getElementById('".$field[NAME]."_check_'+indice).firstChild);
1787                                }
1788                                document.getElementById('".$field[NAME]."_check_'+indice).appendChild(wait);
1789                                var testlink = encodeURIComponent(link.value);
1790                                var check = new http_request();
1791                                if(check.request('./ajax.php?module=ajax&categ=chklnk',true,'&timeout=".$options[TIMEOUT][0][value]."&link='+testlink)){
1792                                        alert(check.get_text());
1793                                }else{
1794                                        var result = check.get_text();
1795                                        var img = document.createElement('img');
1796                                        var src='';
1797                                        if(result == '200') {
1798                                                if((link.value.substr(0,7) != 'http://') && (link.value.substr(0,8) != 'https://')) link.value = 'http://'+link.value;
1799                                                //impec, on print un petit message de confirmation
1800                                                src = 'images/tick.gif';
1801                                        }else{
1802                                                //problème...
1803                                                src = 'images/error.png';
1804                                                img.setAttribute('style','height:1.5em;');
1805                                        }
1806                                        img.setAttribute('src',src);
1807                                        img.setAttribute('align','top');
1808                                        while(document.getElementById('".$field[NAME]."_check_'+indice).firstChild){
1809                                                document.getElementById('".$field[NAME]."_check_'+indice).removeChild(document.getElementById('".$field[NAME]."_check_'+indice).firstChild);
1810                                        }
1811                                        document.getElementById('".$field[NAME]."_check_'+indice).appendChild(img);
1812                                }
1813                        }
1814                }
1815        </script>";
1816        if ($options[REPEATABLE][0][value]) {
1817                $ret.='<input id="customfield_text_'.$afield_name.'" type="hidden" name="customfield_text_'.$afield_name.'" value="'.($count).'">';
1818                //$ret.='<input class="bouton" type="button" value="+" onclick="add_custom_text_(\''.$afield_name.'\', \''.addslashes($field[NAME]).'\', \''.addslashes($options[SIZE][0][value]).'\', \''.addslashes($options[MAXSIZE][0][value]).'\')">';
1819                $ret .= '<div id="spaceformorecustomfieldtext_'.$afield_name.'"></div>';
1820                $ret.="<script>
1821                        function add_custom_url_(field_id, field_name, field_size) {
1822                                cpt = document.getElementById('customfield_text_'+field_id).value;
1823                                var check = document.createElement('div');
1824                                check.setAttribute('id','".$field[NAME]."_check_'+cpt);
1825                                check.setAttribute('style','display:inline');
1826                                var link_label = document.createTextNode('".$msg['persofield_url_link']."');
1827                                var chklnk = document.createElement('input');
1828                                chklnk.setAttribute('type','button');
1829                                chklnk.setAttribute('value','".$msg['persofield_url_check']."');
1830                                chklnk.setAttribute('class','bouton');
1831                                chklnk.setAttribute('onclick','cp_chklnk_".$field[NAME]."('+cpt+',this);');
1832                                document.getElementById('customfield_text_'+field_id).value = cpt*1 +1;
1833                                var link = document.createElement('input');
1834                        link.setAttribute('name',field_name+'[link][]');
1835                        link.setAttribute('type','text');
1836                                link.setAttribute('class','saisie-30em');
1837                        link.setAttribute('size',field_size);
1838                        link.setAttribute('value','');
1839                                link.setAttribute('onchange','cp_chklnk_".$field[NAME]."('+cpt+',this);');
1840                                var lib_label = document.createTextNode('".$msg['persofield_url_linklabel']."');
1841                                var lib = document.createElement('input');
1842                        lib.setAttribute('name',field_name+'[linkname][]');
1843                        lib.setAttribute('type','text');
1844                                lib.setAttribute('class','saisie-15em');
1845                        lib.setAttribute('size',field_size);
1846                        lib.setAttribute('value','');
1847                        space=document.createElement('br');
1848                                document.getElementById('spaceformorecustomfieldtext_'+field_id).appendChild(check);
1849                                document.getElementById('spaceformorecustomfieldtext_'+field_id).appendChild(link_label);
1850                                document.getElementById('spaceformorecustomfieldtext_'+field_id).appendChild(link);
1851                                document.getElementById('spaceformorecustomfieldtext_'+field_id).appendChild(chklnk);
1852                                document.getElementById('spaceformorecustomfieldtext_'+field_id).appendChild(lib_label);
1853                                document.getElementById('spaceformorecustomfieldtext_'+field_id).appendChild(lib);
1854                                document.getElementById('spaceformorecustomfieldtext_'+field_id).appendChild(space);
1855                        }
1856                </script>";
1857        }
1858        if ($field[MANDATORY]==1) {
1859                $caller = get_form_name();
1860                $check_scripts.="if (document.forms[\"".$caller."\"].elements[\"".$field[NAME]."[]\"].value==\"\") return cancel_submit(\"".sprintf($msg["parperso_field_is_needed"],$field[ALIAS])."\");\n";
1861        }
1862        return $ret;
1863}
1864
1865function aff_url_empr_search($field,&$check_scripts,$varname) {
1866        global $charset;
1867        global $msg;
1868       
1869        $options=$field[OPTIONS][0];
1870        $values=$field[VALUES];
1871        $ret="<input id=\"".$varname."\" type=\"text\" size=\"".$options[SIZE][0][value]."\" name=\"".$varname."[]\" value=\"".htmlentities($values[0],ENT_QUOTES,$charset)."\">";
1872        return $ret;
1873}
1874
1875function chk_url_empr($field,&$check_message) {
1876        $name=$field[NAME];
1877        global $$name;
1878        $val=$$name;
1879        $value = array();
1880        for($i=0;$i<sizeof($val['link']);$i++){
1881                if($val['link'][$i] != "") {
1882                        if($val['linkname'][$i] != "")
1883                                $v_ln = "|".$val['linkname'][$i];
1884                        else 
1885                                $v_ln = "";
1886                        $value[] = $val['link'][$i].$v_ln;
1887                }
1888        }
1889        $val = $value;
1890        $check_datatype_message="";
1891        $val_1=chk_datatype($field,$val,$check_datatype_message);
1892        if ($check_datatype_message) {
1893                $check_message=$check_datatype_message;
1894                return 0;
1895        }
1896        $$name=$val_1;
1897        return 1;
1898}
1899
1900function val_url_empr($field,$value) {
1901        global $charset,$pmb_perso_sep;
1902        $cut = $field[OPTIONS][0][MAXSIZE][0][value];
1903        $values=format_output($field,$value);
1904        $ret = "";
1905        $without = "";
1906        for ($i=0;$i<count($values);$i++){
1907                $val = explode("|",$values[$i]);
1908                if ($val[1])$lib = $val[1];
1909                else $lib = ($cut && strlen($val[0]) > $cut ? substr($val[0],0,$cut)."[...]" : $val[0] );
1910                if( $ret != "") $ret.= $pmb_perso_sep; 
1911                $ret .= "<a href='".$val[0]."' target='_blank'>".htmlentities($lib,ENT_QUOTES,$charset)."</a>";
1912                if( $without != "") $without.= $pmb_perso_sep;
1913                $without .= $lib;
1914        }
1915        return array("ishtml" => true, "value"=>$ret, "withoutHTML" =>$without);
1916}
1917
1918function aff_resolve_empr($field,&$check_scripts){
1919        global $charset;
1920        global $msg;
1921       
1922        $options=$field[OPTIONS][0];
1923        $values=$field[VALUES];
1924        $afield_name = $field["ID"];
1925        $ret = "";
1926        $count = 0;
1927        if (!$values) {
1928                $values = array("");
1929        }
1930        foreach ($values as $avalues) {
1931                $avalues = explode("|",$avalues);
1932                $ret.="<input id='".$field[NAME]."' type='text' size='".$options[SIZE][0][value]."' name='".$field[NAME]."[id][]' value='".htmlentities($avalues[0],ENT_QUOTES,$charset)."'>";
1933                $ret.="&nbsp;<select name='".$field[NAME]."[resolve][]'>";
1934                foreach($options[RESOLVE] as $elem){
1935                        $ret.= "
1936                        <option value='".$elem[ID]."' ".($avalues[1] == $elem[ID] ? "selected=selected":"").">".htmlentities($elem[LABEL],ENT_QUOTES,$charset)."</option>";
1937                }
1938                $ret.="
1939                </select>";
1940                if ($options[REPEATABLE][0][value] && !$count)
1941                        $ret.='<input class="bouton" type="button" value="+" onclick="add_custom_resolve_(\''.$afield_name.'\', \''.addslashes($field[NAME]).'\', \''.addslashes($options[SIZE][0][value]).'\', \''.addslashes($options[MAXSIZE][0][value]).'\')">';
1942                $ret.="<br />";
1943                $count++;
1944        }
1945        if ($options[REPEATABLE][0][value]) {
1946                $ret.='<input id="customfield_text_'.$afield_name.'" type="hidden" name="customfield_text_'.$afield_name.'" value="'.(count($values)).'">';
1947                //$ret.='<input class="bouton" type="button" value="+" onclick="add_custom_text_(\''.$afield_name.'\', \''.addslashes($field[NAME]).'\', \''.addslashes($options[SIZE][0][value]).'\', \''.addslashes($options[MAXSIZE][0][value]).'\')">';
1948                $ret .= '<div id="spaceformorecustomfieldtext_'.$afield_name.'"></div>';
1949                $ret.="<script>
1950                        function add_custom_resolve_(field_id, field_name, field_size, field_maxlen) {
1951                                document.getElementById('customfield_text_'+field_id).value = document.getElementById('customfield_text_'+field_id).value * 1 + 1;
1952                        count = document.getElementById('customfield_text_'+field_id).value;
1953                                f_aut0 = document.createElement('input');
1954                        f_aut0.setAttribute('name',field_name+'[id][]');
1955                        f_aut0.setAttribute('type','text');
1956                        f_aut0.setAttribute('size',field_size);
1957                        f_aut0.setAttribute('maxlen',field_size);
1958                        f_aut0.setAttribute('value','');
1959                        space=document.createElement('br');
1960                                var select = document.createElement('select');
1961                                select.setAttribute('name',field_name+'[resolve][]');
1962                                ";
1963                                foreach($options[RESOLVE] as $elem){
1964                                        $ret.="
1965                                var option = document.createElement('option');
1966                                option.setAttribute('value','".$elem[ID]."');
1967                                var text = document.createTextNode('".htmlentities($elem[LABEL],ENT_QUOTES,$charset)."');
1968                                option.appendChild(text);
1969                                select.appendChild(option);
1970";
1971                                }
1972                                $ret.="
1973                                document.getElementById('spaceformorecustomfieldtext_'+field_id).appendChild(f_aut0);
1974                                document.getElementById('spaceformorecustomfieldtext_'+field_id).appendChild(document.createTextNode(' '));
1975                                document.getElementById('spaceformorecustomfieldtext_'+field_id).appendChild(select);                           
1976                                document.getElementById('spaceformorecustomfieldtext_'+field_id).appendChild(space);
1977
1978                        }
1979                </script>";
1980        }
1981        if ($field[MANDATORY]==1) {
1982                $caller = get_form_name();
1983                $check_scripts.="if (document.forms[\"".$caller."\"].elements[\"".$field[NAME]."[id][]\"].value==\"\") return cancel_submit(\"".sprintf($msg["parperso_field_is_needed"],$field[ALIAS])."\");\n";
1984        }
1985        return $ret;
1986}
1987
1988function chk_resolve_empr($field,&$check_message) {
1989        $name=$field[NAME];
1990        global $$name;
1991        $val=$$name;
1992        $value = array();
1993        for($i=0;$i<sizeof($val['id']);$i++){
1994                if($val['id'][$i] != "")
1995                        $value[] = $val['id'][$i]."|".$val['resolve'][$i];
1996        }
1997        $val = $value;
1998
1999        $check_datatype_message="";
2000        $val_1=chk_datatype($field,$val,$check_datatype_message);
2001        if ($check_datatype_message) {
2002                $check_message=$check_datatype_message;
2003                return 0;
2004        }
2005        $$name=$val_1;
2006        return 1;
2007}
2008
2009function val_resolve_empr($field,$value) {
2010        global $charset,$pmb_perso_sep,$pmb_opac_url,$use_opac_url_base;
2011       
2012        $without="";
2013        $options=$field[OPTIONS][0];
2014        $values=format_output($field,$value);
2015        $ret = "";
2016        for ($i=0;$i<count($values);$i++){
2017                $val = explode("|",$values[$i]);
2018                if(count($val)>1){
2019                        $id =$val[0];
2020                        foreach ($options[RESOLVE] as $res){
2021                                if($res[ID] == $val[1]){
2022                                        $label = $res[LABEL];
2023                                        $url= $res[value];
2024                                        break;
2025                                }
2026                        }
2027                        $link = str_replace("!!id!!",$id,$url);
2028                        if( $ret != "") $ret.= " / ";
2029                        //$ret.= "<a href='$link' target='_blank'>".htmlentities($link,ENT_QUOTES,$charset)."</a>";
2030                        if (!$use_opac_url_base) $ret.= htmlentities($label,ENT_QUOTES,$charset)." : $id <a href='$link' target='_blank'><img align='center' src='./images/globe.gif' alt='$link' title='link'/></a>";
2031                        else $ret.= htmlentities($label,ENT_QUOTES,$charset)." : $id <a href='$link' target='_blank'><img align='center' src='".$pmb_opac_url."images/globe.gif' alt='$link' title='link'/></a>";
2032                        if($without)$without.=$pmb_perso_sep;
2033                        $without.=$link;
2034                }else{
2035                        if($without)$without.=$pmb_perso_sep;
2036                        $without.=implode($pmb_perso_sep,$value);
2037                }
2038        }
2039        return array("ishtml" => true, "value"=>$ret,"withoutHTML"=> $without);
2040}
2041
2042function aff_resolve_empr_search($field,&$check_scripts,$varname){
2043        global $charset;
2044        global $msg;
2045       
2046        $options=$field[OPTIONS][0];
2047        $values=$field[VALUES];
2048        $ret="<input id='".$varname."' type='text' size='".$options[SIZE][0][value]."' name='".$varname."[]' value='".htmlentities($values[0],ENT_QUOTES,$charset)."'>";
2049        return $ret;
2050}
2051
2052function aff_html_empr($field,&$check_scripts) {
2053        global $charset;
2054        global $msg;
2055        global $pmb_editorial_dojo_editor,$pmb_javascript_office_editor;
2056        global $cms_dojo_plugins_editor;
2057        global $categ,$current;
2058       
2059        $options=$field[OPTIONS][0];
2060        $values=$field[VALUES];
2061        $afield_name = $field["ID"];
2062        $ret = "";
2063       
2064        $count = 0;
2065        if (!$values) {
2066                $values = array("");
2067        }
2068       
2069        foreach ($values as $avalues) {
2070                if($pmb_editorial_dojo_editor){
2071                        $ret.="<input type='hidden' name='".$field[NAME]."[$count]' value=''/>";
2072                        $ret.="<div data-dojo-type='dijit/Editor' $cms_dojo_plugins_editor      id='".$field[NAME]."_".$count."' class='saisie-80em' height='".$options[HEIGHT][0][value]."px' wrap='wrap' style='display:inline-block;width:".$options[WIDTH][0][value]."px'>".$avalues."</div>";
2073                } else {
2074                        $ret.="<textarea id='".$field[NAME]."_".$count."' name='".$field[NAME]."[]' width='".$options[WIDTH][0][value]."px' height='".$options[HEIGHT][0][value]."px' wrap='wrap' style='display:inline-block;'>".$avalues."</textarea>";
2075                        if ($pmb_javascript_office_editor && $options[HTMLEDITOR][0][value]) {
2076                                $mcename=$field[NAME]."_".$count;
2077                                $ret.= "<script type='text/javascript'>\n";
2078                                if ((($categ=="create_form")||($categ="modif"))&&($current=="catalog.php")) $ret.="document.body.addEventListener('moveend', function(e) {";
2079                                $ret.="
2080                                        if(typeof(tinyMCE)!= 'undefined') {
2081                                                setTimeout(function(){
2082                                                        tinyMCE.execCommand('mceAddControl', true, '$mcename');
2083                                                },1);
2084                                        }\n";
2085                                  if ((($categ=="create_form")||($categ="modif"))&&($current=="catalog.php")) $ret.="},true);
2086                                  document.body.addEventListener('movestart',function(e) {
2087                                                if(typeof(tinyMCE)!= 'undefined') {
2088                                                        if (tinyMCE.getInstanceById('$mcename')) {
2089                                                                tinyMCE.execCommand('mceToggleEditor',true,'$mcename');
2090                                                                tinyMCE.execCommand('mceRemoveControl',true,'$mcename');
2091                                                        }
2092                                                }
2093                                  },true);             
2094                                  ";
2095                                 
2096                                $ret.=" </script>";
2097                        }
2098                }
2099               
2100                if ($options[REPEATABLE][0][value] && !$count) {
2101                        if($pmb_javascript_office_editor && $options[HTMLEDITOR][0][value])     {
2102                                $use_editor_html = "1";
2103                        } else {
2104                                $use_editor_html = "0";
2105                        }
2106                        $ret.='<span style="vertical-align:top"><input class="bouton" type="button" value="+" onclick="add_custom_html_(\''.$afield_name.'\', \''.addslashes($field[NAME]).'\','.$options[HEIGHT][0][value].','.$options[WIDTH][0][value].','.$use_editor_html.'); "></span>';
2107                }
2108                $ret.="<br /><br / >";
2109                $count++;
2110        }
2111        if ($options[REPEATABLE][0][value]) {
2112                $ret.='<input id="customfield_text_'.$afield_name.'" type="hidden" name="customfield_text_'.$afield_name.'" value="'.(count($values)).'" />';
2113                $ret .= '<div id="spaceformorecustomfieldtext_'.$afield_name.'"></div>';
2114                if($pmb_editorial_dojo_editor){
2115                        $ret.="<script>
2116                        var cpt = $count;
2117                       
2118                        function add_custom_html_(field_id, field_name, field_height, field_width,use_html_editor) {
2119                                document.getElementById('customfield_text_'+field_id).value = document.getElementById('customfield_text_'+field_id).value * 1 + 1;
2120                                count = document.getElementById('customfield_text_'+field_id).value;
2121                               
2122                                hid = document.createElement('input');
2123                                hid.setAttribute('type','hidden');
2124                                hid.setAttribute('name',field_name+'['+cpt+']');
2125                                hid.setAttribute('value','');
2126                               
2127                                f_aut0 = document.createElement('div');
2128                                f_aut0.setAttribute('data-dojo-type','dijit/Editor');
2129                                f_aut0.setAttribute('class','saisie-80em');
2130                                f_aut0.setAttribute('wrap','wrap');
2131                                f_aut0.setAttribute('style','width:'+field_width+'px');
2132                               
2133                                space=document.createElement('br');
2134                               
2135                                document.getElementById('spaceformorecustomfieldtext_'+field_id).appendChild(hid);
2136                                document.getElementById('spaceformorecustomfieldtext_'+field_id).appendChild(f_aut0);
2137                                new dijit.Editor({id : field_name+'_'+cpt, height : field_height+'px', extraPlugins:[
2138                                                {name: 'pastefromword', width: '400px', height: '200px'},
2139                                                {name: 'insertTable', command: 'insertTable'},
2140                                            {name: 'modifyTable', command: 'modifyTable'},
2141                                            {name: 'insertTableRowBefore', command: 'insertTableRowBefore'},
2142                                            {name: 'insertTableRowAfter', command: 'insertTableRowAfter'},
2143                                            {name: 'insertTableColumnBefore', command: 'insertTableColumnBefore'},
2144                                            {name: 'insertTableColumnAfter', command: 'insertTableColumnAfter'},
2145                                            {name: 'deleteTableRow', command: 'deleteTableRow'},
2146                                            {name: 'deleteTableColumn', command: 'deleteTableColumn'},
2147                                            {name: 'colorTableCell', command: 'colorTableCell'},
2148                                            {name: 'tableContextMenu', command: 'tableContextMenu'},
2149                                            {name: 'resizeTableColumn', command: 'resizeTableColumn'},
2150                                                {name: 'fontName', plainText: true},
2151                                                {name: 'fontSize', plainText: true},
2152                                                {name: 'formatBlock', plainText: true},
2153                                                'foreColor','hiliteColor',
2154                                                'createLink','insertanchor', 'unlink', 'insertImage',
2155                                                'fullscreen',
2156                                                'viewsource'
2157                                               
2158                                ]}, f_aut0).startup();
2159                                document.getElementById('spaceformorecustomfieldtext_'+field_id).appendChild(space);
2160                                document.getElementById('spaceformorecustomfieldtext_'+field_id).appendChild(space);
2161                                cpt++;
2162                        }
2163                        </script>";
2164                        $caller = get_form_name();
2165                        $check_scripts.= "
2166                        var i = 0;
2167                        while(document.forms['".$caller."'].elements['".$field[NAME]."['+i+']']){
2168                                if(dijit.byId('".$field[NAME]."_'+i).get('value') && (dijit.byId('".$field[NAME]."_'+i).get('value') != '<br _moz_editor_bogus_node=\"TRUE\" />') && (dijit.byId('".$field[NAME]."_'+i).get('value') != '<br />')) {
2169                                        document.forms['".$caller."'].elements['".$field[NAME]."['+i+']'].value = dijit.byId('".$field[NAME]."_'+i).get('value');
2170                                }
2171                                i++;
2172                        }";
2173                } else {
2174                        $ret.="<script>
2175                        var cpt = $count;
2176                       
2177                        function add_html_editor(field_name,ind) {
2178                                if(typeof(tinyMCE)!= 'undefined') {
2179                                        tinyMCE.execCommand('mceAddControl', true, field_name+'_'+ind);
2180                                }
2181                        }
2182                        function add_custom_html_(field_id, field_name, field_height, field_width, use_html_editor) {
2183                                document.getElementById('customfield_text_'+field_id).value = document.getElementById('customfield_text_'+field_id).value * 1 + 1;
2184                                count = document.getElementById('customfield_text_'+field_id).value;
2185                               
2186                                f_aut0 = document.createElement('textarea');
2187                                f_aut0.setAttribute('name',field_name+'[]');
2188                                f_aut0.setAttribute('id',field_name+'_'+cpt);
2189                                f_aut0.setAttribute('wrap','wrap');
2190                                f_aut0.setAttribute('width',field_width+'px');
2191                                f_aut0.setAttribute('height',field_height+'px');
2192                               
2193                                space=document.createElement('br');
2194                               
2195                                document.getElementById('spaceformorecustomfieldtext_'+field_id).appendChild(f_aut0);
2196                                document.getElementById('spaceformorecustomfieldtext_'+field_id).appendChild(space);
2197                                document.getElementById('spaceformorecustomfieldtext_'+field_id).appendChild(space);
2198                                if (use_html_editor) {
2199                                        add_html_editor(field_name,cpt);
2200                                }
2201                                cpt++;
2202                        }
2203                        </script>";
2204                        $check_scripts.= "
2205                                var elts_cnt = 0;
2206                                if (document.getElementsByName('".$field[NAME]."[]').length) {
2207                                        elts_cnt = document.getElementsByName('".$field[NAME]."[]').length;
2208                                }
2209                                if (elts_cnt) {
2210                                        if(typeof(tinyMCE)!= 'undefined') {
2211                                                for (var i = 0; i < elts_cnt; i++) {
2212                                                        tinyMCE.execCommand('mceToggleEditor',true,'".$field[NAME]."_'+i);
2213                                                        tinyMCE.execCommand('mceRemoveControl',true,'".$field[NAME]."_'+i);
2214                                                }
2215                                        }
2216                                }
2217                        ";
2218                }
2219        } else {
2220                if($pmb_editorial_dojo_editor){
2221                        $caller = get_form_name();
2222                        $check_scripts.= "
2223                        var i = 0;
2224                        while(document.forms['".$caller."'].elements['".$field[NAME]."['+i+']']){
2225                                if(dijit.byId('".$field[NAME]."_'+i).get('value') && (dijit.byId('".$field[NAME]."_'+i).get('value') != '<br _moz_editor_bogus_node=\"TRUE\" />') && (dijit.byId('".$field[NAME]."_'+i).get('value') != '<br />')) {
2226                                        document.forms['".$caller."'].elements['".$field[NAME]."['+i+']'].value = dijit.byId('".$field[NAME]."_'+i).get('value');
2227                                }
2228                                i++;
2229                        }";
2230                } else {
2231                        $check_scripts.= "
2232                                var elts_cnt = 0;
2233                                if (document.getElementsByName('".$field[NAME]."[]').length) {
2234                                        elts_cnt = document.getElementsByName('".$field[NAME]."[]').length;
2235                                }
2236                                if (elts_cnt) {
2237                                        if(typeof(tinyMCE)!= 'undefined') {
2238                                                for (var i = 0; i < elts_cnt; i++) {
2239                                                        tinyMCE.execCommand('mceToggleEditor',true,'".$field[NAME]."_'+i);
2240                                                        tinyMCE.execCommand('mceRemoveControl',true,'".$field[NAME]."_'+i);
2241                                                }
2242                                        }
2243                                }
2244                        ";
2245                }
2246        }
2247        if ($field[MANDATORY]==1) {
2248                $caller = get_form_name();
2249                $check_scripts.="if (document.forms[\"".$caller."\"].elements[\"".$field[NAME]."[]\"].value==\"\") return cancel_submit(\"".sprintf($msg["parperso_field_is_needed"],$field[ALIAS])."\");\n";
2250        }
2251        return $ret;
2252}
2253
2254function aff_marclist_empr($field,&$check_scripts,$script="") {
2255        global $charset;
2256        $_custom_prefixe_=$field["PREFIX"];
2257
2258        $options=$field[OPTIONS][0];
2259        $values=$field[VALUES];
2260        if ($values=="") $values=array();
2261        $ret = "";
2262
2263        $marclist_type = new marc_list($options['DATA_TYPE'][0]['value']);
2264
2265        if ($options["AUTORITE"][0]["value"]!="yes") {
2266                $ret="<select id=\"".$field[NAME]."\" name=\"".$field[NAME];
2267                $ret.="[]";
2268                $ret.="\" ";
2269                if ($script) $ret.=$script." ";
2270                if ($options[MULTIPLE][0][value]=="yes") $ret.="multiple";
2271                $ret.=">\n";
2272                if (($options[UNSELECT_ITEM][0][VALUE]!="")||($options[UNSELECT_ITEM][0][value]!="")) {
2273                        $ret.="<option value=\"".htmlentities($options[UNSELECT_ITEM][0][VALUE],ENT_QUOTES,$charset)."\">".htmlentities($options[UNSELECT_ITEM][0][value],ENT_QUOTES,$charset)."</option>\n";
2274                }
2275                if (($options[METHOD_SORT_VALUE][0][value]=="2") && ($options[METHOD_SORT_ASC][0][value]=="1")) {
2276                        asort($marclist_type->table);
2277                } elseif (($options[METHOD_SORT_VALUE][0][value]=="1") && ($options[METHOD_SORT_ASC][0][value]=="1")) {
2278                        ksort($marclist_type->table);
2279                } elseif (($options[METHOD_SORT_VALUE][0][value]=="2") && ($options[METHOD_SORT_ASC][0][value]=="2")) {
2280                        arsort($marclist_type->table);
2281                } elseif (($options[METHOD_SORT_VALUE][0][value]=="2") && ($options[METHOD_SORT_ASC][0][value]=="2")) {
2282                        krsort($marclist_type->table);
2283                }
2284                reset($marclist_type->table);
2285                if (count($marclist_type->table)) {
2286                        foreach ($marclist_type->table as $code=>$label) {
2287                                $ret .= "<option value=\"".$code."\"";
2288                                if (count($values)) {
2289                                        $as=array_search($code,$values);
2290                                        if (($as!==FALSE)&&($as!==NULL)) $ret.=" selected";
2291                                }
2292                                $ret .= ">".$label."</option>";
2293                        }
2294                }
2295                $ret.= "</select>\n";
2296        } else {
2297                $caller = get_form_name();
2298                if (count($values)) {
2299                        $values_received=$values;
2300                        $values=array();
2301                        $libelles=array();
2302                        $i=0;
2303                        foreach ($values_received as $id=>$value) {
2304                                $as=array_key_exists($value,$marclist_type->table);
2305                                if (($as!==null)&&($as!==false)) {
2306                                        $values[$i]=$value;
2307                                        $libelles[$i]=$marclist_type->table[$value];
2308                                        $i++;
2309                                }
2310                        }
2311                }
2312                $readonly='';
2313                $n=count($values);
2314                if(($options[MULTIPLE][0][value]=="yes") )      $val_dyn=1;
2315                else $val_dyn=0;
2316                if (($n==0)||($options[MULTIPLE][0][value]!="yes")) $n=1;
2317                if ($options[MULTIPLE][0][value]=="yes") {
2318                        $readonly='';
2319                        $ret.="<script>
2320                        function fonction_selecteur_".$field["NAME"]."() {
2321                                name=this.getAttribute('id').substring(4);
2322                                name_id = name;
2323                                openPopUp('./select.php?what=perso&caller=$caller&p1='+name_id+'&p2=f_'+name_id+'&perso_id=".$field["ID"]."&custom_prefixe=".$_custom_prefixe_."&dyn=$val_dyn&perso_name=".$field['NAME']."', 'select_author2', 400, 400, -2, -2, 'toolbar=no, dependent=yes, resizable=yes, scrollbars=yes');
2324                        }
2325                        function fonction_raz_".$field["NAME"]."() {
2326                                name=this.getAttribute('id').substring(4);
2327                                document.getElementById(name).value=0;
2328                                document.getElementById('f_'+name).value='';
2329                        }
2330                        function add_".$field["NAME"]."() {
2331                                template = document.getElementById('div_".$field["NAME"]."');
2332                                perso=document.createElement('div');
2333                                perso.className='row';
2334
2335                                suffixe = eval('document.$caller.n_".$field["NAME"].".value')
2336                                nom_id = '".$field["NAME"]."_'+suffixe
2337                                f_perso = document.createElement('input');
2338                                f_perso.setAttribute('name','f_'+nom_id);
2339                                f_perso.setAttribute('id','f_'+nom_id);
2340                                f_perso.setAttribute('completion','perso_".$_custom_prefixe_."');
2341                                f_perso.setAttribute('persofield','".$field["NAME"]."');
2342                                f_perso.setAttribute('autfield',nom_id);
2343                                f_perso.setAttribute('type','text');
2344                                f_perso.className='saisie-50emr';
2345                                $readonly
2346                                f_perso.setAttribute('value','');
2347
2348                                del_f_perso = document.createElement('input');
2349                                del_f_perso.setAttribute('id','del_".$field["NAME"]."_'+suffixe);
2350                                del_f_perso.onclick=fonction_raz_".$field["NAME"].";
2351                                del_f_perso.setAttribute('type','button');
2352                                del_f_perso.className='bouton';
2353                                del_f_perso.setAttribute('readonly','');
2354                                del_f_perso.setAttribute('value','X');
2355
2356                                sel_f_perso = document.createElement('input');
2357                                sel_f_perso.setAttribute('id','sel_".$field["NAME"]."_'+suffixe);
2358                                sel_f_perso.setAttribute('type','button');
2359                                sel_f_perso.className='bouton';
2360                                sel_f_perso.setAttribute('readonly','');
2361                                sel_f_perso.setAttribute('value','...');
2362                                sel_f_perso.onclick=fonction_selecteur_".$field["NAME"].";
2363
2364                                f_perso_id = document.createElement('input');
2365                                f_perso_id.name=nom_id;
2366                                f_perso_id.setAttribute('type','hidden');
2367                                f_perso_id.setAttribute('id',nom_id);
2368                                f_perso_id.setAttribute('value','');
2369
2370                                perso.appendChild(f_perso);
2371                                space=document.createTextNode(' ');
2372                                perso.appendChild(space);
2373                                perso.appendChild(sel_f_perso);
2374                                space=document.createTextNode(' ');
2375                                perso.appendChild(space);
2376                                perso.appendChild(del_f_perso);
2377                                perso.appendChild(f_perso_id);
2378
2379                                template.appendChild(perso);
2380
2381                                document.$caller.n_".$field["NAME"].".value=suffixe*1+1*1 ;
2382                                ajax_pack_element(document.getElementById('f_'+nom_id));
2383                        }
2384                        </script>
2385                        ";
2386                }
2387                $ret.="<input type='hidden' value='$n' name='n_".$field["NAME"]."'/>\n<div id='div_".$field["NAME"]."'>";
2388                $readonly='';
2389                for ($i=0; $i<$n; $i++) {
2390                $ret.="<input type='text' class='saisie-50emr' id='f_".$field["NAME"]."_$i' completion='perso_".$_custom_prefixe_."' persofield='".$field["NAME"]."' autfield='".$field["NAME"]."_$i' name='f_".$field["NAME"]."_$i' $readonly value=\"".htmlentities($libelles[$i],ENT_QUOTES,$charset)."\" />\n";
2391                        $ret.="<input type='hidden' id='".$field["NAME"]."_$i' name='".$field["NAME"]."_$i' value=\"".htmlentities($values[$i],ENT_QUOTES,$charset)."\">";
2392
2393                        $ret.="<input type='button' class='bouton' value='...' onclick=\"openPopUp('./select.php?what=perso&caller=$caller&p1=".$field["NAME"]."_$i&p2=f_".$field["NAME"]."_$i&perso_id=".$field["ID"]."&custom_prefixe=".$_custom_prefixe_."&dyn=$val_dyn&perso_name=".$field['NAME']."', 'select_perso_".$field["ID"]."', 700, 500, -2, -2, 'toolbar=no, dependent=yes, resizable=yes, scrollbars=yes')\" />
2394                        <input type='button' class='bouton' value='X' onclick=\"this.form.f_".$field["NAME"]."_$i.value=''; this.form.".$field["NAME"]."_$i.value=''; \" />\n";
2395                        if (($i==0)&&($options[MULTIPLE][0][value]=="yes")) {
2396                        $ret.=" <input type='button' class='bouton' value='+' onClick=\"add_".$field["NAME"]."();\"/>";
2397                }
2398                        $ret.="<br />";
2399                }
2400                $ret.="</div>";
2401        }
2402       
2403        return $ret;
2404}
2405
2406function chk_marclist_empr($field,&$check_message) {
2407        global $charset;
2408        global $msg;
2409
2410        $name=$field[NAME];
2411        $options=$field[OPTIONS][0];
2412
2413        global $$name;
2414        if ($options["AUTORITE"][0]["value"]!="yes") {
2415                $val=$$name;
2416        } else {
2417                $val=array();
2418                $nn="n_".$name;
2419                global $$nn;
2420                $n=$$nn;
2421                for ($i=0; $i<$n; $i++) {
2422                        $v=$field["NAME"]."_".$i;
2423                        global $$v;
2424                        if ($$v!="") {
2425                                $val[]=$$v;
2426                        }
2427                }
2428                if (count($val)==0) unset($val);
2429        }
2430        if ($field[MANDATORY]==1) {
2431                if ((!isset($val))||((count($val)==1)&&($val[0]==""))) {
2432                        $check_message=sprintf($msg["parperso_field_is_needed"],$field[ALIAS]);
2433                        return 0;
2434                }
2435        }
2436
2437        $check_datatype_message="";
2438        $val_1=chk_datatype($field,$val,$check_datatype_message);
2439        if ($check_datatype_message) {
2440                $check_message=$check_datatype_message;
2441                return 0;
2442        }
2443        $$name=$val_1;
2444
2445        return 1;
2446}
2447
2448function val_marclist_empr($field,$value) {
2449        global $charset,$pmb_perso_sep;
2450
2451        $options=$field[OPTIONS][0];
2452        $values=format_output($field,$value);
2453        $ret = "";
2454        if (count($values)) {
2455                $marclist_type = new marc_list($options['DATA_TYPE'][0]['value']);
2456                if($ret)$ret.=$pmb_perso_sep;
2457                foreach($values as $id=>$value) {
2458                        if($ret)$ret.=$pmb_perso_sep;
2459                        $ret.= $marclist_type->table[$value];
2460                }
2461        }
2462        return $ret;
2463}
2464
2465function aff_marclist_empr_search($field,&$check_scripts,$varname){
2466        global $charset;
2467        $_custom_prefixe_=$field["PREFIX"];
2468
2469        $options=$field[OPTIONS][0];
2470        $values=$field[VALUES];
2471        if ($values=="") $values=array();
2472
2473        $marclist_type = new marc_list($options['DATA_TYPE'][0]['value']);
2474
2475        $ret="<select id=\"".$varname."\" name=\"".$varname;
2476        $ret.="[]";
2477        $ret.="\" ";
2478        if ($script) $ret.=$script." ";
2479        $ret.="multiple";
2480        $ret.=">\n";
2481
2482        if (($options[METHOD_SORT_VALUE][0][value]=="2") && ($options[METHOD_SORT_ASC][0][value]=="1")) {
2483                asort($marclist_type->table);
2484        } elseif (($options[METHOD_SORT_VALUE][0][value]=="1") && ($options[METHOD_SORT_ASC][0][value]=="1")) {
2485                ksort($marclist_type->table);
2486        } elseif (($options[METHOD_SORT_VALUE][0][value]=="2") && ($options[METHOD_SORT_ASC][0][value]=="2")) {
2487                arsort($marclist_type->table);
2488        } elseif (($options[METHOD_SORT_VALUE][0][value]=="2") && ($options[METHOD_SORT_ASC][0][value]=="2")) {
2489                krsort($marclist_type->table);
2490        }
2491
2492        reset($marclist_type->table);
2493        if (count($marclist_type->table)) {
2494                foreach ($marclist_type->table as $code=>$label) {
2495                        $ret .= "<option value=\"".$code."\"";
2496                        $as=array_search($code,$values);
2497                        if (($as!==FALSE)&&($as!==NULL)) $ret.=" selected";
2498                        $ret .= ">".$label."</option>";
2499                }
2500        }
2501        $ret.= "</select>\n";
2502
2503        return $ret;
2504}
2505
2506function get_form_name() {
2507        global $_custom_prefixe_;
2508       
2509        $caller="";
2510        switch ($_custom_prefixe_) {
2511                case "empr":
2512                        $caller="empr_form";
2513                        break;
2514                case "notices":
2515                        $caller="notice";
2516                        break;
2517                case "expl":
2518                        $caller="expl";
2519                        break;
2520                case "gestfic0": // a modifier lorsque il y aura du multi fiches!
2521                        $caller="formulaire";
2522                        break;
2523                case "author":
2524                        $caller="saisie_auteur";
2525                        break;
2526                case "categ":
2527                        $caller="categ_form";
2528                        break;
2529                case "publisher":
2530                        $caller="saisie_editeur";
2531                        break;
2532                case "collection":
2533                        $caller="saisie_collection";
2534                        break;
2535                case "subcollection":
2536                        $caller="saisie_sub_collection";
2537                        break;
2538                case "serie":
2539                        $caller="saisie_serie";
2540                        break;
2541                case "tu":
2542                        $caller="saisie_titre_uniforme";
2543                        break;
2544                case "indexint":
2545                        $caller="saisie_indexint";
2546                        break;
2547                case "authperso":
2548                        $caller="saisie_authperso";
2549                        break;
2550                case "cms_editorial":
2551                        global $elem;
2552                        $caller="cms_".$elem."_edit";
2553                        break;
2554                case "pret":
2555                        $caller="pret_doc";
2556                        break;
2557                case "demandes":
2558                        $caller="modif_dmde";
2559                        break;
2560        }
2561        return $caller;
2562}
Note: See TracBrowser for help on using the repository browser.