Valider 2e0a278f rédigé par teddy.spip@gmail.com's avatar teddy.spip@gmail.com
Parcourir les fichiers

Ajout des fichiers json. Mais pour le moment, il faut les inclure à la page...

Ajout des fichiers json. Mais pour le moment, il faut les inclure à la page pour qu'une boucle json puisse traiter les données… J'attends d'avoir plus d'infos sur l'utilisation de cette boucle pour l'intégrer.
parent 890f9b57
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+8 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
* text=auto !eol
/dev_fonctions.php -text
/dev_json.html -text
/dev_options.php -text
formulaires/charter.html -text
formulaires/charter.php -text
@@ -13,6 +14,8 @@ formulaires/lister_fonctions_utilisateur.php -text
formulaires/lister_images.html -text
formulaires/lister_images.php -text
inc/minipres.php -text
json/source_fonctions_completes.html -text
json/source_fonctions_utilisateur.html -text
lang/charter.xml -text
lang/charter_ar.php -text
lang/charter_en.php -text
@@ -43,6 +46,11 @@ prive/squelettes/contenu/source_constantes.html -text
prive/squelettes/contenu/source_fonctions_completes.html -text
prive/squelettes/contenu/source_fonctions_utilisateur.html -text
prive/squelettes/contenu/source_images.html -text
prive/squelettes/hierarchie/source_constantes.html -text
prive/squelettes/hierarchie/source_fonctions_completes.html -text
prive/squelettes/hierarchie/source_fonctions_utilisateur.html -text
prive/squelettes/hierarchie/source_images.html -text
prive/squelettes/inclure/fonction_complete_info_ligne.html -text
prive/squelettes/inclure/fonction_info_ligne.html -text
prive/squelettes/inclure/image_info_ligne.html -text
prive/squelettes/navigation/source_constantes.html -text
+67 −34
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -67,7 +67,7 @@ function lister_fonctions ($prefixe = null) {
    if ($prefixe) {
        // On pourrait faire aussi un contrôle avec array_key_exists()
        // Mais ça risque de fausser le résultat attendu.
        $resultat = $fonctions_user[$prefixe];
        $resultat = array($prefixe => $fonctions_user[$prefixe]);
    }

    return $resultat;
@@ -107,7 +107,7 @@ function lister_constantes ($prefixe = null) {
    if ($prefixe) {
        // On pourrait faire aussi un contrôle avec array_key_exists()
        // Mais ça risque de fausser le résultat attendu.
        $resultat = $constantes_user[$prefixe];
        $resultat = array($prefixe => $constantes_user[$prefixe]);
    }

    return $resultat;
@@ -151,7 +151,7 @@ function lister_images ($prefixe = null) {
    if ($prefixe) {
        // On pourrait faire aussi un contrôle avec array_key_exists()
        // Mais ça risque de fausser le résultat attendu.
        $resultat = $images[$prefixe];
        $resultat = array($prefixe => $images[$prefixe]);
    }

    return $resultat;
@@ -206,39 +206,68 @@ function fonction_fichier ($fonction = null) {
    return $filename;
}

/**
 * Lister les fichiers php dans un répertoire donné
 * ou, par défaut, dans tout le site.
 *
 * @param  string $dir
 *         Par défaut, le répertoire racine du site.
 * @return array
 *         Tableau contenant le chemin vers chaque fichier php.
 */
function lister_fichiers_php ($dir = _DIR_RACINE) {
    global $list;

    // Si $dir est vide, on va chercher le répertoire
    // dans lequel se trouve le script pour référence.
    if (empty($dir)) {
        # on recherche le script sur lequel on est
        $script = end(explode('/', $_SERVER['PHP_SELF']));
        # Et on l'enlève de l'url pour donner une bonne valeur à $dir
        $dir = preg_replace('/' . $script . '/', '', $_SERVER['SCRIPT_FILENAME']);
    }

    if (!empty($dir) and is_dir($dir)) {

        $ffs = scandir($dir);
        $exclu = preg_match('/(tmp|local)/', $dir);
        if (substr($dir, -1) !== '/') {
            $dir = $dir . '/';
        }
        foreach ($ffs as $ff) {
        if ($ff != '.' and $ff != '..' and $ff != '.svn' and $exclu == false) {
            if ($ff[0] != '.' and $exclu == false) {
                if (strlen($ff) >= 5) {
                    if (substr($ff, -4) == '.php') {
                    if (substr($dir, -1) == '/') {
                        $list[] = $dir . $ff;
                    } else {
                        $list[] = $dir . '/' . $ff;
                    }
                    //echo dirname($ff) . $ff . "<br/>";
                    }
                }
                if (is_dir($dir . $ff)) {
                    lister_fichiers_php($dir . $ff);
            } elseif (is_dir($dir . '/' . $ff)) {
                lister_fichiers_php($dir . '/' . $ff);
                }
            }
        }

    }
    return $list;
}

/**
 * Rechercher le nom de toutes les fonctions
 * dans le fichier php passé en paramètre.
 *
 * @param  string $fichier
 * @return array
 */
function lister_noms_fonctions ($fichier) {
    $liste_fonctions = array();

    if (is_file($fichier)) {
        $content = file_get_contents($fichier);
        preg_match_all("/(function)([\s|\t]+)(\w+)/", $content, $fonctions);
        foreach ($fonctions[3] as $fonction) {
            $liste_fonctions[] = array('fichier' => $fichier, 'fonction' => $fonction);
        }
    }
    return $liste_fonctions;
}

@@ -247,13 +276,16 @@ function lister_toutes_fonctions ($prefixe = null) {
    $fichiers_php = lister_fichiers_php();
    $fonctions_user = array();

    if (count($fichiers_php) > 0) {
        foreach ($fichiers_php as $fichier) {
            foreach (lister_noms_fonctions($fichier) as $value) {
                $fonctions_user[] = $value;
            }
        }
        natcasesort($fonctions_user);
    }

    if (count($fonctions_user) > 0) {
        foreach ($fonctions_user as $value) {
            if ($fonction = preg_split('/_/', $value['fonction'], -1, PREG_SPLIT_NO_EMPTY)) {
                $fonctions_user[$fonction[0]][] = $value;
@@ -263,13 +295,14 @@ function lister_toutes_fonctions ($prefixe = null) {
            }
        }
        ksort($fonctions_user);
    }

    $resultat = $fonctions_user;

    if ($prefixe) {
    if ($prefixe and count($fonctions_user) > 0) {
        // On pourrait faire aussi un contrôle avec array_key_exists()
        // Mais ça risque de fausser le résultat attendu.
        $resultat = $fonctions_user[$prefixe];
        $resultat = array($prefixe => $fonctions_user[$prefixe]);
    }

    return $resultat;

dev_json.html

0 → 100755
+2 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
#HTTP_HEADER{Content-Type: application/json; charset=#CHARSET}
[(#INCLURE{fond=json/[(#ENV{objets})],env})]
 No newline at end of file
+6 −3
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
<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>]

    [(#SET{prefixe,#ARRAY})]
<BOUCLE_prefixe (DATA) {source json, (#INCLURE{fond=dev_json,objets=source_fonctions_completes})}>
[(#SET{prefixe,[(#GET{prefixe}|push{#CLE})]})]
</BOUCLE_prefixe>
    <form action="#ENV{action}" method="post">
    [(#ACTION_FORMULAIRE{#ENV{action}})]
    [(#SELF|parametre_url{prefixe,''}|form_hidden)]
@@ -10,8 +13,8 @@
            <label for="champ_prefixe"><:fonction:label_prefixe_fonction:></label>
            <select name="prefixe" id="champ_prefixe">
            <option value=""><:fonction:tout_voir:></option>
            <BOUCLE_lister (DATA) {source table, (#REM|lister_toutes_fonctions|array_keys)} {par valeur}>
                <option value="#VALEUR" [(#ENV{prefixe}|=={#VALEUR}|oui)selected="selected"]>#VALEUR [((#VALEUR|lister_toutes_fonctions|count))]</option>
            <BOUCLE_lister (DATA) {source table, (#GET{prefixe})} {par valeur}>
                <option value="#VALEUR" [(#ENV{prefixe}|=={#VALEUR}|oui)selected="selected"]>#VALEUR</option>
            </BOUCLE_lister>
            </select>
        </li>
+1 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
[(#ENV{prefixe,''}|lister_toutes_fonctions|json_encode)]
 No newline at end of file
Chargement en cours