function cs_initialisation_d_un_outil($outil_, $description_outil, $modif) { global $outils, $metas_outils; $outil = &$outils[$outil_]; if(!isset($outil['init_ok'])) { $outil['init_ok'] = 1; if(!isset($outil['categorie'])) $outil['categorie'] = 'divers'; if(!isset($outil['nom'])) $outil['nom'] = _T('couteauprive:'.$outil['id'].':nom'); if(strpos($outil['nom'], '<:')!==false) $outil['nom'] = preg_replace(',<:([:a-z0-9_-]+):>,ie', '_T("$1")', $outil['nom']); if(isset($outil['surcharge'])) $outil['nom'] = $outil['nom'].' *'; if(isset($outil['perso'])) $outil['nom'] = '<i>'.$outil['nom'].'</i>'; if(isset($outil['code:jq'])) $outil['jquery']='oui'; $outil['actif'] = isset($metas_outils[$outil['id']])?@$metas_outils[$outil['id']]['actif']:0; // si SPIP est trop ancien ou trop recent... if(cs_version_erreur($outil)) { $metas_outils[$outil['id']]['actif'] = $outil['actif'] = 0; } // au cas ou des variables sont presentes dans le code $outil['variables'] = array(); $outil['nb_variables'] = 0; // ces 2 lignes peuvent initialiser des variables dans $metas_vars ou $metas_vars_code if(isset($outil['code:spip_options'])) $outil['code:spip_options'] = cs_parse_code_php($outil['code:spip_options']); if(isset($outil['code:options'])) $outil['code:options'] = cs_parse_code_php($outil['code:options']); if(isset($outil['code:fonctions'])) $outil['code:fonctions'] = cs_parse_code_php($outil['code:fonctions']); } // cette ligne peut utiliser des variables dans $metas_vars ou $metas_vars_code return $description_outil($outil_, 'admin_couteau_suisse', $modif); }
function cs_parse_code_js($code) { global $metas_vars, $cs_variables; // parse d'abord [[%toto%]] pour le code reel de la variable $code = cs_parse_code_php($code, '\[\[%', '%\]\]'); // parse ensuite %%toto%% pour la valeur reelle de la variable while(preg_match(',%%([a-zA-Z_][a-zA-Z0-9_]*)%%,U', $code, $matches)) { // la valeur de la variable n'est stockee dans les metas qu'au premier post if(isset($metas_vars[$matches[1]])) { // la valeur de la variable est directement inseree dans le code js $rempl = $metas_vars[$matches[1]]; } else { // tant que le webmestre n'a pas poste, on prend la valeur (dynamique) par defaut $rempl = cs_retire_guillemets(cs_get_defaut($matches[1])); } $code = str_replace($matches[0], $rempl, $code); } return $code; }