====== FirePHP ======
Pour utiliser firephp (cf http://www.firephp.org/Wiki/Libraries/Drupal) avec drupal, il faut, en plus du module devel
cd $path_qui_va_bien/modules/devel
mkdir FirePHPCore
cd FirePHPCore
# aller voir la dernière version sur http://www.firephp.org/HQ/FinalRelease.htm
wget http://www.firephp.org/DownloadRelease/FirePHPLibrary-FirePHPCore-0.3.2 -O FirePHPLibrary-FirePHPCore-0.3.2.zip
unzip FirePHPLibrary-FirePHPCore-0.3.2.zip
ln -s FirePHPCore-0.3.2/lib
===== Drupal for firebug =====
Une autre option (que devel/firephp) consiste à installer le module http://drupal.org/project/drupalforfirebug et l'extension firefox qui va avec https://addons.mozilla.org/en-US/firefox/addon/drupal-for-firebug/
**Attention** au 25/02/2011, ce module casse les flux rss (pour ceux qui ont les droits, pas pour le user lambda à priori) car il insère un gros
dans le code source.
===== Utilisation =====
Dans les 2 cas, il faut activer les permissions pour utiliser ces sorties.
Et ensuite, dans le code php, on peut se créer des fonctions comme
/**
* Wrapper to get the output of var_dump in a string
*
* @param any $var
* @return string The var dump
*/
function edulibre_var_dump($var) {
ob_start();
// var_export($var); // "Nesting level too deep" could be fired
var_dump($var);
$out = ob_get_contents();
ob_end_clean();
return str_replace("=>\n", '=> ', $out); // to compact a little bit output
}
/**
* Dump a var either on firebug (with firephp or drupal for firebug) or screen
* @param any $var
* @param string $title Optional, title of the dump
* @param string $output Optional firephp|dru4fb|fb
* firephp : if possible, dump to FirePHP (fallback to screen)
* dru4fb : if possible, dump to drupal for firebug (fallback to screen)
* fb : try firephp then drupal for firebug
* else, it will try with a krumo dump, and last a var dump (both in a message on top of the page)
*/
function edulibre_print_dump($var, $title='', $output='fb') {
static $i = 0;
$i++;
if ($i > MAXDUMPS) {
$var = t('Max dumps reached') .' (' .MAXDUMPS .')';
}
if (($output == 'fb' || $output == 'firephp') && function_exists('dfb')) {
dfb($var, $title, FirePHP::DUMP);
return TRUE;
}
if (($output == 'fb' || $output == 'dru4fb') && function_exists('firep')) {
firep($var, $title);
return TRUE;
}
// else, we try krumo
if (function_exists('has_krumo') && has_krumo()) {
drupal_set_message('Starting dumping ('
.$title .')
' .krumo_ob($var) ."\nEnd of dump ($title)
", 'warning');
return TRUE;
}
// else a simple drupal_set_message
else {
drupal_set_message(edulibre_var_dump($var));
}
}