read()); sort($my_files); while ($file=next($my_files)) { if (ereg("^.*\.".$ext."$", $file)) { $ret []= $file; } } $data_dir_obj->close(); foreach($ret as $r) { $itm=basename($r, ".".$ext); $new[$r]=$itm; } return $new; } ### # Créer un tableau triable ### class sorttable { var $titles; var $datas; var $id; function sorttable($id) { $this->id=$id; } function html() { #####table $tmp.="id."\" class=\"sortable\">\n"; #####entête $tmp.=""; foreach($this->titles as $t) { $tmp.="\n"; } $tmp.="\n"; #####données foreach($this->datas as $row) { $tmp.=""; foreach($row as $c) { $tmp.=""; } $tmp.="\n"; } #####fin du tableau $tmp.="
$t
".$c."
\n"; return $tmp; } } ### # Ajouter les réponses de la session demandée pour l'utilisateur demandé, au tableau ### function get_reponses($array, $uid) { $m=new mysql(); for ($i=0;$iselect_uniq("reponses", "*", "id_utilisateurs=".$uid." AND id_engagements=".$array[$i]['id']); $array[$i]['idrep']=$choix['id']; $array[$i]['choix']=$choix['choix']; $array[$i]['action_corrective']=$choix['action_corrective']; $array[$i]['delais_ac']=$choix['delais_ac']; $array[$i]['resp_ac']=$choix['resp_ac']; $array[$i]['remarque_ac']=$choix['remarque_ac']; $array[$i]['action_ameliorative']=$choix['action_ameliorative']; $array[$i]['delais_aa']=$choix['delais_aa']; $array[$i]['resp_aa']=$choix['resp_aa']; $array[$i]['remarque_aa']=$choix['remarque_aa']; $array[$i]['remarques_reponses']=$choix['remarques_reponses']; $array[$i]['audit']=$choix['audit']; $array[$i]['audit_titre']=$choix['audit_titre']; $array[$i]['remarque_audit']=$choix['remarque_audit']; $array[$i]['audit_responsable']=$choix['audit_responsable']; $array[$i]['audit_delais']=$choix['audit_delais']; $array[$i]['date_audit']=$choix['date_audit']; $array[$i]['id_auditeur']=$choix['id_auditeur']; } return $array; } ### # Remplace rapidement des numéros d'id par leur nom correspondant ### function replace_ids($array, $col, $table){ $m=new mysql(); for ($i=0;$iget_id_name($table, $array[$i][$col]); } return $array; } ### # Remplace rapidement des numéros d'id par leur nom correspondant avec combinaison d'un champ supplémentaire ### function replace_ids_combined($array, $col, $table, $field){ $m=new mysql(); for ($i=0;$iselect_uniq($table, $field,"id=".$array[$i][$col]); $array[$i][$col]="".$m->get_id_name("referentiels", $ref)."
".$numero." - Priorité ".$prio." - ".$m->get_id_name($table, $array[$i][$col]); } return $array; } ### # Remplace rapidement un texte long par un résumé ### function replace_long($array, $col){ for ($i=0;$i".substr($array[$i][$col],0,100)."..."; $def=$array[$i][$col]; $array[$i][$col]="".$def.""; } return $array; } ### # Remplace rapidement des numéros d'id par un lien dynamique ### function replace_to_link($array, $col, $src, $dest, $param,$type=1){ global $TheRepeatedParam; /* Les types : 3 = voir plus loin, effacer 2 = effacer 1 = voir plus loin */ for ($i=0;$i\"voir\""; if($type==1||$type==3)$array[$i][$col]="\"voir\""; if ($type==2)$array[$i][$col]="";//on reset pour la suppression seule //if($type==1||$type==3)$array[$i][$col].="\"éditer\""; if($type==2||$type==3)$array[$i][$col].="\"effacer\""; } return $array; } ### # Remplace rapidement la ligne d'un utilisateur desactivé ### function replace_to_unactive($array, $col, $src, $dest, $param){ global $TheRepeatedParam; for ($i=0;$i\"activer\""; $array[$i]["id"]="Désactivé"; } else $array[$i][$col]="\"désactiver\""; } return $array; } ### # Remplace rapidement des numéros d'id par un lien contenant le nom correspondant ### function replace_to_namedlink($array, $col, $table, $dest,$param) { $m=new mysql(); for ($i=0;$iget_id_name($table, $array[$i][$col]); $array[$i][$col]="".$nom.""; } return $array; } ### # Remplace rapidement une valeur de champ par un champ éditable ### function replace_to_edit($array, $col, $src, $dest, $type="text", $query="", $repeat=1){//where pour lesconditions d'une requete global $TheRepeatedParam; for ($i=0;$i",$v);//workaround du passage à la ligne $v=str_replace("\r","",$v);//workaround du passage à la ligne $id=$array[$i]["id"]; if($type=="select" && !empty($query)) { $m=new mysql(); $l=$m->select_str($query); $options=""; foreach($l as $c) { $s[$c['id']]=$c['nom']; if($c['id']==$array[$i][$col])$selected=" selected='selected'";else $selected=""; $options.="\n"; } $array[$i][$col]=$s[$array[$i][$col]]; $array[$i][$col].=" \"éditer\""; $array[$i][$col].="\n"; //$array[$i][$col].=" \"éditer\""; } else { if ($repeat) $array[$i][$col]=nl2br($array[$i][$col]); else $array[$i][$col]=""; $array[$i][$col].=" \"éditer\""; } } return $array; } ### # Supprime rapidement un champ ### function replace_to_empty($array, $col){ $new=array(); for ($i=0;$i$v) { if($k==$col)continue; else $new[$i][$k]=$v; } } return $new; } ### # Remplace rapidementle choix ### function replace_choice($array, $col){ for ($i=0;$ishow_cols($table); //print "
".print_r($cols, 1)."
"; foreach($cols as $c) { if ($c['Extra'] == 'auto_increment') continue; //on n'affiche l'ajout d'id if (substr($c['Field'], 0, 3)=="id_")//cas d'un id de liaison { if($c['Field']=='id_territoires' && $config->user['statuts']=='animateur'){ $input=""; $fieldname=".".substr($c['Field'], 3); } else if($c['Field']=='id_referentiels' && (!empty($_REQUEST['id_referentiel']))){ $input=""; $fieldname=".".substr($c['Field'], 3); } else if($c['Field']=='id_auditeur' && $config->user['statuts']=='animateur'){ $input=""; $fieldname=".".substr($c['Field'], 3); } else if($c['Field']=='id_categories' && $table=='engagements'){ $data=$m->select("categories", "*", "id_referentiels=".$_REQUEST['id_referentiel']); $input=""; $fieldname=substr($c['Field'], 3); } else if($c['Field']=='id_referentiels' && $config->user['statuts']=='animateur'){ $data=$m->select("referentiels", "*", "id!=1 and id_territoires=1 or id_territoires=".$config->user['id_territoires']." order by id"); $input=""; $fieldname=substr($c['Field'], 3); } else if($c['Field']=='id_referentiels:parent' && $config->user['statuts']=='animateur'){ $input=""; $fieldname=".".substr($c['Field'], 3); } else if($c['Field']=='id_utilisateurs' && $config->user['statuts']=='animateur'){ $data=$m->select("utilisateurs", "*", "statuts='utilisateur' and id_territoires=".$config->user['id_territoires']." order by id"); $input=""; $fieldname=substr($c['Field'], 3); } else { $table2=substr($c['Field'], 3); if($pos = strpos($table2, ":")) $table2=substr($table2, 0, $pos); $data=$m->select($table2, "*"); $input=""; $fieldname=substr($c['Field'], 3); } $tmp[$fieldname]=$input; unset($input); } else if($c['Field']=="classement" && $table=="categories" )//traitement spécial pour les numéros de categories { $input=categ_tree($_REQUEST['id_referentiel']); $tmp["Choisir la catégorie parente"]=$input; unset($input); } else if(ereg("enum\('([A-Za-z0-9 ]*)','([A-Za-z0-9 ]*)','([A-Za-z0-9 ]*)','([A-Za-z0-9 ]*)','([A-Za-z0-9é ]*)'\)", $c['Type'], $regs)) {//cas du enum à 4 propositions (bouh, c'est pas beau) //enum('administrateur','animateur','utilisateur','superviseur') if ($config->user['statuts']=='animateur' && $c['Field']=='statuts') { $input=""; $tmp[".".$c['Field']]=$input; } else if ($config->user['statuts']=='administrateur' && $c['Field']=='statuts') { //~ $input=""; //~ $tmp[".".$c['Field']]=$input; $input=""; } else { $input=""; } $tmp[$c['Field']]=$input; unset($input); } else if(ereg("enum\('([A-Za-z0-9 ]*)','([A-Za-z0-9 ]*)'\)", $c['Type'], $regs)) {//cas du enum à 2 propositions (bouh, c'est pas beau) $input=""; $tmp[$c['Field']]=$input; unset($input); } else if(ereg("varchar\(([0-9]*)\)", $c['Type'], $regs))//cas d'une chaine { $input=""; $tmp[$c['Field']]=$input; unset($input); } else if(ereg("int\(([0-9]*)\)", $c['Type'], $regs))//cas d'un entier { $input=" (chiffres uniquement)"; $tmp[$c['Field']]=$input; unset($input); } else if($c['Type']=="datetime" && $c['Field']=='date_realise') //cas d'une date de validation { continue; } else if($c['Type']=="datetime") //cas d'une date { if ($c['Field']=="date") {$type="hidden";$disabled="disabled='disabled'";$fieldname=".date";} else{$type="text";$disabled="";$fieldname=$c['Field'];} $input=""; $tmp[$fieldname]=$input; unset($input); } else if($c['Type']=="text")//cas d'un texte { $input="\n"; $tmp[$c['Field']]=$input; unset($input); } } return $tmp; } function categ_tree($id_referentiel) { /* Déterminer quelles sont les catégories appartenant au référentiel Les resortir en arbre dans un ".$tmp.""; return $tmp; } function get_help($view) { $m=new mysql(); $l=$m->select("aide","id,texte","view='".$view."'"); if(!empty($l[0]['texte'])) { $ret[]=$l[0]['id']; $ret[]=$l[0]['texte']; $wiki = new wiki2xhtml(); $aide= $wiki->transform($l[0]['texte']); $tmp .= "
Aide
\n"; $tmp .= "
"; $tmp .= html_entity_decode($aide); $tmp .= "
\n"; } else $ret=array(); return $tmp; } //fonction de sauvegarde de session function savesession($id_utilisateur, $id_referentiel) { } //fonction de création de données csv function csv_gen($datas) { $head=array(); foreach($datas as $k=>$v) { if(!count($head)) { foreach($v as $a=>$b){$head[]=$a;} $out=my_fputcsv($head); } $out.=my_fputcsv($v); } return $out; } //fonction de génération de ligne csv function my_fputcsv($fields = array(), $delimiter = ';', $enclosure = '"', $force_enclosure = true) { $str = ''; $escape_char = '\\'; foreach ($fields as $value) { if (strpos($value, $delimiter) !== false || strpos($value, $enclosure) !== false || strpos($value, "\n") !== false || strpos($value, "\r") !== false || strpos($value, "\t") !== false || strpos($value, ' ') !== false) { $str2 = $enclosure; $escaped = 0; $len = strlen($value); for ($i=0;$i<$len;$i++) { if ($value[$i] == $escape_char) { $escaped = 1; } else if (!$escaped && $value[$i] == $enclosure) { $str2 .= $enclosure; } else { $escaped = 0; } $str2 .= $value[$i]; } $str2 .= $enclosure; $str .= $str2.$delimiter; } else if($force_enclosure){ $str .= $enclosure.$value.$enclosure.$delimiter; } else { $str .= $value.$delimiter; } } $str = substr($str,0,-1); $str .= "\n"; return $str; } ?>