Changeset 90490 in spip-zone
- Timestamp:
- Jun 24, 2015, 4:33:37 PM (6 years ago)
- Location:
- _plugins_/saisies/trunk
- Files:
-
- 1 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
_plugins_/saisies/trunk/paquet.xml
r90289 r90490 2 2 prefix="saisies" 3 3 categorie="outil" 4 version="2. 4.0"4 version="2.5.0" 5 5 etat="stable" 6 6 compatibilite="[3.0.0;3.1.*]" -
_plugins_/saisies/trunk/saisies_fonctions.php
r90254 r90490 2 2 3 3 /** 4 * Déclaration de fonctions pour les squelettes 5 * 6 * @package SPIP\Saisies\Fonctions 7 **/ 8 9 if (!defined('_ECRIRE_INC_VERSION')) return; 4 * Déclaration de fonctions pour les squelettes. 5 **/ 6 if (!defined('_ECRIRE_INC_VERSION')) { 7 return; 8 } 10 9 11 10 include_spip('inc/saisies'); … … 15 14 16 15 /** 17 * A partir de SPIP 3.1 18 * - ul.editer-groupe deviennent des div.editer-groupe 19 * - li.editer devient div.editer 20 * @param $tag 21 * ul ou li 16 * Traiter la valeur de la vue en fonction du env 17 * si un traitement a ete fait en amont (champs extra) ne rien faire 18 * si pas de traitement defini (formidable) passer typo ou propre selon le type du champ. 19 * 20 * @param string $valeur 21 * @param string|array $env 22 * 22 23 * @return string 23 * $tag initial ou div24 24 */ 25 function saisie_balise_structure_formulaire($tag){ 26 static $is_div=null; 27 if (is_null($is_div)){ 28 $version = explode(".",$GLOBALS['spip_version_branche']); 29 if ($version[0]>3 OR ($version[0]==3 AND $version[1]>0)) 30 $is_div = true; 31 } 32 if ($is_div) return "div"; 33 return $tag; 25 function saisie_traitement_vue($valeur, $env) 26 { 27 if (is_string($env)) { 28 $env = unserialize($env); 29 } 30 if (!function_exists('propre')) { 31 include_spip('inc/texte'); 32 } 33 34 $valeur = trim($valeur); 35 36 // si traitement est renseigne, alors le champ est deja mis en forme 37 // (saisies) 38 // sinon on fait une mise en forme smart 39 if ($valeur and !isset($env['traitements'])) { 40 if (in_array($env['type_saisie'], array('textarea'))) { 41 $valeur = propre($valeur); 42 } else { 43 $valeur = '<p>'.typo($valeur).'</p>'; 44 } 45 } 46 47 return $valeur; 34 48 } 35 49 36 50 /** 37 * Traiter la valeur de la vue en fonction du env 38 * si un traitement a ete fait en amont (champs extra) ne rien faire 39 * si pas de traitement defini (formidable) passer typo ou propre selon le type du champ 51 * Passer un nom en une valeur compatible avec une classe css. 40 52 * 41 * @param string $valeur42 * @param string|array $env43 * @return string44 */45 function saisie_traitement_vue($valeur,$env){46 if (is_string($env))47 $env = unserialize($env);48 if (!function_exists('propre'))49 include_spip('inc/texte');50 51 $valeur = trim($valeur);52 53 // si traitement est renseigne, alors le champ est deja mis en forme54 // (saisies)55 // sinon on fait une mise en forme smart56 if ($valeur and !isset($env['traitements'])) {57 if (in_array($env['type_saisie'], array('textarea'))) {58 $valeur = propre($valeur);59 }60 else {61 $valeur = "<p>" . typo($valeur) . "</p>";62 }63 }64 65 return $valeur;66 }67 68 /**69 * Passer un nom en une valeur compatible avec une classe css70 *71 53 * - toto => toto, 72 54 * - toto/truc => toto_truc, … … 75 57 * @param string $nom 76 58 * return string 77 **/ 78 function saisie_nom2classe($nom) { 79 return str_replace(array('/', '[', ']', '[', ']'), array('_', '_', '', '_', ''), $nom); 59 **/ 60 function saisie_nom2classe($nom) 61 { 62 return str_replace(array('/', '[', ']', '[', ']'), array('_', '_', '', '_', ''), $nom); 80 63 } 81 64 82 65 /** 83 * Passer un nom en une valeur compatible avec un `name` de formulaire 84 * 66 * Passer un nom en une valeur compatible avec un `name` de formulaire. 67 * 85 68 * - toto => toto, 86 69 * - toto/truc => toto[truc], … … 89 72 * @param string $nom 90 73 * return string 91 **/ 92 function saisie_nom2name($nom) { 93 if (false === strpos($nom, '/')) { 94 return $nom; 95 } 96 $nom = explode('/', $nom); 97 $premier = array_shift($nom); 98 $nom = implode('][', $nom); 99 return $premier . '[' . $nom . ']'; 74 **/ 75 function saisie_nom2name($nom) 76 { 77 if (false === strpos($nom, '/')) { 78 return $nom; 79 } 80 $nom = explode('/', $nom); 81 $premier = array_shift($nom); 82 $nom = implode('][', $nom); 83 84 return $premier.'['.$nom.']'; 100 85 } 101 86 102 87 /** 103 * Compile la balise `#GLOBALS{xxx}` qui retourne la valeur d'une vilaine variable globale de même nom si elle existe 88 * Compile la balise `#GLOBALS{xxx}` qui retourne la valeur d'une vilaine variable globale de même nom si elle existe. 104 89 * 105 90 * @example … … 107 92 * #GLOBALS{debut_intertitre} 108 93 * ``` 109 * 94 * 110 95 * @param Champ $p 111 96 * Pile au niveau de la balise 97 * 112 98 * @return Champ 113 99 * Pile complétée du code php de la balise. 114 **/ 115 function balise_GLOBALS_dist($p) { 116 if (function_exists('balise_ENV')) 117 return balise_ENV($p, '$GLOBALS'); 118 else 119 return balise_ENV_dist($p, '$GLOBALS'); 100 **/ 101 function balise_GLOBALS_dist($p) 102 { 103 if (function_exists('balise_ENV')) { 104 return balise_ENV($p, '$GLOBALS'); 105 } else { 106 return balise_ENV_dist($p, '$GLOBALS'); 107 } 120 108 } 121 109 122 110 /** 123 * Liste les éléments du sélecteur générique triés 111 * Liste les éléments du sélecteur générique triés. 124 112 * 125 113 * Les éléments sont triés par objets puis par identifiants 126 * 114 * 127 115 * @example 128 116 * L'entrée : … … 137 125 * @param string $selected 138 126 * Liste des objets sélectionnés 127 * 139 128 * @return array 140 129 * Liste des objets triés 141 **/ 142 function picker_selected_par_objet($selected) { 143 $res = array(); 144 $liste = picker_selected($selected); 145 // $liste : la sortie dans le désordre 146 if (!$liste) { 147 return $res; 148 } 130 **/ 131 function picker_selected_par_objet($selected) 132 { 133 $res = array(); 134 $liste = picker_selected($selected); 135 // $liste : la sortie dans le désordre 136 if (!$liste) { 137 return $res; 138 } 149 139 150 151 152 153 154 155 156 157 158 159 160 140 foreach ($liste as $l) { 141 if (!isset($res[ $l['objet'] ])) { 142 $res[ $l['objet'] ] = array(); 143 } 144 $res[$l['objet']][] = $l['id_objet']; 145 } 146 // $res est trié par objet, puis par identifiant 147 ksort($res); 148 foreach ($res as $objet => $ids) { 149 sort($res[$objet]); 150 } 161 151 162 163 164 foreach ($res as $objet=>$ids) {165 166 167 168 152 // on remet tout en file 153 $liste = array(); 154 foreach ($res as $objet => $ids) { 155 foreach ($ids as $id) { 156 $liste[] = array('objet' => $objet, 'id_objet' => $id); 157 } 158 } 169 159 170 160 return $liste; 171 161 } 162 163 /** 164 * Lister les objets qui ont une url_edit renseignée et qui sont éditables. 165 * 166 * @return array Liste des objets : 167 * index : nom de la table (spip_articles, spip_breves, etc.) 168 * 'type' : le type de l'objet ; 169 * 'url_edit' : l'url d'édition de l'objet ; 170 * 'texte_objets' : le nom humain de l'objet éditorial. 171 */ 172 function lister_tables_objets_edit() 173 { 174 include_spip('base/abstract_sql'); 175 176 $objets = lister_tables_objets_sql(); 177 $objets_edit = array(); 178 179 foreach ($objets as $objet => $definition) { 180 if (isset($definition['editable']) and isset($definition['url_edit']) and $definition['url_edit'] != '') { 181 $objets_edit[$objet] = array('type' => $definition['type'], 'url_edit' => $definition['url_edit'], 'texte_objets' => $definition['texte_objets']); 182 } 183 } 184 $objets_edit = array_filter($objets_edit); 185 186 return $objets_edit; 187 }
Note: See TracChangeset
for help on using the changeset viewer.