Les « var_mode » et « var_profile » s’utilisent en ajoutant soit ?var_mode=... (ex : -titre-de-rubrique-?var_mode=...), soit &var_mode=... (ex : spip.php?article3&var_mode=...) à l’url de la page appelée.
Leur utilisation n’est fonctionnelle que pour les administrateurs loggés.
var_mode=calcul et var_mode=recalcul
L’appel de « var_mode=calcul » regénère le code html (lance l’exécution du code déjà compilé) et rafraichit le cache (crée les fichiers html qui n’auront plus qu’à être lus lors des prochains appels de la page).
L’appel de « var_mode=recalcul » regénère le code php (effectue une nouvelle compilation du squelette), puis regénère le code html (lance l’exécution du code qui vient d’être compilé) enfin rafraichit le cache (crée les fichiers html qui n’auront plus qu’à être lus lors des prochains appels de la page).
le recalcul de la page regénère aussi les css et scripts javascript compressés.
le recalcul ne s’applique pas aux images (vignettes, images-typo, ...)
Ces deux appels peuvent être lancés par un clic sur l’un des boutons d’administration ;

un premier clic appelant « var_mode=calcul » (lorsque l’intitulé du bouton est accompagné d’une étoile, c’est que la page affichée est lue depuis le cache) ;

un second clic appelant « var_mode=recalcul ».
Attention : On pourrait être tenté d’utiliser&var_mode=recalculdans des liens de ses squelettes (pour forcer la mise à jour de css ou javascript par exemple). C’est une trés mauvaise pratique à éviter car consommatrice de ressources serveur (re-compilation du squelette).
var_mode=inclure
L’appel de « var_mode=inclure » affiche le nom et le chemin de chaque noisette (inclure ou modèle) qui compose la page.
Ceci permet de vérifier que les inclure réellement appelés par le squelette de la page sont bien ceux que l’on y a spécifiés.

var_profile=1
L’appel de « var_profile=1 » affiche le détail des requêtes sql et les temps de calcul de chacune. Les requêtes sont classées de la plus gourmande en temps d’exécution à la plus rapide.
Cette fonction est particulièrement utile pour comprendre ce qui peut rendre une page excessivement lente à s’afficher.
Elle permet de visualiser les requêtes sql générées par chaque boucle du squelette (y compris les squelettes inclus) ainsi que les requêtes hors boucle (notées « Hors Compilation ») générées par SPIP.

On peut y relever :
- pour chaque boucle
- le nombre de fois où la boucle (donc la requête sql) a été exécutée,
- le temps (en secondes) pris par la boucle (c’est à dire le temps de la requête correspondante multiplié par le nombre d’exécutions de la boucle),
- la liste (triée par ordre chronologique de toutes les requêtes générées par la page) de chaque exécution de la requête (qui sert de lien vers le détail de chaque requête).
- les requêtes hors boucle
- le temps total pris par l’ensemble des requêtes pour la page
- le détail de chaque requête effectuée avec
- un tableau statistique affichant l’explication de la requête,
- l’intitulé de la requête.
Attention : Penser à calculer la page (&var_profile=1&var_mode=calcul) pour éviter que ce ne soit le cache qui soit lu, faussant ainsi le résultat affiché.
var_mode=preview
L’appel de « var_mode=preview » depuis l’espace privé permet de visualiser dans l’espace public un article de statut « proposé à la publication » sans avoir besoin de le publier.

var_mode=urls
L’appel de « var_mode=urls » force la mise à jour de toutes les urls de la page.
var_mode=debug
L’appel de « var_mode=debug » détaille la génération d’une page (boucles spip - requêtes sql - code php - statistiques des requêtes sql).

- var_mode=debug
Cette page affiche pour le squelette principal ainsi que pour chacun des squelettes inclus
- la liste des valeurs des variables de contexte (#ENV) passées par le squelette appelant,
- la liste des boucles.
Les différents liens permettent d’accèder à :
- Squelette
le code texte du squelette (évite ainsi d’avoir accès au fichier .html pour en lire le contenu),- résultat
le code généré par ce squelette spécifiquement (hors inclusions éventuelles) qui, une fois évalué, retournera du html au navigateur, - code
le code php généré par le compilateur (analyse plutôt destinée aux développeurs avertis) qui, une fois exécuté, produira le résultat (voir ci-dessus), - calcul
le détail des requêtes sql et, pour chacune, les temps de calcul (voir ci-dessusvar_profile).
- résultat
- boucle
le code texte de la boucle complète (de<B_abc>à<//B_abc>),- résultat
la requête sql générée par la boucle étudiée,
une liste des premiers résultats retournés par cette requête [1], - code
le code php (généré par le compilateur) de la fonction spécifique associée à cette boucle (analyse plutôt destinée aux développeurs avertis), - calcul
le détail et les temps de calcul de la requête sql associée à cette boucle (voir ci-dessusvar_profile).
- résultat
Afficher le contenu d’une table
Un appel de l’url ?page=table:nom_de_la_table depuis l’espace public affichera sous forme de tableau le contenu de la table nommée.
par exemple : ?page=table:articles pour la table spip_articles.
La première ligne de ce tableau liste les champs de la table dans l’ordre alphabétique (attention : ne pas confondre « N° » et « id_... ») ; un clic sur l’un de ces champs ordonnant les résultats (ascendant/descendant).
La deuxième ligne permet d’effectuer une recherche sur une valeur spécifique d’un champ.
L’ensemble des données est affiché en mode paginé, par groupe de 10 résultats.
À noter : Cette fonction permettant d’afficher l’intégralité des données de toutes les tables de la base de données n’est utilisable que par un webmestre loggé.
Obtenir encore plus d’informations pour le debuggage
- Désactiver le cache de SPIP en ajoutant dans config/mes_options.php :
define('_NO_CACHE', 1);- Activer les rapports d’erreurs PHP en ajoutant dans config/mes_options.php :
error_reporting(E_ALL^E_NOTICE);
ini_set ("display_errors", "On");
define('SPIP_ERREUR_REPORT', E_ALL^E_NOTICE);
define('SPIP_ERREUR_REPORT_INCLUDE_PLUGINS', E_ALL^E_NOTICE);