\n"; } } debut_cadre_relief("$stype-24.gif"); if ($afficher_titre_extras) { echo ""; bandeau_titre_boite("le champ EXTRA", FALSE); echo "
"; } echo $hidden; while (list(, $nom_champ) = each($champs_proposes)){ if (substr($nom_champ, 0, 3) == "---") { $table = ''; $titre = substr($nom_champ, 3); }elseif (substr($nom_champ, 0, 2) == "--") { if ($table) { if ($titre AND $afficher_titre_extra) { echo "

$titre

"; } echo ""; afficher_liste($largeurs, $table, $styles); echo "
"; } }else { $table[] = array("".champ_saisie("suppl_".$nom_champ, $champs[$nom_champ], $champs_extra[$nom_champ])); } } fin_cadre_relief(); } } // a partir de la liste des champs, generer l'affichage function extra_affichage($extra, $type, $afficher_titre_extra = TRUE, $afficher_titre_groupe = TRUE) { $stype = substr($type, 0, -1); $champs = unserialize ($extra); if(!is_array($champs)) return; if (!$champs_extra = $GLOBALS['champs_extra'][$type]) $champs_extra = Array(); // prendre en compte, eventuellement, les champs presents dans la base // mais oublies dans mes_options. if (is_array($champs)) while (list($nom_champ, ) = each($champs)) if (!$champs_extra[$nom_champ]) $champs_extra[$nom_champ] = "masque||($nom_champ ? champ dans les extras sans définition !!!)"; $champs_proposes = extra_proposes($type, $champs_extra); if (is_array($champs_proposes)) { debut_cadre_enfonce("$stype-24.gif"); if ($afficher_titre_extra) { echo ""; bandeau_titre_boite("le champ EXTRA", FALSE); echo "
"; } while (list(, $nom_champ) = each($champs_proposes)){ if (isset($champs[$nom_champ]) OR substr($nom_champ, 0, 2) == "--") { if (substr($nom_champ, 0, 3) == "---") { $table = ''; $titre = substr($nom_champ, 3); }elseif (substr($nom_champ, 0, 2) == "--") { if ($table) { debut_cadre_relief(); if ($titre AND $afficher_titre_groupe) { echo "

$titre

"; } echo ""; $largeurs = array('250', ''); afficher_liste($largeurs, $table, $styles); echo "
"; fin_cadre_relief(); } }else { $table[] = champ_affichage($nom_champ, $champs[$nom_champ], $champs_extra[$nom_champ]); } } } fin_cadre_enfonce(); } } //Les champs proposes function extra_proposes($type, $champs_extra, $ensemble) { global $id_rubrique, $id_parent, $id_article, $id_breve, $id_mot, $id_groupe, $id_auteur; global $auteur_session; $stype = substr($type, 0, -1); // quels sont les extras de ce type d'objet if (!is_array($ensemble)) { if ($type == 'rubriques') { $parent = $id_parent; }elseif ($type == 'mots') { $parent = $id_groupe; }else { $parent = $id_rubrique; } $ensemble = array('ensemble' => $ensemble, 'kle' => ${"id_".$stype}, 'parent' => $parent, 'auteur' => $auteur_session['id_auteur'], 'statut' => $auteur_session['statut'], 'root' => (acces_rubrique(0) ? 'TRUE' : 'FALSE'), ); } while (list($nom_groupe, $proprietes) = each($GLOBALS['champs_extra_proposes'][$type])) { if ($nom_groupe == $ensemble['ensemble']) { $props = explode(',', $proprietes); $champs = explode('|', $props[0]); if ($champs != explode('|', '')) { $champs_proposes[] = "---".$props[1].""; while (list(, $nom_champ) = each($champs)) if(!in_array($nom_champ, $champs_proposes)) $champs_proposes[] = $nom_champ; $champs_proposes[] = "--"; } } if (strpos($nom_groupe, "kle-".$ensemble['kle']) !== FALSE) { $props = explode(',', $proprietes); $champs = explode('|', $props[0]); if ($champs != explode('|', '')) { $champs_proposes[] = "---".$props[1].""; while (list(, $nom_champ) = each($champs)) if(!in_array($nom_champ, $champs_proposes)) $champs_proposes[] = $nom_champ; $champs_proposes[] = "--"; } } if (strpos($nom_groupe, "parent-".$ensemble['parent']) !== FALSE) { $props = explode(',', $proprietes); $champs = explode('|', $props[0]); if ($champs != explode('|', '')) { $champs_proposes[] = "---".$props[1].""; while (list(, $nom_champ) = each($champs)) if(!in_array($nom_champ, $champs_proposes)) $champs_proposes[] = $nom_champ; $champs_proposes[] = "--"; } } if (strpos($nom_groupe, "auteur-".$ensemble['auteur']) !== FALSE) { $props = explode(',', $proprietes); $champs = explode('|', $props[0]); if ($champs != explode('|', '')) { $champs_proposes[] = "---".$props[1].""; while (list(, $nom_champ) = each($champs)) if(!in_array($nom_champ, $champs_proposes)) $champs_proposes[] = $nom_champ; $champs_proposes[] = "--"; } } if (strpos($nom_groupe, "statut-".$ensemble['statut']) !== FALSE) { $props = explode(',', $proprietes); $champs = explode('|', $props[0]); if ($champs != explode('|', '')) { $champs_proposes[] = "---".$props[1].""; while (list(, $nom_champ) = each($champs)) if(!in_array($nom_champ, $champs_proposes)) $champs_proposes[] = $nom_champ; $champs_proposes[] = "--"; } } if ($nom_groupe == "statut-root" AND $ensemble['root']) { $props = explode(',', $proprietes); $champs = explode('|', $props[0]); if ($champs != explode('|', '')) { $champs_proposes[] = "---".$props[1].""; while (list(, $nom_champ) = each($champs)) if(!in_array($nom_champ, $champs_proposes)) $champs_proposes[] = $nom_champ; $champs_proposes[] = "--"; } } } reset($GLOBALS['champs_extra_proposes'][$type]); if ($ensemble['root'] == TRUE) { $champs_proposes[] = "---Tous les champs accés webmestre"; while (list($nom_groupe, $proprietes) = each($GLOBALS['champs_extra_proposes'][$type])) { $props = explode(',', $proprietes); $champs = explode('|', $props[0]); if ($champs != explode('|', '')) while (list(, $nom_champ) = each($champs)) if(!in_array($nom_champ, $champs_proposes)) $champs_proposes[] = $nom_champ; } $champs_proposes[] = "--"; // sinon, les champs proposes par defaut }elseif (!is_array($champs_proposes) AND isset($GLOBALS['champs_extra_proposes'][$type]['tous'])) { $props = explode(',', $GLOBALS['champs_extra_proposes'][$type]['tous']); $champs = explode('|', $props[0]); if ($champs != explode('|', '')) { if ($props[1]){ $champs_proposes[] = "---".$props[1].""; }else { $champs_proposes[] = "---Le groupe par defaut tous"; } while (list(, $nom_champ) = each($champs)) $champs_proposes[] = $nom_champ; $champs_proposes[] = "--"; } // sinon tout les champs }else{ $champs_proposes = Array(); $champs_proposes[] = "---Tous les champs EXTRA
Aucune définition de groupes 'extra_proposes'"; while (list($nom_champ, ) = each($champs_extra)) $champs_proposes[] = $nom_champ; $champs_proposes[] = "--"; } if ($GLOBALS['debug']) { echo "
Global champs
"; print_r($champs_extra); echo "Global champs proposes
"; print_r($GLOBALS['champs_extra_proposes'][$type]); echo "Ensemble
"; print_r($ensemble); echo "champs proposes
"; print_r($champs_proposes); echo "
"; } return $champs_proposes; } function champ_saisie($nom_champ, $valeur, $format, $afficher_titre = TRUE, $script = '', $formulaire = 'formulaire', $style = 'forml'){ $tab_options = "width=\"100%\" cellpadding=0 cellspacing=0"; $cell_options = "nowrap"; list($form, $filtre, $prettyname, $default, $allowed_vals, $labels, $labels_styles) = explode("|", $format); if (!$prettyname) $prettyname = ucfirst($nom_champ); if ($afficher_titre) $affiche = "$prettyname : 
"; switch($form) { case "masque": $affiche .= "".interdire_scripts($valeur)."\n"; break; case "boucle": $affiche .= "boucle $nom_champ $format"; break; case "date": if (ereg ("^([0-9]{4})-([0-9]{2})-([0-9]{2}) ([0-9]{2}):([0-9]{2}):([0-9]{2}).*$", $valeur, $regs)) $date = mktime($regs[4], $regs[5], $regs[6], $regs[2], $regs[3], $regs[1]); if (ereg ("^([0-9]{4})/([0-9]{2})/([0-9]{2}) ([0-9]{2}):([0-9]{2}):([0-9]{2}).*$", $valeur, $regs)) $date = mktime($regs[4], $regs[5], $regs[6], $regs[2], $regs[3], $regs[1]); if ($valeur) { $jour = date('d', $date); $mois = date('m', $date); $annee = date('Y', $date); $heures = date('H', $date); $minutes = date('i', $date); $secondes = date('s', $date); }else { $jour = date('d'); $mois = date('m'); $annee = date('Y'); $heures = date('H'); $minutes = date('i'); $secondes = date('s'); } $valeur = "$annee-$mois-$jour $heures:$minutes:$secondes"; $affiche .= "\n"; $s = " onchange='javascript: $nom_champ.value = annee_$nom_champ.options[annee_$nom_champ.selectedIndex].value + \"-\" + mois_$nom_champ.options[mois_$nom_champ.selectedIndex].value + \"-\" + jour_$nom_champ.options[jour_$nom_champ.selectedIndex].value + \" \" + heures_$nom_champ.options[heures_$nom_champ.selectedIndex].value + \":\" + minutes_$nom_champ.options[minutes_$nom_champ.selectedIndex].value + \":\" + secondes_$nom_champ.options[secondes_$nom_champ.selectedIndex].value ;' "; //les jours for ($i = 1; $i <= 31; $i++) { $kj[] = ($i < 10 ? '0' : '') . $i; } $kj = implode(",", $kj); $affiche .= "
La date : "; $affiche .= champ_saisie("jour_$nom_champ", $jour, "liste|brut|jour|$jour|$kj|$kj", 0, $s, $formulaire, 'fondf'); //les mois for ($i = 1; $i <= 12; $i++) { $km[] = ($i < 10 ? '0' : '') . $i; $vm[] = ucfirst(html_entity_decode(nom_mois("$annee-$i-01"))); } $km = implode(",", $km); $vm = implode(",", $vm); $affiche .= champ_saisie("mois_$nom_champ", $mois, "liste|brut|mois|$mois|$km|$vm", 0, $s, $formulaire, 'fondf'); //les annees for ($i = 1995; $i <= 2015; $i++) { $ka[] = $i; } $ka = implode(",", $ka); $affiche .= champ_saisie("annee_$nom_champ", $annee, "liste|brut|annee|$annee|$ka|$ka", 0, $s, $forulaire, 'fondf'); //les heures for ($i = 0; $i < 24; $i++) { $kh[] = ($i < 10 ? '0' : '') . $i; } $kh = implode(",", $kh); $affiche .= "
L'heure : "; $affiche .= champ_saisie("heures_$nom_champ", $heures, "liste|brut|heure|$heure|$kh|$kh", 0, $s, $formulaire, 'fondf'); //les minutes for ($i = 0; $i < 60; $i++) { $kmn[] = ($i < 10 ? '0' : '') . $i; } $kmn = implode(",", $kmn); $affiche .= champ_saisie("minutes_$nom_champ", $minutes, "liste|brut|minutes|$minute|$kmn|$kmn", 0, $s, $formulaire, 'fondf'); //les secondes for ($i = 0; $i < 60; $i++) { $ks[] = ($i < 10 ? '0' : '') . $i; } $ks = implode(",", $ks); $affiche .= champ_saisie("secondes_$nom_champ", $secondes, "liste|brut|secondes|$seconde|$ks|$ks", 0, $s, $formulaire, 'fondf'); $s = "javascript: var Today = new Date(); var annee = Today.getYear(); if (annee < 2000) annee += 1900; for(i = 0; i < annee_$nom_champ.options.length; i++) { if(annee == annee_$nom_champ.options[i].value) annee_$nom_champ.options[i].selected = true; } var mois = Today.getMonth() + 1; for(i = 0; i < mois_$nom_champ.options.length; i++) { if(mois == mois_$nom_champ.options[i].value) mois_$nom_champ.options[i].selected = true; } var jour = Today.getDate(); if (jour < 10) jour = \"0\" + jour; for(i = 0; i < jour_$nom_champ.options.length; i++) { if(jour == jour_$nom_champ.options[i].value) jour_$nom_champ.options[i].selected = true; } heures = Today.getHours(); for(i = 0; i < heures_$nom_champ.options.length; i++) { if(heures == heures_$nom_champ.options[i].value) heures_$nom_champ.options[i].selected = true; } minutes = Today.getMinutes(); for(i = 0; i < minutes_$nom_champ.options.length; i++) { if(minutes == minutes_$nom_champ.options[i].value) minutes_$nom_champ.options[i].selected = true; } secondes = Today.getSeconds(); for(i = 0; i < secondes_$nom_champ.options.length; i++) { if(secondes == secondes_$nom_champ.options[i].value) secondes_$nom_champ.options[i].selected = true; } secondes_$nom_champ.onchange(); "; $affiche .= " Aujourd'hui"; break; case "case": case "check": case "checkbox": $checked = explode('|', $valeur); $values = explode(",", $allowed_vals); if ($values == explode(",", "")) { $values = array(); } $labels_values = explode(",", $labels); if ($labels_values == explode(",", "")) { $labels_values = $values; } $i = 0; $cols = (count($values) > 4 ? 2 : 1); $affiche = "\n \n"; while (list($idx, $key) = each($values)){ /* verifie si la valeur actuelle est définie ou si il va falloir prendre celle par défaut */ if (in_array($key, $checked)) { $check = " checked"; }elseif ($key == $default AND $checked == explode('|', '')) { $check = " checked"; }else $check = ''; if (($i % $cols) == 0) $affiche .= "\n"; /* affiche des */ $champ = " "; $affiche .= "\n"; if (($i % $cols) == 0) $str .= "\n"; $i++; } $affiche .= "
$affiche
$champ
"; break; case "radio": /* affiche des */ $checked = $valeur; $values = explode(",", $allowed_vals); if ($values == explode(",", "")) { $values = array(); } $labels_values = explode(",", $labels); if ($labels_values == explode(",", "")) { $labels_values = $values; } $cols = (count($values) > 4 ? 2 : 1); $affiche = "\n \n"; $i = 0; $selectionne == -1; while (list($idx, $key) = each($values)){ /* verifie si la valeur actuelle est définie ou si il va falloir prendre celle par défaut */ if ($key == $checked) { $check = " checked"; }elseif ($key == $default AND $checked == '') { $check = " checked"; }else $check = ''; $champ = ""; if (($i % $cols) == 0) $affiche .= "\n"; $affiche .= "\n"; if (($i % $cols) == 0) $str .= "\n"; $i++; } $affiche .= "
$affiche
$champ
"; break; case "multi": case "liste": case "select": $values = explode(",", $allowed_vals); if ($values == explode(",", "")) { $values = array(); } $labels_values = explode(",", $labels); if ($labels_values == explode(",", "")) { $labels_values = $values; } $labels_styles = explode(",", $labels_styles); if ($labels_styles == explode(",", "")) { $labels_styles = array(); } $selectionne = -1; /* affiche des */ while (list($key, $val) = each($values)){ if ($val != '' AND $labels_values[$key] !='') { $options .= "