From fc91e553ad98e8316936f6356bcbbff8a278edbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Doursenaud?= <rdoursenaud@gpcsolutions.fr> Date: Fri, 11 Sep 2015 17:37:58 +0200 Subject: [PATCH] Setup FirePHP like ChromePHP --- COPYRIGHT | 1 + composer.json | 3 +- composer.lock | 38 +++++++- .../modules/syslog/mod_syslog_firephp.php | 95 +++++++++++-------- 4 files changed, 97 insertions(+), 40 deletions(-) diff --git a/COPYRIGHT b/COPYRIGHT index c38873a2f07..534770f0f75 100644 --- a/COPYRIGHT +++ b/COPYRIGHT @@ -16,6 +16,7 @@ AdoDb-Date 0.33 Modified BSD License Yes ChromePHP 4.1.0 Apache Software License 2.0 Yes Return server log to chrome browser console CKEditor 4.3.3 LGPL-2.1+ Yes Editor WYSIWYG EvalMath 1.0 BSD Yes Safe math expressions evaluation +FirePHPCore 0.4.0 MIT License Yes Send logs to Firefox Firebug console FPDI 1.5.2 Apache Software License 2.0 Yes PDF templates management GeoIP 1.4 LGPL-2.1+ Yes Sample code to make geoip convert (not into deb package) Mobiledetect 2.8.3 MIT License Yes Detect mobile devices browsers diff --git a/composer.json b/composer.json index cddc166bb42..80e55b6a221 100644 --- a/composer.json +++ b/composer.json @@ -21,7 +21,8 @@ "phpoffice/phpexcel": "1.8.0", "restler/framework": "^3.0", "tecnick.com/tcpdf": "6.2.6", - "raven/raven": "^0.12.0" + "raven/raven": "^0.12.0", + "firephp/firephp-core": "^0.4.0" }, "suggest": { "ext-mysqlnd": "To use with MySQL or MariaDB", diff --git a/composer.lock b/composer.lock index 81c767d5e9b..f178ec4f419 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "2ab34d0ff69b48500c20621330c1bfd7", + "hash": "f441e6348ae7862942693cab10810418", "packages": [ { "name": "ccampbell/chromephp", @@ -90,6 +90,42 @@ ], "time": "2014-02-26 15:34:37" }, + { + "name": "firephp/firephp-core", + "version": "v0.4.0", + "source": { + "type": "git", + "url": "https://github.com/firephp/firephp-core.git", + "reference": "fabad0f2503f9577fe8dd2cb1d1c7cd73ed2aacf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/firephp/firephp-core/zipball/fabad0f2503f9577fe8dd2cb1d1c7cd73ed2aacf", + "reference": "fabad0f2503f9577fe8dd2cb1d1c7cd73ed2aacf", + "shasum": "" + }, + "type": "library", + "autoload": { + "classmap": [ + "lib/FirePHPCore/FirePHP.class.php", + "lib/FirePHPCore/fb.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christoph Dorn", + "email": "christoph@christophdorn.com", + "homepage": "http://christophdorn.com" + } + ], + "description": "Traditional FirePHPCore library for sending PHP variables to the browser.", + "homepage": "https://github.com/firephp/firephp-core", + "time": "2013-04-23 15:28:20" + }, { "name": "mobiledetect/mobiledetectlib", "version": "2.8.3", diff --git a/htdocs/core/modules/syslog/mod_syslog_firephp.php b/htdocs/core/modules/syslog/mod_syslog_firephp.php index 08c0b91efc6..fa6111c80a3 100644 --- a/htdocs/core/modules/syslog/mod_syslog_firephp.php +++ b/htdocs/core/modules/syslog/mod_syslog_firephp.php @@ -1,4 +1,20 @@ <?php +/* Copyright (C) 2012 Laurent Destailleur <eldy@users.sourceforge.net> + * Copyright (C) 2015 Raphaƫl Doursenaud <rdoursenaud@gpcsolutions.fr> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ require_once DOL_DOCUMENT_ROOT.'/core/modules/syslog/logHandler.php'; @@ -7,7 +23,9 @@ require_once DOL_DOCUMENT_ROOT.'/core/modules/syslog/logHandler.php'; */ class mod_syslog_firephp extends LogHandler implements LogHandlerInterface { - var $code = 'firephp'; + public $code = 'firephp'; + private static $firephp_include_path = '/includes/firephp/firephp-core/lib/'; + private static $firephp_class_path = 'FirePHPCore/FirePHP.class.php'; /** * Return name of logger @@ -38,7 +56,7 @@ class mod_syslog_firephp extends LogHandler implements LogHandlerInterface { global $langs; - return $this->isActive()?'':$langs->trans('ClassNotFoundIntoPathWarning','FirePHPCore/FirePHP.class.php'); + return $this->isActive()?'':$langs->trans('ClassNotFoundIntoPathWarning', self::$firephp_class_path); } /** @@ -48,42 +66,48 @@ class mod_syslog_firephp extends LogHandler implements LogHandlerInterface */ public function isActive() { + global $conf; try { - set_include_path('/usr/share/php/'); - $res = @include_once 'FirePHPCore/FirePHP.class.php'; - restore_include_path(); - if ($res) - { - return 1; - } + if (empty($conf->global->SYSLOG_FIREPHP_INCLUDEPATH)) { + $conf->global->SYSLOG_FIREPHP_INCLUDEPATH = DOL_DOCUMENT_ROOT . self::$firephp_include_path; + } + set_include_path($conf->global->SYSLOG_FIREPHP_INCLUDEPATH); + $res = @include_once self::$firephp_class_path; + restore_include_path(); + if ($res) { + return 1; + } else { + return 0; + } } catch(Exception $e) { - print '<!-- FirePHP not available into PHP -->'."\n"; + print '<!-- FirePHP not available into PHP -->'."\n"; } return -1; } - ///** - // * Return array of configuration data - // * - // * @return array Return array of configuration data - // */ - // public function configure() - // { - // global $langs; - - // return array( - // array( - // 'name' => $langs->trans('IncludePath'), - // 'constant' => 'SYSLOG_FIREPHP_INCLUDEPATH', - // 'default' => '/usr/share/php', - // 'attr' => 'size="40"' - // ) - // ); - // } + /** + * Return array of configuration data + * + * @return array Return array of configuration data + */ + public function configure() + { + global $langs; + + return array( + array( + 'name' => $langs->trans('IncludePath', 'SYSLOG_FIREPHP_INCLUDEPATH'), + 'constant' => 'SYSLOG_FIREPHP_INCLUDEPATH', + 'default' => DOL_DOCUMENT_ROOT . self::$firephp_include_path, + 'attr' => 'size="60"', + 'example' => '/usr/share/php, ' . DOL_DOCUMENT_ROOT . self::$firephp_include_path + ) + ); + } /** * Return if configuration is valid @@ -92,20 +116,15 @@ class mod_syslog_firephp extends LogHandler implements LogHandlerInterface */ public function checkConfiguration() { - global $langs; + global $conf, $langs; $errors = array(); - $oldinclude = get_include_path(); - set_include_path('/usr/share/php/'); - - if (!file_exists('FirePHPCore/FirePHP.class.php')) + if (!file_exists($conf->global->SYSLOG_FIREPHP_INCLUDEPATH . self::$firephp_class_path)) { - $errors[] = $langs->trans("ErrorFailedToOpenFile", 'FirePhp.php'); + $errors[] = $langs->trans("ErrorFailedToOpenFile", self::$firephp_class_path); } - set_include_path($oldinclude); - return $errors; } @@ -129,8 +148,8 @@ class mod_syslog_firephp extends LogHandler implements LogHandlerInterface // Warning FirePHPCore must be into PHP include path. It is not possible to use into require_once() a constant from // database or config file because we must be able to log data before database or config file read. $oldinclude=get_include_path(); - set_include_path('/usr/share/php/'); - include_once 'FirePHPCore/FirePHP.class.php'; + set_include_path($conf->global->SYSLOG_FIREPHP_INCLUDEPATH); + include_once self::$firephp_class_path; set_include_path($oldinclude); ob_start(); // To be sure headers are not flushed until all page is completely processed $firephp = FirePHP::getInstance(true); -- GitLab