* Copyright (C) 2005-2009 Regis Houssin * Copyright (C) 2007 Rodolphe Quiedeville * Copyright (C) 2013 Juanjo Menent * * 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 . */ /** * \file htdocs/admin/syslog.php * \ingroup syslog * \brief Setup page for logs module */ require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; if (!$user->admin) accessforbidden(); $langs->load("admin"); $langs->load("other"); $error=0; $action = GETPOST("action"); $syslogModules = array(); $activeModules = array(); if (defined('SYSLOG_HANDLERS')) $activeModules = json_decode(constant('SYSLOG_HANDLERS')); $dir = dol_buildpath('/core/modules/syslog/'); if (is_dir($dir)) { $handle = opendir($dir); if (is_resource($handle)) { $var=true; while (($file = readdir($handle))!==false) { if (substr($file, 0, 11) == 'mod_syslog_' && substr($file, dol_strlen($file)-3, 3) == 'php') { $file = substr($file, 0, dol_strlen($file)-4); require_once $dir.$file.'.php'; $module = new $file; // Show modules according to features level if ($module->getVersion() == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) continue; if ($module->getVersion() == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) continue; $syslogModules[] = $file; } } closedir($handle); } } /* * Actions */ // Set modes if ($action == 'set') { $db->begin(); $newActiveModules = array(); $selectedModules = (isset($_POST['SYSLOG_HANDLERS']) ? $_POST['SYSLOG_HANDLERS'] : array()); //var_dump($selectedModules); foreach ($syslogModules as $syslogHandler) { if (in_array($syslogHandler, $syslogModules)) { $module = new $syslogHandler; if (in_array($syslogHandler, $selectedModules)) $newActiveModules[] = $syslogHandler; foreach ($module->configure() as $option) { if (isset($_POST[$option['constant']])) { $_POST[$option['constant']] = trim($_POST[$option['constant']]); dolibarr_del_const($db, $option['constant'], 0); dolibarr_set_const($db, $option['constant'], $_POST[$option['constant']], 'chaine',0, '', 0); } } } } $activeModules = $newActiveModules; dolibarr_set_const($db, 'SYSLOG_HANDLERS', json_encode($activeModules), 'chaine',0,'',0); if (! $error) { $db->commit(); setEventMessage($langs->trans("SetupSaved")); } else { $db->rollback(); setEventMessage($langs->trans("Error"),'errors'); } } // Set level if ($action == 'setlevel') { $level = GETPOST("level"); $res = dolibarr_set_const($db,"SYSLOG_LEVEL",$level,'chaine',0,'',0); dol_syslog("admin/syslog: level ".$level); if (! $res > 0) $error++; if (! $error) { setEventMessage($langs->trans("SetupSaved")); } else { setEventMessage($langs->trans("Error"),'errors'); } } /* * View */ llxHeader(); $form=new Form($db); $linkback=''.$langs->trans("BackToModuleList").''; print_fiche_titre($langs->trans("SyslogSetup"),$linkback,'title_setup'); print '
'; $def = array(); $syslogfacility=$defaultsyslogfacility=dolibarr_get_const($db,"SYSLOG_FACILITY",0); $syslogfile=$defaultsyslogfile=dolibarr_get_const($db,"SYSLOG_FILE",0); if (! $defaultsyslogfacility) $defaultsyslogfacility='LOG_USER'; if (! $defaultsyslogfile) $defaultsyslogfile='dolibarr.log'; if ($conf->global->MAIN_MODULE_MULTICOMPANY && $user->entity) { print '
'.$langs->trans("ContactSuperAdminForChange").'
'; $option = 'disabled'; } //print "conf->global->MAIN_FEATURES_LEVEL = ".$conf->global->MAIN_FEATURES_LEVEL."

\n"; // Output mode print_titre($langs->trans("SyslogOutput")); // Mode print '
'; print ''; print ''; print ''; print ''; print ''; print ''; print "\n"; $var=true; foreach ($syslogModules as $moduleName) { $module = new $moduleName; $moduleactive=(int) $module->isActive(); //print $moduleName." = ".$moduleactive." - ".$module->getName()." ".($moduleactive == -1)."
\n"; if (($moduleactive == -1) && empty($conf->global->MAIN_FEATURES_LEVEL)) continue; // Some modules are hidden if not activable and not into debug mode (end user must not see them) $var=!$var; print ''; print ''; print ''; print ''; print "\n"; } print "
'.$langs->trans("Type").''.$langs->trans("Value").'
'; print ' '; print $module->getName(); print ''; $setuparray=$module->configure(); if ($setuparray) { foreach ($setuparray as $option) { if (isset($_POST[$option['constant']])) $value=$_POST[$option['constant']]; else if (defined($option['constant'])) $value = constant($option['constant']); else $value = (isset($option['default']) ? $option['default'] : ''); print $option['name'].': '; if (! empty($option['example'])) print '
'.$langs->trans("Example").': '.$option['example']; } } print '
'; if ($module->getInfo()) { print $form->textwithpicto('', $module->getInfo()); } print '
\n"; print "
\n"; print '
'."\n\n"; print_titre($langs->trans("SyslogLevel")); // Level print '
'; print ''; print ''; print ''; print ''; print ''; print ''; print "\n"; $var=true; $var=!$var; print ''; print ''; print '
'.$langs->trans("Parameter").''.$langs->trans("Value").'
'.$langs->trans("SyslogLevel").''; print '
'; print "
\n"; llxFooter(); $db->close();