* Copyright (C) 2005-2009 Regis Houssin * Copyright (C) 2007 Rodolphe Quiedeville * * 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 2 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; $mesg=''; $action = GETPOST("action"); $syslog_file_on=(defined('SYSLOG_FILE_ON') && constant('SYSLOG_FILE_ON'))?1:0; $syslog_syslog_on=(defined('SYSLOG_SYSLOG_ON') && constant('SYSLOG_SYSLOG_ON'))?1:0; $syslog_firephp_on=(defined('SYSLOG_FIREPHP_ON') && constant('SYSLOG_FIREPHP_ON'))?1:0; /* * Actions */ // Set modes if ($action == 'set') { $db->begin(); $res = dolibarr_del_const($db,"SYSLOG_FILE_ON",0); $res = dolibarr_del_const($db,"SYSLOG_SYSLOG_ON",0); $res = dolibarr_del_const($db,"SYSLOG_FIREPHP_ON",0); $syslog_file_on=0; $syslog_syslog_on=0; $syslog_firephp_on=0; if (! $error && GETPOST("filename")) { $filename=GETPOST("filename"); $filelog=GETPOST("filename"); $filelog=preg_replace('/DOL_DATA_ROOT/i',DOL_DATA_ROOT,$filelog); $file=@fopen($filelog,"a+"); if ($file) { fclose($file); dol_syslog("admin/syslog: file ".$filename); $res = dolibarr_set_const($db,"SYSLOG_FILE",$filename,'chaine',0,'',0); if (! $res > 0) $error++; $syslog_file_on=GETPOST('SYSLOG_FILE_ON'); if (! $error) $res = dolibarr_set_const($db,"SYSLOG_FILE_ON",$syslog_file_on,'chaine',0,'',0); } else { $error++; $mesg = "".$langs->trans("ErrorFailedToOpenFile",$filename).""; } } if (! $error && GETPOST("facility")) { $facility=GETPOST("facility"); if (defined($_POST["facility"])) { // Only LOG_USER supported on Windows if (! empty($_SERVER["WINDIR"])) $facility='LOG_USER'; dol_syslog("admin/syslog: facility ".$facility); $res = dolibarr_set_const($db,"SYSLOG_FACILITY",$facility,'chaine',0,'',0); if (! $res > 0) $error++; $syslog_syslog_on=GETPOST('SYSLOG_SYSLOG_ON'); if (! $error) $res = dolibarr_set_const($db,"SYSLOG_SYSLOG_ON",$syslog_syslog_on,'chaine',0,'',0); } else { $error++; $mesg = "".$langs->trans("ErrorUnknownSyslogConstant",$facility).""; } } if (! $error && isset($_POST['SYSLOG_FIREPHP_ON'])) // If firephp no available, post is not present { $syslog_firephp_on=GETPOST('SYSLOG_FIREPHP_ON'); if (! $error) $res = dolibarr_set_const($db,"SYSLOG_FIREPHP_ON",$syslog_firephp_on,'chaine',0,'',0); } if (! $error) { $db->commit(); $mesg = "".$langs->trans("SetupSaved").""; } else { $db->rollback(); if (empty($mesg)) $mesg = "".$langs->trans("Error").""; } } // 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) { $mesg = "".$langs->trans("SetupSaved").""; } else { $mesg = "".$langs->trans("Error").""; } } /* * View */ llxHeader(); $form=new Form($db); $linkback=''.$langs->trans("BackToModuleList").''; print_fiche_titre($langs->trans("SyslogSetup"),$linkback,'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="disabled"'; } // Output mode print_titre($langs->trans("SyslogOutput")); // Mode print '
'; print ''; print ''; print ''; print ''; print ''; print ''; print "\n"; $var=true; $var=!$var; print ''; print ''; print "'; $var=!$var; print ''; print ''; print "'; try { set_include_path('/usr/share/php/'); $res=@include_once('FirePHPCore/FirePHP.class.php'); restore_include_path(); if ($res) { $var=!$var; print ''; print ''; print "'; } } catch(Exception $e) { // Do nothing print ''."\n"; } print "
'.$langs->trans("Type").''.$langs->trans("Value").'
'.$langs->trans("SyslogSimpleFile").''.$langs->trans("SyslogFilename").': '; print '".$form->textwithpicto('',$langs->trans("YouCanUseDOL_DATA_ROOT")); print '
'.$langs->trans("SyslogSyslog").''.$langs->trans("SyslogFacility").': '; print '".$form->textwithpicto('', $langs->trans('OnlyWindowsLOG_USER')); print '
'.$langs->trans("FirePHP").''; print '".$form->textwithpicto('','FirePHP must be installed onto PHP and FirePHP plugin for Firefox must also be installed'); print '
\n"; print "
\n"; print '
'; 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"; dol_htmloutput_mesg($mesg); llxFooter(); $db->close(); ?>