Browse Source

- On passe en fait le préfixe en 'titre' sur toute la ligne. On libère 'une' colonne pour de l'information.

- Sur la page ?exec=fonctions, on donne le nom, le chemin et la ligne du fichier dans lequel est définie la fonction.
On détecte si la fonction provient d'un plugin aussi grâce à cela. Si c'est d'un plugin, alors on n'affiche pas le bouton d'aide vers le site code.spip.net pour éviter de mutliples erreurs 404 sur ce site…
- On ajoute une feuille de style pour le privé. Sympa l'astuce monplugin/prive/style_prive_plugin_monplugin.html !! Pas la pein de passer par header_prive pour afficher une css dans le back! Faut voir maintenant en terme de perf ce que ça donne. Qui est préférable ?
- Up de z.
svn/root/tags/plugins/dev/0.3.8 v0.3.8
teddy.spip@gmail.com 9 years ago
parent
commit
9bea24cd2f
  1. 1
      .gitattributes
  2. 23
      dev_fonctions.php
  3. 2
      lang/fonction_fr.php
  4. 2
      paquet.xml
  5. 9
      prive/squelettes/contenu/constantes.html
  6. 18
      prive/squelettes/contenu/fonctions.html
  7. 6
      prive/squelettes/contenu/images.html
  8. 11
      prive/squelettes/inclure/image_info_ligne.html
  9. 33
      prive/style_prive_plugin_dev.html

1
.gitattributes vendored

@ -48,3 +48,4 @@ prive/squelettes/top/charte_forms.html -text
prive/squelettes/top/charte_icones.html -text
prive/squelettes/top/charte_listes.html -text
prive/squelettes/top/charte_typo.html -text
prive/style_prive_plugin_dev.html -text

23
dev_fonctions.php

@ -183,4 +183,27 @@ function est_image ($fichier)
return $image;
}
/**
* Afficher le nom et le chemin du fichier dans lequel
* est défini la fonction passée en paramètre.
*
* @param null|string $fonction
* @return void|string
*/
function fonction_fichier ($fonction = null) {
if ($fonction == null) {
return;
}
// On prépare le pattern pour ne pas avoir le chemin depuis les méandres du serveur d'hébergement.
$pattern_root = "/^" . preg_replace('/\//', '\/', $_SERVER['DOCUMENT_ROOT']) . "/";
// API offerte par PHP 5.
$refFonction = new ReflectionFunction($fonction);
// On enlève le chemin 'root' pour ne garder que le chemin à la "racine" de notre site.
$filename = preg_replace($pattern_root, '', $refFonction->getFileName()) . '#L' . $refFonction->getEndLine();
return $filename;
}
?>

2
lang/fonction_fr.php

@ -12,6 +12,8 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
// I
'info_constante' => 'Constante',
'info_core_spip' => 'Core de SPIP',
'info_filename' => 'Fichier d\'origine',
'info_fonction' => 'Fonction',
'info_nom' => 'Nom',
'info_prefixe' => 'Préfixe',

2
paquet.xml

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

9
prive/squelettes/contenu/constantes.html

@ -13,7 +13,6 @@
[<caption>[(#ENV{prefixe,''})&nbsp;: ](#GRAND_TOTAL|singulier_ou_pluriel{fonction:une_constante,fonction:des_constantes})</caption>]
<thead>
<tr class="first_row">
<th class="prefixe secondaire"><:fonction:info_prefixe:></th>
<th class="constante principale"><:fonction:info_constante:></th>
<th class="valeur secondaire"><:fonction:info_valeur:></th>
</tr>
@ -21,15 +20,19 @@
<tbody>
<BOUCLE_constantes (DATA) {source table, (#ENV{prefixe,''}|lister_constantes)}>
<BOUCLE_prefixe (DATA) {source table, #VALEUR} {si #VALEUR|is_array}>
[<tr class="prefixe">
<td colspan="2"><h3>(#_constantes:CLE|unique)</h3></td>
</tr>]
<tr class="[(#COMPTEUR_BOUCLE|alterner{'row_odd','row_even'})]">
<td class="prefixe secondaire">[<strong>(#_constantes:CLE|unique)</strong>]</td>
<td class="constante principale">#CLE</td>
<td class="valeur secondaire">[(#VALEUR|print_r{1})]</td>
</tr>
</BOUCLE_prefixe>
</B_prefixe>
[<tr class="prefixe">
<td colspan="2"><h3>(#ENV{prefixe,''}|unique)</h3></td>
</tr>]
<tr class="[(#COMPTEUR_BOUCLE|alterner{'row_odd','row_even'})]">
<td class="prefixe secondaire">[<strong>(#ENV{prefixe,''}|unique)</strong>]</td>
<td class="constante principale">#CLE</td>
<td class="valeur secondaire">[(#VALEUR|print_r{1})]</td>
</tr>

18
prive/squelettes/contenu/fonctions.html

@ -14,24 +14,30 @@
[<caption>[(#ENV{prefixe,''})&nbsp;: ](#GRAND_TOTAL|singulier_ou_pluriel{fonction:une_fonction,fonction:des_fonctions})</caption>]
<thead>
<tr class="first_row">
<th class="prefixe secondaire"><:fonction:info_prefixe:></th>
<th class="fonction principale"><:fonction:info_fonction:></th>
<th class="filename secondaire"><:fonction:info_filename:></th>
<th class="surcharge secondaire"><:fonction:info_surchargeable:></th>
</tr>
</thead>
<tbody>
<BOUCLE_fonctions (DATA) {source table, (#ENV{prefixe,''}|lister_fonctions)}>
<BOUCLE_prefixe (DATA) {source table, #VALEUR} {si #VALEUR|is_array}>
<tr class="[(#COMPTEUR_BOUCLE|alterner{'row_odd','row_even'})]">
<td class="prefixe secondaire">[<strong>(#_fonctions:CLE|unique)</strong>]</td>
<td class="fonction principale">[(#VALEUR|replace{'_','_<wbr/>'})] <a href="http://code.spip.net/@#VALEUR" target="_blank" class="aide">[(#CHEMIN_IMAGE{aide-16.png}|balise_img|inserer_attribut{title,<:titre_image_aide:>})]</a></td>
[<tr class="prefixe">
<td colspan="3"><h3>(#_fonctions:CLE|unique)</h3></td>
</tr>]
<tr class="[(#COMPTEUR_BOUCLE|alterner{'row_even','row_odd'})]">
<td class="fonction principale">[(#VALEUR|replace{'_','_<wbr/>'})] [(#VALEUR|fonction_fichier|match{'/plugins/'}|non)<a href="http://code.spip.net/@#VALEUR" target="_blank" class="aide">[(#CHEMIN_IMAGE{aide-16.png}|balise_img|inserer_attribut{title,<:titre_image_aide:>})]</a>]</td>
<td class="filename secondaire">[(#VALEUR|fonction_fichier|replace{(/|_),$1<wbr/>})]</td>
<td class="surcharge secondaire">[(#VALEUR|match{(_dist)$}|?{[(#GET{icone_ok})],[(#GET{icone_ko})]})]</td>
</tr>
</BOUCLE_prefixe>
</B_prefixe>
[<tr class="prefixe">
<td colspan="3"><h3>(#ENV{prefixe,''}|unique)</h3></td>
</tr>]
<tr class="[(#COMPTEUR_BOUCLE|alterner{'row_odd','row_even'})]">
<td class="prefixe secondaire">[<strong>(#ENV{prefixe,''}|unique)</strong>]</td>
<td class="fonction principale">[(#VALEUR|replace{'_','_<wbr/>'})] <a href="http://code.spip.net/@#VALEUR" target="_blank" class="aide">[(#CHEMIN_IMAGE{aide-16.png}|balise_img|inserer_attribut{title,<:titre_image_aide:>})]</a></td>
<td class="fonction principale">[(#VALEUR|replace{'_','_<wbr/>'})] [(#VALEUR|fonction_fichier|match{'/plugins/'}|non)<a href="http://code.spip.net/@#VALEUR" target="_blank" class="aide">[(#CHEMIN_IMAGE{aide-16.png}|balise_img|inserer_attribut{title,<:titre_image_aide:>})]</a>]</td>
<td class="filename secondaire">[(#VALEUR|fonction_fichier|replace{(/|_),$1<wbr/>})]</td>
<td class="surcharge secondaire">[(#VALEUR|match{(_dist)$}|?{[(#GET{icone_ok})],[(#GET{icone_ko})]})]</td>
</tr>
<//B_prefixe>

6
prive/squelettes/contenu/images.html

@ -13,19 +13,19 @@
[<caption>[(#ENV{prefixe,''})&nbsp;: ](#GRAND_TOTAL|singulier_ou_pluriel{fonction:une_image,fonction:des_images})</caption>]
<thead>
<tr class="first_row">
<th class="prefixe secondaire"><:fonction:info_prefixe:></th>
<th class="nom principale"><:fonction:info_nom:></th>
<th class="exif secondaire"><:fonction:info_technique:></th>
<th class="core secondaire"><:fonction:info_core_spip:></th>
</tr>
</thead>
<tbody>
<BOUCLE_images (DATA) {source table, (#ENV{prefixe,''}|lister_images)}>
<B_prefixe>
<BOUCLE_prefixe (DATA) {source table, #VALEUR} {si #VALEUR|is_array}>
#INCLURE{fond=prive/squelettes/inclure/image_info_ligne,image=#VALEUR,class=(#COMPTEUR_BOUCLE|alterner{'row_odd','row_even'}),prefixe=#_images:CLE,env}
#INCLURE{fond=prive/squelettes/inclure/image_info_ligne,image=#VALEUR,class=(#COMPTEUR_BOUCLE|alterner{'row_odd','row_even'}),prefixe=(#_images:CLE|unique),env}
</BOUCLE_prefixe>
</B_prefixe>
#INCLURE{fond=prive/squelettes/inclure/image_info_ligne,image=#VALEUR,class=(#COMPTEUR_BOUCLE|alterner{'row_odd','row_even'}),prefixe=#ENV{prefixe,''},env}
#INCLURE{fond=prive/squelettes/inclure/image_info_ligne,image=#VALEUR,class=(#COMPTEUR_BOUCLE|alterner{'row_odd','row_even'}),prefixe=(#ENV{prefixe,''}|unique),env}
<//B_prefixe>
</BOUCLE_images>
</tbody>

11
prive/squelettes/inclure/image_info_ligne.html

@ -1,8 +1,10 @@
[(#SET{pathinfo,[(#ENV{image}|pathinfo)]})]
[(#SET{icone_ok,[(#CHEMIN_IMAGE{ok-16.png}|balise_img)]})]
[(#SET{icone_ko,[(#CHEMIN_IMAGE{supprimer-8.png}|balise_img)]})]
[<tr class="prefixe">
<td colspan="3"><h3>(#ENV{prefixe})</h3></td>
</tr>]
<tr class="[(#ENV{class})]">
<td class="prefixe secondaire">
[<strong>(#ENV{prefixe}|unique)</strong>]
</td>
<td class="nom principale">
[<a href="#ENV{image}"[ title="(#ENV{image}|attribut_html)"] class="mediabox">(#ENV{image}|balise_img|image_reduire{125,100}|inserer_attribut{alt,[(#ENV{image}|basename|attribut_html)]})
[<br/><em>(#ENV{image}|basename)</em>]
@ -13,4 +15,7 @@
<div class="dimensions">[(#ENV{image}|largeur)] x [(#ENV{image}|hauteur)] px </div>
[<div class="taille">(#ENV{image}|filesize|taille_en_octets)</div>]
</td>
<td class="core secondaire">
[(#ENV{image}|match{'/plugins/'}|?{#GET{icone_ko},#GET{icone_ok}})]
</td>
</tr>

33
prive/style_prive_plugin_dev.html

@ -0,0 +1,33 @@
[(#REM)
Ce squelette definit les styles de l'espace prive
Note: l'entete "Vary:" sert a repousser l'entete par
defaut "Vary: Cookie,Accept-Encoding", qui est (un peu)
genant en cas de "rotation du cookie de session" apres
un changement d'IP (effet de clignotement).
ATTENTION: il faut absolument le charset sinon Firefox croit que
c'est du text/html !
<style>
]
#CACHE{3600*100,cache-client}
#HTTP_HEADER{Content-Type: text/css; charset=iso-8859-15}
#HTTP_HEADER{Vary: Accept-Encoding}
#SET{claire,##ENV{couleur_claire,edf3fe}}
#SET{foncee,##ENV{couleur_foncee,3874b0}}
#SET{left,#ENV{ltr}|choixsiegal{left,left,right}}
#SET{right,#ENV{ltr}|choixsiegal{left,right,left}}
body.fonctions #contenu .liste-objets table tbody tr.prefixe,
body.images #contenu .galerie.medias table tbody tr.prefixe,
body.constantes #contenu .liste-objets table tbody tr.prefixe {
background-color: [#(#ENV{couleur_claire,edf3fe}|couleur_eclaircir)];
}
body.fonctions #contenu .liste-objets table tbody tr.prefixe h3,
body.images #contenu .galerie.medias table tbody tr.prefixe h3,
body.constantes #contenu .liste-objets table tbody tr.prefixe h3 {
margin-bottom: 0;
text-align: center;
}
Loading…
Cancel
Save