Browse Source

Ajout d'une fonction lister les fonctions de SPIP.

Il est possible d'appeler la page ?exec=fonctions depuis l'espace privé de SPIP pour avoir toutes les fonctions définies. Avec le select, on peut choisir le préfixe de la fonction désirée tel que 'autoriser' par exemple.
svn/root/tags/plugins/dev/0.3.0 v0.3.0
teddy.spip@gmail.com 9 years ago
parent
commit
e8e626b70e
  1. 3
      .gitattributes
  2. 27
      dev_fonctions.php
  3. 21
      formulaires/lister_fonctions.html
  4. 25
      formulaires/lister_fonctions.php
  5. 16
      lang/fonction_fr.php
  6. 2
      paquet.xml

3
.gitattributes vendored

@ -5,6 +5,8 @@
formulaires/charter.html -text
formulaires/charter.php -text
formulaires/charter_chantier_en_cours.html -text
formulaires/lister_fonctions.html -text
formulaires/lister_fonctions.php -text
inc/minipres.php -text
lang/charter.xml -text
lang/charter_ar.php -text
@ -14,6 +16,7 @@ lang/charter_fa.php -text
lang/charter_fr.php -text
lang/charter_nl.php -text
lang/charter_sk.php -text
lang/fonction_fr.php -text
lang/paquet-dev.xml -text
lang/paquet-dev_ar.php -text
lang/paquet-dev_en.php -text

27
dev_fonctions.php

@ -31,10 +31,35 @@ function bel_env($env) {
$val = entites_html($val);
}
$res .= "<tr>\n<td$style><strong>". entites_html($nom).
"&nbsp;:&nbsp;</strong></td><td$style>" .$val. "</td>\n</tr>\n";
"&nbsp;:&nbsp;</strong></td><td$style>" .$val. "</td>\n</tr>\n";
}
$res .= "</table>";
return $res;
}
function lister_fonctions ($nom = null) {
$fonctions = get_defined_functions();
$fonctions_user = $fonctions["user"];
sort($fonctions_user);
foreach ($fonctions_user as $value) {
if ($fonction = preg_split('/_/', $value, -1, PREG_SPLIT_NO_EMPTY)) {
$fonctions_user[$fonction[0]][] = $value;
if (($key = array_search($value, $fonctions_user)) !== false) {
unset($fonctions_user[$key]);
}
}
}
$resultat = $fonctions_user;
if ($nom) {
// On pourrait faire aussi un contrôle avec array_key_exists()
// Mais ça risque de fausser le résultat attendu.
$resultat = $fonctions_user[$nom];
}
return $resultat;
}
?>

21
formulaires/lister_fonctions.html

@ -0,0 +1,21 @@
<div class="formulaire_spip formulaire_configurer formulaire_#FORM">
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
<form action="#SELF" class="formulaire_spip">
[(#SELF|parametre_url{nom,''}|form_hidden)]
<ul>
<li>
<label for="champ_nom"><:fonction:label_prefixe_fonction:></label>
<select name="nom" id="champ_nom">
<BOUCLE_lister (DATA) {source table, (#REM|lister_fonctions|array_keys)} {par valeur}>
<option value="#VALEUR">#VALEUR</option>
</BOUCLE_lister>
</select>
</li>
</ul>
<p class="boutons">
<input type="submit" class="submit" value="<:bouton_valider:>" />
</p>
</form>
</div>

25
formulaires/lister_fonctions.php

@ -0,0 +1,25 @@
<?php
if (!defined('_ECRIRE_INC_VERSION')) return;
function formulaires_liste_fonctions_charger_dist () {
$valeurs = array();
$valeurs['nom'] = (_request('nom')) ? _request('nom') : '' ;
return $valeurs;
}
function formulaires_liste_fonctions_verifier_dist () {
$erreurs = array();
return $erreurs;
}
function formulaires_liste_fonctions_traiter_dist () {
$res = array();
return $res;
}
?>

16
lang/fonction_fr.php

@ -0,0 +1,16 @@
<?php
// This is a SPIP language file -- Ceci est un fichier langue de SPIP
// Fichier source, a modifier dans svn://zone.spip.org/spip-zone/_core_/plugins/dev/lang/
if (!defined('_ECRIRE_INC_VERSION')) return;
$GLOBALS[$GLOBALS['idx_lang']] = array(
// L
'label_prefixe_fonction' => 'Préfixe de la fonction',
// T
'titre_page_fonction' => 'Lister les fonctions',
);
?>

2
paquet.xml

@ -1,7 +1,7 @@
<paquet
prefix="dev"
categorie="outil"
version="0.2.1"
version="0.3.0"
etat="stable"
compatibilite="[3.0.0;3.1.*]"
logo="dev-32.png"

Loading…
Cancel
Save