41f7590e117005a0572e2ccf0d477cfe0de83df6
3 if (!defined('_ECRIRE_INC_VERSION')) return;
5 include_spip('inc/saisies');
6 include_spip('balise/saisie');
7 // picker_selected (spip 3)
8 include_spip('formulaires/selecteur/generique_fonctions');
11 * Traiter la valeur de la vue en fonction du env
12 * si un traitement a ete fait en amont (champs extra) ne rien faire
13 * si pas de traitement defini (formidable) passer typo ou propre selon le type du champ
15 * @param string $valeur
16 * @param string|array $env
19 function saisie_traitement_vue($valeur,$env){
21 $env = unserialize($env);
22 if (!function_exists('propre'))
23 include_spip('inc/texte');
25 // si traitement est renseigne, alors le champ est deja mis en forme
27 // sinon on fait une mise en forme smart
28 if (!isset($env['traitements'])){
29 if (in_array($env['type_saisie'],array('textarea'))){
30 $valeur = propre($valeur);
33 $valeur = "<p>" . typo($valeur) . "</p>";
41 * Passer un nom en une valeur compatible avec une classe css
43 * toto/truc => toto_truc,
44 * toto[truc] => toto_truc,
46 function saisie_nom2classe($nom) {
47 return str_replace(array('/', '[', ']', '[', ']'), array('_', '_', '', '_', ''), $nom);
51 * Passer un nom en une valeur compatible avec un name de formulaire
53 * toto/truc => toto[truc],
54 * toto[truc] => toto[truc],
56 function saisie_nom2name($nom) {
57 if (false === strpos($nom, '/')) {
60 $nom = explode('/', $nom);
61 $premier = array_shift($nom);
62 $nom = implode('][', $nom);
63 return $premier . '[' . $nom . ']';
67 * Balise beurk #GLOBALS{debut_intertitre}
68 * qui retourne la globale PHP du même nom si elle existe
71 * Pile au niveau de la balise
73 * Pile complétée du code php de la balise.
75 function balise_GLOBALS_dist($p) {
76 if (function_exists('balise_ENV'))
77 return balise_ENV($p, '$GLOBALS');
79 return balise_ENV_dist($p, '$GLOBALS');
83 * Liste les éléments du sélecteur générique triés
85 * Les éléments sont triés par objets puis par identifiants
89 * 'rubrique|3,rubrique|5,article|2'
92 * 0 => array('objet'=>'article', 'id_objet' => 2),
93 * 1 => array('objet'=>'rubrique', 'id_objet' => 3),
94 * 2 => array('objet'=>'rubrique', 'id_objet' => 5),
97 * @param string $selected
98 * Liste des objets sélectionnés
100 * Liste des objets triés
102 function picker_selected_par_objet($selected) {
104 $liste = picker_selected($selected);
105 // $liste : la sortie dans le désordre
110 foreach ($liste as $l) {
111 if (!isset($res[ $l['objet'] ])) {
112 $res[ $l['objet'] ] = array();
114 $res[$l['objet']][] = $l['id_objet'];
116 // $res est trié par objet, puis par identifiant
118 foreach ($res as $objet => $ids) {
122 // on remet tout en file
124 foreach ($res as $objet=>$ids) {
125 foreach ($ids as $id) {
126 $liste[] = array('objet' => $objet, 'id_objet' => $id);