2024-09-06 20:28:06 +08:00

180 lines
6.1 KiB
PHP

<?php
/* Copyright (C) 2023 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
*
* 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 <https://www.gnu.org/licenses/>.
*/
/**
* \file htdocs/debugbar/class/DataCollector/DolibarrCollector.php
* \brief Class for debugbar collection
* \ingroup debugbar
*/
use DebugBar\DataCollector\AssetProvider;
use DebugBar\DataCollector\DataCollector;
use DebugBar\DataCollector\Renderable;
/**
* DolibarrCollector class
*/
class DolibarrCollector extends DataCollector implements Renderable, AssetProvider
{
/**
* Return collector name
*
* @return string Name
*/
public function getName()
{
return 'dolibarr';
}
/**
* Return collected data
*
* @return array Array of collected data
*/
public function collect()
{
return array();
}
/**
* Return database info as an HTML string
*
* @return string HTML string
*/
protected function getDatabaseInfo()
{
global $conf, $langs;
$info = $langs->trans('Host').': <strong>'.$conf->db->host.'</strong><br>';
$info .= $langs->trans('Port').': <strong>'.$conf->db->port.'</strong><br>';
$info .= $langs->trans('Name').': <strong>'.$conf->db->name.'</strong><br>';
// @phan-suppress-next-line PhanTypeSuspiciousStringExpression
$info .= $langs->trans('User').': <strong>'.$conf->db->user.'</strong><br>';
$info .= $langs->trans('Type').': <strong>'.$conf->db->type.'</strong><br>';
$info .= $langs->trans('Prefix').': <strong>'.$conf->db->prefix.'</strong><br>';
$info .= $langs->trans('Charset').': <strong>'.$conf->db->character_set.'</strong>';
return $info;
}
/**
* Return dolibarr info as an HTML string
*
* @return string HTML string
*/
protected function getDolibarrInfo()
{
global $conf, $langs;
global $dolibarr_main_prod, $dolibarr_nocsrfcheck;
$info = $langs->trans('Version').': <strong>'.DOL_VERSION.'</strong><br>';
$info .= $langs->trans('Theme').': <strong>'.$conf->theme.'</strong><br>';
$info .= $langs->trans('Locale').': <strong>' . getDolGlobalString('MAIN_LANG_DEFAULT').'</strong><br>';
$info .= $langs->trans('Currency').': <strong>'.$conf->currency.'</strong><br>';
$info .= $langs->trans('Entity').': <strong>'.$conf->entity.'</strong><br>';
$info .= $langs->trans('MaxSizeList').': <strong>'.($conf->liste_limit ?: getDolGlobalString('MAIN_SIZE_LISTE_LIMIT')).'</strong><br>';
$info .= $langs->trans('MaxSizeForUploadedFiles').': <strong>' . getDolGlobalString('MAIN_UPLOAD_DOC').'</strong><br>';
$info .= '$dolibarr_main_prod = <strong>'.$dolibarr_main_prod.'</strong><br>';
$info .= '$dolibarr_nocsrfcheck = <strong>'.$dolibarr_nocsrfcheck.'</strong><br>';
$info .= 'MAIN_SECURITY_CSRF_WITH_TOKEN = <strong>' . getDolGlobalString('MAIN_SECURITY_CSRF_WITH_TOKEN').'</strong><br>';
$info .= 'MAIN_FEATURES_LEVEL = <strong>' . getDolGlobalString('MAIN_FEATURES_LEVEL').'</strong><br>';
return $info;
}
/**
* Return mail info as an HTML string
*
* @return string HTML string
*/
protected function getMailInfo()
{
global $conf, $langs;
global $dolibarr_mailing_limit_sendbyweb, $dolibarr_mailing_limit_sendbycli, $dolibarr_mailing_limit_sendbyday;
$info = $langs->trans('Method').': <strong>'.getDolGlobalString("MAIN_MAIL_SENDMODE").'</strong><br>';
$info .= $langs->trans('Server').': <strong>'.getDolGlobalString("MAIN_MAIL_SMTP_SERVER").'</strong><br>';
$info .= $langs->trans('Port').': <strong>'.getDolGlobalString("MAIN_MAIL_SMTP_PORT").'</strong><br>';
$info .= $langs->trans('ID').': <strong>'.getDolGlobalString("MAIN_MAIL_SMTPS_IDT").'</strong><br>';
$info .= $langs->trans('Pwd').': <strong>'.preg_replace('/./', '*', getDolGlobalString("MAIN_MAIL_SMTPS_PW")).'</strong><br>';
$info .= $langs->trans('TLS/STARTTLS').': <strong>'.getDolGlobalString("MAIN_MAIL_EMAIL_TLS").'</strong> / <strong>'.getDolGlobalString("MAIN_MAIL_EMAIL_STARTTLS").'</strong><br>';
$info .= $langs->trans('MAIN_DISABLE_ALL_MAILS').': <strong>'.(!getDolGlobalString('MAIN_DISABLE_ALL_MAILS') ? $langs->trans('No') : $langs->trans('Yes')).'</strong><br>';
$info .= 'dolibarr_mailing_limit_sendbyweb = <strong>'.$dolibarr_mailing_limit_sendbyweb.'</strong><br>';
$info .= 'dolibarr_mailing_limit_sendbycli = <strong>'.$dolibarr_mailing_limit_sendbycli.'</strong><br>';
$info .= 'dolibarr_mailing_limit_sendbyday = <strong>'.$dolibarr_mailing_limit_sendbyday.'</strong><br>';
return $info;
}
/**
* Return widget settings
*
* @return array Array
*/
public function getWidgets()
{
return array(
"database_info" => array(
"icon" => "database",
"indicator" => "PhpDebugBar.DebugBar.TooltipIndicator",
"tooltip" => array(
"html" => $this->getDatabaseInfo(),
"class" => "tooltip-wide"
),
"map" => "",
"default" => ""
),
"dolibarr_info" => array(
"icon" => "desktop",
"indicator" => "PhpDebugBar.DebugBar.TooltipIndicator",
"tooltip" => array(
"html" => $this->getDolibarrInfo(),
"class" => "tooltip-wide"
),
"map" => "",
"default" => ""
),
"mail_info" => array(
"icon" => "envelope",
"indicator" => "PhpDebugBar.DebugBar.TooltipIndicator",
"tooltip" => array(
"html" => $this->getMailInfo(),
"class" => "tooltip-extra-wide"
),
"map" => "",
"default" => ""
)
);
}
/**
* Return collector assests
*
* @return array Array
*/
public function getAssets()
{
return array(
'base_url' => dol_buildpath('/debugbar', 1),
'js' => 'js/widgets.js',
'css' => 'css/widgets.css'
);
}
}