Merge branch 'beta' into devel

This commit is contained in:
Andre Lorbach 2009-03-26 10:49:38 +01:00
commit 4af4bface5
21 changed files with 1069 additions and 86 deletions

View File

@ -1,4 +1,14 @@
---------------------------------------------------------------------------
Version 2.7.0 (beta), 2009-03-26
- Added support for dynamic filenames in disk logstream by using
replacement characters. See the doc for details.
- Added support for using REGEXP on supported logstream sources. Currently
MYSQL and PostGRESQL are supported due the native support of REGEXP. To
use REGEXP in searches, prepend the search phrase with the ~ character.
- Added support for configuring and administrating custom database
mappings in the Admin Center. This makes it easier to
support custom table layouts.
---------------------------------------------------------------------------
Version 2.6.2 (v2-stable), 2009-03-24
- Fixed minor spelling errors in language files (BugID #115)
- Fixed number of records exported when using the export (BugID #110).

598
src/admin/dbmappings.php Normal file
View File

@ -0,0 +1,598 @@
<?php
/*
*********************************************************************
* phpLogCon - http://www.phplogcon.org
* -----------------------------------------------------------------
* DBMapping Admin File
*
* -> Helps administrating custom database mappings
*
* All directives are explained within this file
*
* Copyright (C) 2008 Adiscon GmbH.
*
* This file is part of phpLogCon.
*
* PhpLogCon 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.
*
* PhpLogCon 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 phpLogCon. If not, see <http://www.gnu.org/licenses/>.
*
* A copy of the GPL can be found in the file "COPYING" in this
* distribution
*********************************************************************
*/
// *** Default includes and procedures *** //
define('IN_PHPLOGCON', true);
$gl_root_path = './../';
// Now include necessary include files!
include($gl_root_path . 'include/functions_common.php');
include($gl_root_path . 'include/functions_frontendhelpers.php');
include($gl_root_path . 'include/functions_filters.php');
// Set PAGE to be ADMINPAGE!
define('IS_ADMINPAGE', true);
$content['IS_ADMINPAGE'] = true;
InitPhpLogCon();
InitSourceConfigs();
InitFrontEndDefaults(); // Only in WebFrontEnd
InitFilterHelpers(); // Helpers for frontend filtering!
// Init admin langauge file now!
IncludeLanguageFile( $gl_root_path . '/lang/' . $LANG . '/admin.php' );
// ---
// --- BEGIN Custom Code
// Only if the user is an admin!
if ( !isset($_SESSION['SESSION_ISADMIN']) || $_SESSION['SESSION_ISADMIN'] == 0 )
DieWithFriendlyErrorMsg( $content['LN_ADMIN_ERROR_NOTALLOWED'] );
// Init helper variable to empty string
$content['FormUrlAddOP'] = "";
if ( isset($_GET['op']) )
{
if ($_GET['op'] == "add")
{
// Set Mode to add
$content['ISEDITORNEWDBMP'] = "true";
$content['DBMP_FORMACTION'] = "addnewdbmp";
$content['DBMP_SENDBUTTON'] = $content['LN_DBMP_ADD'];
//PreInit these values
$content['DisplayName'] = "";
$content['DBMPID'] = "";
$content['FormUrlAddOP'] = "?op=add";
}
else if ($_GET['op'] == "edit")
{
// Set Mode to edit
$content['ISEDITORNEWDBMP'] = "true";
$content['DBMP_FORMACTION'] = "editdbmp";
$content['DBMP_SENDBUTTON'] = $content['LN_DBMP_EDIT'];
// Copy Views array for further modifications
$content['DBMP'] = $dbmapping;
// View must be loaded as well already!
if ( isset($_GET['id']) && isset($content['DBMP'][$_GET['id']]) )
{
//PreInit these values
$content['DBMPID'] = DB_RemoveBadChars($_GET['id']);
if ( isset($content['DBMP'][ $content['DBMPID'] ]) )
{
//Set the FormAdd URL
$content['FormUrlAddOP'] = "?op=edit&id=" . $content['DBMPID'];
$mymapping = $content['DBMP'][ $content['DBMPID'] ];
$content['DisplayName'] = $mymapping['DisplayName'] ;
$content['SUBMAPPINGS'] = $mymapping['DBMAPPINGS'];
}
else
{
$content['ISEDITORNEWDBMP'] = false;
$content['ISERROR'] = true;
$content['ERROR_MSG'] = GetAndReplaceLangStr( $content['LN_DBMP_ERROR_IDNOTFOUND'], $content['DBMPID'] );
}
}
else
{
$content['ISEDITORNEWDBMP'] = false;
$content['ISERROR'] = true;
$content['ERROR_MSG'] = GetAndReplaceLangStr( $content['LN_DBMP_ERROR_INVALIDID'], isset($_GET['id']) ? $_GET['id'] : "<unknown>" );
}
}
else if ($_GET['op'] == "delete")
{
if ( isset($_GET['id']) )
{
//PreInit these values
$content['DBMPID'] = DB_RemoveBadChars($_GET['id']);
// Get UserInfo
$result = DB_Query("SELECT DisplayName FROM " . DB_MAPPINGS . " WHERE ID = " . $content['DBMPID'] );
$myrow = DB_GetSingleRow($result, true);
if ( !isset($myrow['DisplayName']) )
{
$content['ISERROR'] = true;
$content['ERROR_MSG'] = GetAndReplaceLangStr( $content['LN_DBMP_ERROR_IDNOTFOUND'], $content['DBMPID'] );
}
// --- Ask for deletion first!
if ( (!isset($_GET['verify']) || $_GET['verify'] != "yes") )
{
// This will print an additional secure check which the user needs to confirm and exit the script execution.
PrintSecureUserCheck( GetAndReplaceLangStr( $content['LN_DBMP_WARNDELETEMAPPING'], $myrow['DisplayName'] ), $content['LN_DELETEYES'], $content['LN_DELETENO'] );
}
// ---
// do the delete!
$result = DB_Query( "DELETE FROM " . DB_MAPPINGS . " WHERE ID = " . $content['DBMPID'] );
if ($result == FALSE)
{
$content['ISERROR'] = true;
$content['ERROR_MSG'] = GetAndReplaceLangStr( $content['LN_DBMP_ERROR_DELSEARCH'], $content['DBMPID'] );
}
else
DB_FreeQuery($result);
// Do the final redirect
RedirectResult( GetAndReplaceLangStr( $content['LN_DBMP_ERROR_HASBEENDEL'], $myrow['DisplayName'] ) , "dbmappings.php" );
}
else
{
$content['ISERROR'] = true;
$content['ERROR_MSG'] = $content['LN_DBMP_ERROR_INVALIDID'];
}
}
}
// --- Additional work todo for the edit view
if ( isset($content['ISEDITORNEWDBMP']) && $content['ISEDITORNEWDBMP'] )
{
// If Columns are send using POST we use them, otherwise we try to use from the view itself, if available
if ( isset($_POST['Mappings']) )
$AllMappings = $_POST['Mappings'];
else if ( isset($content['SUBMAPPINGS']) )
$AllMappings = $content['SUBMAPPINGS'];
// Read Columns from FORM data!
if ( isset($AllMappings) )
{
// --- Read Columns from Formdata
if ( is_array($AllMappings) )
{
// Copy columns ID's
foreach ($AllMappings as $myColKey => $myFieldName) // $myColKey)
{
if ( !is_numeric($myColKey) )
$content['SUBMAPPINGS'][$myColKey] = array( 'MappingFieldID' => $myColKey, 'MappingDbFieldName' => $myFieldName );
else
$content['SUBMAPPINGS'][$myFieldName] = array( 'MappingFieldID' => $myFieldName );
}
}
else // One element only
$content['SUBMAPPINGS'][$AllColumns]['MappingFieldID'] = $AllColumns;
// ---
// --- Process Columns for display
$i = 0; // Help counter!
foreach ($content['SUBMAPPINGS'] as $key => &$myColumn )
{
// Set Fieldcaption
if ( isset($fields[$key]) && isset($fields[$key]['FieldCaption']) )
$myColumn['MappingCaption'] = $fields[$key]['FieldCaption'];
else
$myColumn['MappingCaption'] = $key;
// Append Internal FieldID
$myColumn['MappingInternalID'] = $fields[$key]['FieldDefine'];
// Set Mapping Fieldname
if ( isset( $_POST[ $myColumn['MappingFieldID'] ]) )
$myColumn['MappingDbFieldName'] = $_POST[ $myColumn['MappingFieldID'] ];
else if ( !isset($myColumn['MappingDbFieldName']) && strlen($myColumn['MappingDbFieldName']) > 0)
$myColumn['MappingDbFieldName'] = "";
// --- Set CSS Class
if ( $i % 2 == 0 )
$myColumn['colcssclass'] = "line1";
else
$myColumn['colcssclass'] = "line2";
$i++;
// ---
}
// ---
}
// --- Copy fields data array
$content['FIELDS'] = $fields;
// removed already added fields
if ( isset($content['SUBMAPPINGS']) )
{
foreach ($content['SUBMAPPINGS'] as $key => &$myColumn )
{
if ( isset($content['FIELDS'][$key]) )
unset($content['FIELDS'][$key]);
}
}
// set fieldcaption
foreach ($content['FIELDS'] as $key => &$myField )
{
// Set Fieldcaption
if ( isset($myField['FieldCaption']) )
$myField['FieldCaption'] = $myField['FieldCaption'];
else
$myField['FieldCaption'] = $key;
// Append Internal FieldID
$myField['FieldCaption'] .= " (" . $fields[$key]['FieldDefine'] . ")";
}
// ---
}
// ---
// --- Process POST Form Data
if ( isset($_POST['op']) )
{
if ( isset ($_POST['id']) ) { $content['DBMPID'] = DB_RemoveBadChars($_POST['id']); } else {$content['DBMPID'] = ""; }
if ( isset ($_POST['DisplayName']) ) { $content['DisplayName'] = DB_StripSlahes($_POST['DisplayName']); } else {$content['DisplayName'] = ""; }
// --- Check mandotary values
if ( $content['DisplayName'] == "" )
{
$content['ISERROR'] = true;
$content['ERROR_MSG'] = $content['LN_DBMP_ERROR_DISPLAYNAMEEMPTY'];
}
// ---
if ( !isset($content['ISERROR']) )
{
// Check subop's first!
if ( isset($_POST['subop']) )
{
if ( isset($_POST['newmapping']) )
{
// Get NewColID
$szColId = DB_RemoveBadChars($_POST['newmapping']);
// Add a new Column into our list!
if ( $_POST['subop'] == $content['LN_DBMP_ADDMAPPING'] && isset($_POST['newmapping']) )
{
// Add New entry into columnlist
$content['SUBMAPPINGS'][$szColId]['MappingFieldID'] = $szColId;
// Set Internal FieldID
$content['SUBMAPPINGS'][$szColId]['MappingInternalID'] = $fields[$szColId]['FieldDefine'];
// Set default for DbFieldName
$content['SUBMAPPINGS'][$szColId]['MappingDbFieldName'] = "";
// Set Fieldcaption
if ( isset($fields[$szColId]['FieldCaption']) )
$content['SUBMAPPINGS'][$szColId]['MappingCaption'] = $fields[$szColId]['FieldCaption'];
else
$content['SUBMAPPINGS'][$szColId]['MappingCaption'] = $szColId;
// Set CSSClass
$content['SUBMAPPINGS'][$szColId]['colcssclass'] = count($content['SUBMAPPINGS']) % 2 == 0 ? "line1" : "line2";
// Remove from fields list as well
if ( isset($content['FIELDS'][$szColId]) )
unset($content['FIELDS'][$szColId]);
}
}
}
else if ( isset($_POST['subop_edit']) )
{
// Actually nothing todo ;), the edit is performed automatically when the SUBMAPPINGS array is created.
}
else if ( isset($_POST['subop_delete']) )
{
// Get Column ID
$szColId = DB_RemoveBadChars($_POST['subop_delete']);
// Remove Entry from Columnslist
if ( isset($content['SUBMAPPINGS'][$szColId]) )
unset($content['SUBMAPPINGS'][$szColId]);
// Add removed entry to field list
$content['FIELDS'][$szColId] = $fields[$szColId];
// Set Fieldcaption
if ( isset($content['FIELDS'][$szColId]['FieldCaption']) )
$content['FIELDS'][$szColId]['FieldCaption'] = $content['FIELDS'][$szColId]['FieldCaption'];
else
$content['FIELDS'][$szColId]['FieldCaption'] = $szColId;
// Append Internal FieldID
$content['FIELDS'][$szColId]['FieldCaption'] .= " (" . $content['FIELDS'][$szColId]['FieldDefine'] . ")";
}
else if ( isset($_POST['subop_moveup']) )
{
// Get Column ID
$szColId = DB_RemoveBadChars($_POST['subop_moveup']);
// --- Move Entry one UP in Columnslist
// Find the entry in the array
$iArrayNum = 0;
foreach ($content['SUBMAPPINGS'] as $key => &$myColumn )
{
if ( $key == $szColId )
break;
$iArrayNum++;
}
// If found move up
if ( $iArrayNum > 0 )
{
// Extract Entry from the array
$EntryTwoMove = array_slice($content['SUBMAPPINGS'], $iArrayNum, 1);
// Unset Entry from the array
unset( $content['SUBMAPPINGS'][$szColId] );
// Splice the array order!
array_splice($content['SUBMAPPINGS'], $iArrayNum-1, 0, $EntryTwoMove);
}
// ---
}
else if ( isset($_POST['subop_movedown']) )
{
// Get Column ID
$szColId = DB_RemoveBadChars($_POST['subop_movedown']);
// --- Move Entry one DOWN in Columnslist
// Find the entry in the array
$iArrayNum = 0;
foreach ($content['SUBMAPPINGS'] as $key => &$myColumn )
{
if ( $key == $szColId )
break;
$iArrayNum++;
}
// If found move down
if ( $iArrayNum < count($content['SUBMAPPINGS']) )
{
// Extract Entry from the array
$EntryTwoMove = array_slice($content['SUBMAPPINGS'], $iArrayNum, 1);
// Unset Entry from the array
unset( $content['SUBMAPPINGS'][$szColId] );
// Splice the array order!
array_splice($content['SUBMAPPINGS'], $iArrayNum+1, 0, $EntryTwoMove);
}
// ---
}
else // Now SUBOP means normal processing!
{
// Now we convert fr DB insert!
$content['DisplayName'] = DB_RemoveBadChars($_POST['DisplayName']);
// Everything was alright, so we go to the next step!
if ( $_POST['op'] == "addnewdbmp" )
{
// Create Columnlist comma seperated!
if ( isset($_POST['Mappings']) && is_array($_POST['Mappings']) )
{
// Copy columns ID's
foreach ($_POST['Mappings'] as $myColKey)
{
if ( isset($_POST[$myColKey]) && strlen($_POST[$myColKey]) > 0 )
{
// Get FieldName
$myMappingFieldName = DB_StripSlahes($_POST[$myColKey]);
if ( isset($content['SUBMAPPINGS']) )
$content['SUBMAPPINGS'] .= "," . $myColKey;
else
$content['SUBMAPPINGS'] = $myColKey;
// Append Fieldname
$content['SUBMAPPINGS'] .= "=>" . $myMappingFieldName;
}
else
{
// Report error!
$content['ISEDITORNEWDBMP'] = false;
$content['ISERROR'] = true;
$content['ERROR_MSG'] = GetAndReplaceLangStr( $content['LN_DBMP_ERROR_MISSINGFIELDNAME'], $myColKey );
// Abort loop
break;
}
}
// Only perform if no error occured
if ( !isset($content['ISERROR']) )
{
// Add custom search now!
$sqlquery = "INSERT INTO " . DB_MAPPINGS. " (DisplayName, Mappings)
VALUES ('" . $content['DisplayName'] . "',
'" . $content['SUBMAPPINGS'] . "'
)";
$result = DB_Query($sqlquery);
DB_FreeQuery($result);
// Do the final redirect
RedirectResult( GetAndReplaceLangStr( $content['LN_DBMP_HASBEENADDED'], DB_StripSlahes($content['DisplayName']) ) , "dbmappings.php" );
}
}
else
{
$content['ISERROR'] = true;
$content['ERROR_MSG'] = $content['LN_DBMP_ERROR_NOCOLUMNS'];
}
}
else if ( $_POST['op'] == "editdbmp" )
{
// Now we convert fr DB insert!
$content['DisplayName'] = DB_RemoveBadChars($_POST['DisplayName']);
$result = DB_Query("SELECT ID FROM " . DB_MAPPINGS . " WHERE ID = " . $content['DBMPID']);
$myrow = DB_GetSingleRow($result, true);
if ( !isset($myrow['ID']) )
{
$content['ISERROR'] = true;
$content['ERROR_MSG'] = GetAndReplaceLangStr( $content['LN_DBMP_ERROR_IDNOTFOUND'], $content['DBMPID'] );
}
else
{
// Create Columnlist comma seperated!
if ( isset($_POST['Mappings']) && is_array($_POST['Mappings']) )
{
// Copy columns ID's
unset($content['SUBMAPPINGS']);
foreach ($_POST['Mappings'] as $myColKey)
{
if ( isset($_POST[$myColKey]) && strlen($_POST[$myColKey]) > 0 )
{
// Get FieldName
$myMappingFieldName = DB_StripSlahes($_POST[$myColKey]);
if ( isset($content['SUBMAPPINGS']) )
$content['SUBMAPPINGS'] .= "," . $myColKey;
else
$content['SUBMAPPINGS'] = $myColKey;
// Append Fieldname
$content['SUBMAPPINGS'] .= "=>" . $myMappingFieldName;
}
else
{
// Report error!
$content['ISEDITORNEWDBMP'] = false;
$content['ISERROR'] = true;
$content['ERROR_MSG'] = GetAndReplaceLangStr( $content['LN_DBMP_ERROR_MISSINGFIELDNAME'], $myColKey );
// Abort loop
break;
}
}
// Only perform if no error occured
if ( !isset($content['ISERROR']) )
{
// Edit the Search Entry now!
$result = DB_Query("UPDATE " . DB_MAPPINGS . " SET
DisplayName = '" . $content['DisplayName'] . "',
Mappings = '" . $content['SUBMAPPINGS'] . "'
WHERE ID = " . $content['DBMPID']);
DB_FreeQuery($result);
// Done redirect!
RedirectResult( GetAndReplaceLangStr( $content['LN_DBMP_HASBEENEDIT'], DB_StripSlahes($content['DisplayName']) ) , "dbmappings.php" );
}
}
else
{
$content['ISERROR'] = true;
$content['ERROR_MSG'] = $content['LN_DBMP_ERROR_NOCOLUMNS'];
}
}
}
}
}
}
if ( !isset($_POST['op']) && !isset($_GET['op']) )
{
// Default Mode = List Searches
$content['LISTDBMAPPINGS'] = "true";
// Copy Views array for further modifications
$content['DBMP'] = $dbmapping;
// --- Process Views
$i = 0; // Help counter!
foreach ($content['DBMP'] as &$myMappings )
{
// So internal Views can not be edited but seen
if ( is_numeric($myMappings['ID']) )
{
$myMappings['ActionsAllowed'] = true;
// --- Set Image for Type
$myMappings['ViewTypeImage'] = $content["MENU_GLOBAL"];
$myMappings['ViewTypeText'] = $content["LN_GEN_GLOBAL"];
// Check if is ADMIN User, deny if normal user!
if ( !isset($_SESSION['SESSION_ISADMIN']) || $_SESSION['SESSION_ISADMIN'] == 0 )
$myMappings['ActionsAllowed'] = false;
// ---
}
else
{
$myMappings['ActionsAllowed'] = false;
$myMappings['ViewTypeImage'] = $content["MENU_INTERNAL"];
$myMappings['ViewTypeText'] = $content["LN_GEN_INTERNAL"];
}
// --- Add DisplayNames to columns
$iBegin = true;
foreach ($myMappings['DBMAPPINGS'] as $myKey => &$myMapping )
{
// Set Fieldcaption
if ( isset($fields[$myKey]) && isset($fields[$myKey]['FieldCaption']) )
$myMappings['MYMAPPINGS'][$myKey]['FieldCaption'] = $fields[$myKey]['FieldCaption'];
else
$myMappings['MYMAPPINGS'][$myKey]['FieldCaption'] = $myKey;
// Set other fields
$myMappings['MYMAPPINGS'][$myKey]['FieldID'] = $myKey;
$myMappings['MYMAPPINGS'][$myKey]['FieldMapping'] = $myMapping;
// Set seperator
if ( $iBegin )
{
$myMappings['MYMAPPINGS'][$myKey]['CaptionSeperator'] = "";
$iBegin = false;
}
else
$myMappings['MYMAPPINGS'][$myKey]['CaptionSeperator'] = ", ";
}
// ---
// --- Set CSS Class
if ( $i % 2 == 0 )
$myMappings['cssclass'] = "line1";
else
$myMappings['cssclass'] = "line2";
$i++;
// ---
}
// ---
}
// --- END Custom Code
// --- BEGIN CREATE TITLE
$content['TITLE'] = InitPageTitle();
$content['TITLE'] .= " :: " . $content['LN_ADMINMENU_DBMAPPINGOPT'];
// --- END CREATE TITLE
// --- Parsen and Output
InitTemplateParser();
$page -> parser($content, "admin/admin_dbmappings.html");
$page -> output();
// ---
?>

View File

@ -93,8 +93,10 @@ if ( isset($_GET['op']) )
// SOURCE_DB specific
$content['SourceDBType'] = DB_MYSQL;
CreateDBTypesList($content['SourceDBType']);
$content['SourceDBName'] = "phplogcon";
$content['SourceDBTableType'] = "monitorware";
CreateDBMappingsList($content['SourceDBTableType']);
$content['SourceDBName'] = "phplogcon";
$content['SourceDBServer'] = "localhost";
$content['SourceDBTableName'] = "systemevents";
$content['SourceDBUser'] = "user";
@ -172,8 +174,10 @@ if ( isset($_GET['op']) )
// SOURCE_DB specific
$content['SourceDBType'] = $mysource['DBType'];
CreateDBTypesList($content['SourceDBType']);
$content['SourceDBName'] = $mysource['DBName'];
$content['SourceDBTableType'] = $mysource['DBTableType'];
CreateDBMappingsList($content['SourceDBTableType']);
$content['SourceDBName'] = $mysource['DBName'];
$content['SourceDBServer'] = $mysource['DBServer'];
$content['SourceDBTableName'] = $mysource['DBTableName'];
$content['SourceDBUser'] = $mysource['DBUser'];

View File

@ -249,10 +249,10 @@ class LogStreamDB extends LogStream {
foreach ( $this->_arrProperties as $property )
{
// Check if mapping exists
if ( isset($dbmapping[$szTableType][$property]) )
if ( isset($dbmapping[$szTableType]['DBMAPPINGS'][$property]) )
{
// Copy property if available!
$dbfieldname = $dbmapping[$szTableType][$property];
$dbfieldname = $dbmapping[$szTableType]['DBMAPPINGS'][$property];
if ( isset($this->bufferedRecords[$this->_currentRecordNum][$dbfieldname]) )
{
if ( isset($fields[$property]['FieldType']) && $fields[$property]['FieldType'] == FILTER_TYPE_DATE ) // Handle as date!
@ -278,7 +278,7 @@ class LogStreamDB extends LogStream {
}
// Set uID to the PropertiesOut! //DEBUG -> $this->_currentRecordNum;
$uID = $arrProperitesOut[SYSLOG_UID] = $this->bufferedRecords[$this->_currentRecordNum][$dbmapping[$szTableType][SYSLOG_UID]];
$uID = $arrProperitesOut[SYSLOG_UID] = $this->bufferedRecords[$this->_currentRecordNum][$dbmapping[$szTableType]['DBMAPPINGS'][SYSLOG_UID]];
// Increment $_currentRecordNum
$this->_currentRecordNum++;
@ -440,7 +440,7 @@ class LogStreamDB extends LogStream {
if ( strlen($this->_SQLwhereClause) > 0 && !$this->_logStreamConfigObj->DBEnableRowCounting )
return $this->_firstPageUID;
$szSql = "SELECT MAX(" . $dbmapping[$szTableType][SYSLOG_UID] . ") FROM " . $this->_logStreamConfigObj->DBTableName . $this->_SQLwhereClause;
$szSql = "SELECT MAX(" . $dbmapping[$szTableType]['DBMAPPINGS'][SYSLOG_UID] . ") FROM " . $this->_logStreamConfigObj->DBTableName . $this->_SQLwhereClause;
$myQuery = mysql_query($szSql, $this->_dbhandle);
if ($myQuery)
{
@ -472,7 +472,7 @@ class LogStreamDB extends LogStream {
if ( strlen($this->_SQLwhereClause) > 0 && !$this->_logStreamConfigObj->DBEnableRowCounting )
return $this->_lastPageUID;
$szSql = "SELECT MIN(" . $dbmapping[$szTableType][SYSLOG_UID] . ") FROM " . $this->_logStreamConfigObj->DBTableName . $this->_SQLwhereClause;
$szSql = "SELECT MIN(" . $dbmapping[$szTableType]['DBMAPPINGS'][SYSLOG_UID] . ") FROM " . $this->_logStreamConfigObj->DBTableName . $this->_SQLwhereClause;
$myQuery = mysql_query($szSql, $this->_dbhandle);
if ($myQuery)
{
@ -625,7 +625,7 @@ class LogStreamDB extends LogStream {
if ( $this->_dbhandle != null )
{
// SHOW TABLE STATUS FROM
$szSql = "SELECT count(" . $dbmapping[$szTableType][SYSLOG_UID] . ") as Counter FROM " . $this->_logStreamConfigObj->DBTableName;
$szSql = "SELECT count(" . $dbmapping[$szTableType]['DBMAPPINGS'][SYSLOG_UID] . ") as Counter FROM " . $this->_logStreamConfigObj->DBTableName;
$myQuery = mysql_query($szSql, $this->_dbhandle);
if ($myQuery)
{
@ -663,7 +663,7 @@ class LogStreamDB extends LogStream {
{
// Create WHERE attachment
if ( $nDateTimeStamp > 0 )
$szWhere = " WHERE UNIX_TIMESTAMP(" . $dbmapping[$szTableType][SYSLOG_DATE] . ") < " . $nDateTimeStamp;
$szWhere = " WHERE UNIX_TIMESTAMP(" . $dbmapping[$szTableType]['DBMAPPINGS'][SYSLOG_DATE] . ") < " . $nDateTimeStamp;
else
$szWhere = "";
@ -699,10 +699,10 @@ class LogStreamDB extends LogStream {
// Copy helper variables, this is just for better readability
$szTableType = $this->_logStreamConfigObj->DBTableType;
if ( isset($dbmapping[$szTableType][$szFieldId]) )
if ( isset($dbmapping[$szTableType]['DBMAPPINGS'][$szFieldId]) )
{
// Set DB Field name first!
$myDBFieldName = $dbmapping[$szTableType][$szFieldId];
$myDBFieldName = $dbmapping[$szTableType]['DBMAPPINGS'][$szFieldId];
$myDBQueryFieldName = $myDBFieldName;
$mySelectFieldName = $myDBFieldName;
@ -777,7 +777,7 @@ class LogStreamDB extends LogStream {
foreach( $this->_filters[$propertyname] as $myfilter )
{
// Only perform if database mapping is available for this filter!
if ( isset($dbmapping[$szTableType][$propertyname]) )
if ( isset($dbmapping[$szTableType]['DBMAPPINGS'][$propertyname]) )
{
switch( $myfilter[FILTER_TYPE] )
{
@ -842,11 +842,11 @@ class LogStreamDB extends LogStream {
// Now Create LIKE Filters
if ( isset($tmpfilters[$propertyname]) )
$tmpfilters[$propertyname][FILTER_VALUE] .= $addor . $dbmapping[$szTableType][$propertyname] . $addnod . $szSearchBegin . DB_RemoveBadChars($myfilter[FILTER_VALUE]) . $szSearchEnd;
$tmpfilters[$propertyname][FILTER_VALUE] .= $addor . $dbmapping[$szTableType]['DBMAPPINGS'][$propertyname] . $addnod . $szSearchBegin . DB_RemoveBadChars($myfilter[FILTER_VALUE]) . $szSearchEnd;
else
{
$tmpfilters[$propertyname][FILTER_TYPE] = FILTER_TYPE_STRING;
$tmpfilters[$propertyname][FILTER_VALUE] = $dbmapping[$szTableType][$propertyname] . $addnod . $szSearchBegin . DB_RemoveBadChars($myfilter[FILTER_VALUE]) . $szSearchEnd;
$tmpfilters[$propertyname][FILTER_VALUE] = $dbmapping[$szTableType]['DBMAPPINGS'][$propertyname] . $addnod . $szSearchBegin . DB_RemoveBadChars($myfilter[FILTER_VALUE]) . $szSearchEnd;
}
break;
case FILTER_TYPE_NUMBER:
@ -860,7 +860,7 @@ class LogStreamDB extends LogStream {
else
{
$tmpfilters[$szArrayKey][FILTER_TYPE] = FILTER_TYPE_NUMBER;
$tmpfilters[$szArrayKey][FILTER_VALUE] = $dbmapping[$szTableType][$propertyname] . " NOT IN (" . DB_RemoveBadChars($myfilter[FILTER_VALUE]);
$tmpfilters[$szArrayKey][FILTER_VALUE] = $dbmapping[$szTableType]['DBMAPPINGS'][$propertyname] . " NOT IN (" . DB_RemoveBadChars($myfilter[FILTER_VALUE]);
}
}
else
@ -871,7 +871,7 @@ class LogStreamDB extends LogStream {
else
{
$tmpfilters[$propertyname][FILTER_TYPE] = FILTER_TYPE_NUMBER;
$tmpfilters[$propertyname][FILTER_VALUE] = $dbmapping[$szTableType][$propertyname] . " IN (" . DB_RemoveBadChars($myfilter[FILTER_VALUE]);
$tmpfilters[$propertyname][FILTER_VALUE] = $dbmapping[$szTableType]['DBMAPPINGS'][$propertyname] . " IN (" . DB_RemoveBadChars($myfilter[FILTER_VALUE]);
}
}
// ---
@ -908,19 +908,19 @@ class LogStreamDB extends LogStream {
}
// Append filter
$tmpfilters[$propertyname][FILTER_VALUE] .= $dbmapping[$szTableType][$propertyname] . " > '" . date("Y-m-d H:i:s", $nNowTimeStamp) . "'";
$tmpfilters[$propertyname][FILTER_VALUE] .= $dbmapping[$szTableType]['DBMAPPINGS'][$propertyname] . " > '" . date("Y-m-d H:i:s", $nNowTimeStamp) . "'";
}
else if ( $myfilter[FILTER_DATEMODE] == DATEMODE_RANGE_FROM )
{
// Obtain Event struct for the time!
$myeventtime = GetEventTime($myfilter[FILTER_VALUE]);
$tmpfilters[$propertyname][FILTER_VALUE] .= $dbmapping[$szTableType][$propertyname] . " > '" . date("Y-m-d H:i:s", $myeventtime[EVTIME_TIMESTAMP]) . "'";
$tmpfilters[$propertyname][FILTER_VALUE] .= $dbmapping[$szTableType]['DBMAPPINGS'][$propertyname] . " > '" . date("Y-m-d H:i:s", $myeventtime[EVTIME_TIMESTAMP]) . "'";
}
else if ( $myfilter[FILTER_DATEMODE] == DATEMODE_RANGE_TO )
{
// Obtain Event struct for the time!
$myeventtime = GetEventTime($myfilter[FILTER_VALUE]);
$tmpfilters[$propertyname][FILTER_VALUE] .= $dbmapping[$szTableType][$propertyname] . " < '" . date("Y-m-d H:i:s", $myeventtime[EVTIME_TIMESTAMP]) . "'";
$tmpfilters[$propertyname][FILTER_VALUE] .= $dbmapping[$szTableType]['DBMAPPINGS'][$propertyname] . " < '" . date("Y-m-d H:i:s", $myeventtime[EVTIME_TIMESTAMP]) . "'";
}
break;
@ -1154,9 +1154,9 @@ class LogStreamDB extends LogStream {
// Create Basic SQL String
if ( $this->_logStreamConfigObj->DBEnableRowCounting ) // with SQL_CALC_FOUND_ROWS
$sqlString = "SELECT SQL_CALC_FOUND_ROWS " . $dbmapping[$szTableType][SYSLOG_UID];
$sqlString = "SELECT SQL_CALC_FOUND_ROWS " . $dbmapping[$szTableType]['DBMAPPINGS'][SYSLOG_UID];
else // without row calc
$sqlString = "SELECT " . $dbmapping[$szTableType][SYSLOG_UID];
$sqlString = "SELECT " . $dbmapping[$szTableType]['DBMAPPINGS'][SYSLOG_UID];
// Append fields if needed
if ( $includeFields && $this->_arrProperties != null )
@ -1165,10 +1165,10 @@ class LogStreamDB extends LogStream {
foreach ( $this->_arrProperties as $myproperty )
{
// SYSLOG_UID already added!
if ( $myproperty != SYSLOG_UID && isset($dbmapping[$szTableType][$myproperty]) )
if ( $myproperty != SYSLOG_UID && isset($dbmapping[$szTableType]['DBMAPPINGS'][$myproperty]) )
{
// Append field!
$sqlString .= ", " . $dbmapping[$szTableType][$myproperty];
$sqlString .= ", " . $dbmapping[$szTableType]['DBMAPPINGS'][$myproperty];
}
}
}
@ -1188,16 +1188,16 @@ class LogStreamDB extends LogStream {
$myOperator = "<=";
if ( strlen($this->_SQLwhereClause) > 0 )
$sqlString .= " AND " . $dbmapping[$szTableType][SYSLOG_UID] . " $myOperator $uID";
$sqlString .= " AND " . $dbmapping[$szTableType]['DBMAPPINGS'][SYSLOG_UID] . " $myOperator $uID";
else
$sqlString .= " WHERE " . $dbmapping[$szTableType][SYSLOG_UID] . " $myOperator $uID";
$sqlString .= " WHERE " . $dbmapping[$szTableType]['DBMAPPINGS'][SYSLOG_UID] . " $myOperator $uID";
}
// Append ORDER clause
if ( $this->_readDirection == EnumReadDirection::Forward )
$sqlString .= " ORDER BY " . $dbmapping[$szTableType][$szSortColumn];
$sqlString .= " ORDER BY " . $dbmapping[$szTableType]['DBMAPPINGS'][$szSortColumn];
else if ( $this->_readDirection == EnumReadDirection::Backward )
$sqlString .= " ORDER BY " . $dbmapping[$szTableType][$szSortColumn] . " DESC";
$sqlString .= " ORDER BY " . $dbmapping[$szTableType]['DBMAPPINGS'][$szSortColumn] . " DESC";
// return SQL result string:
return $sqlString;

View File

@ -191,7 +191,7 @@ class LogStreamPDO extends LogStream {
try
{
// This is one way to check if the table exists! But I don't really like it tbh -.-
$szIdField = $dbmapping[$this->_logStreamConfigObj->DBTableType][SYSLOG_UID];
$szIdField = $dbmapping[$this->_logStreamConfigObj->DBTableType]['DBMAPPINGS'][SYSLOG_UID];
$szTestQuery = "SELECT MAX(" . $szIdField . ") FROM " . $this->_logStreamConfigObj->DBTableName;
$tmpStmnt = $this->_dbhandle->prepare( $szTestQuery );
$tmpStmnt->execute();
@ -296,10 +296,10 @@ class LogStreamPDO extends LogStream {
foreach ( $this->_arrProperties as $property )
{
// Check if mapping exists
if ( isset($dbmapping[$szTableType][$property]) )
if ( isset($dbmapping[$szTableType]['DBMAPPINGS'][$property]) )
{
// Copy property if available!
$dbfieldname = $dbmapping[$szTableType][$property];
$dbfieldname = $dbmapping[$szTableType]['DBMAPPINGS'][$property];
if ( isset($this->bufferedRecords[$this->_currentRecordNum][$dbfieldname]) )
{
if ( isset($fields[$property]['FieldType']) && $fields[$property]['FieldType'] == FILTER_TYPE_DATE ) // Handle as date!
@ -325,7 +325,7 @@ class LogStreamPDO extends LogStream {
}
// Set uID to the PropertiesOut! //DEBUG -> $this->_currentRecordNum;
$uID = $arrProperitesOut[SYSLOG_UID] = $this->bufferedRecords[$this->_currentRecordNum][$dbmapping[$szTableType][SYSLOG_UID]];
$uID = $arrProperitesOut[SYSLOG_UID] = $this->bufferedRecords[$this->_currentRecordNum][$dbmapping[$szTableType]['DBMAPPINGS'][SYSLOG_UID]];
// Increment $_currentRecordNum
$this->_currentRecordNum++;
@ -474,7 +474,7 @@ class LogStreamPDO extends LogStream {
global $querycount, $dbmapping;
$szTableType = $this->_logStreamConfigObj->DBTableType;
$szSql = "SELECT MAX(" . $dbmapping[$szTableType][SYSLOG_UID] . ") FROM " . $this->_logStreamConfigObj->DBTableName . $this->_SQLwhereClause;
$szSql = "SELECT MAX(" . $dbmapping[$szTableType]['DBMAPPINGS'][SYSLOG_UID] . ") FROM " . $this->_logStreamConfigObj->DBTableName . $this->_SQLwhereClause;
$myQuery = $this->_dbhandle->query($szSql);
if ( $myQuery )
{
@ -504,7 +504,7 @@ class LogStreamPDO extends LogStream {
global $querycount, $dbmapping;
$szTableType = $this->_logStreamConfigObj->DBTableType;
$szSql = "SELECT MIN(" . $dbmapping[$szTableType][SYSLOG_UID] . ") FROM " . $this->_logStreamConfigObj->DBTableName . $this->_SQLwhereClause;
$szSql = "SELECT MIN(" . $dbmapping[$szTableType]['DBMAPPINGS'][SYSLOG_UID] . ") FROM " . $this->_logStreamConfigObj->DBTableName . $this->_SQLwhereClause;
$myQuery = $this->_dbhandle->query($szSql);
if ( $myQuery )
{
@ -572,7 +572,7 @@ class LogStreamPDO extends LogStream {
// SHOW TABLE STATUS FROM
$stats = NULL;
$szSql = "SELECT count(" . $dbmapping[$szTableType][SYSLOG_UID] . ") as Counter FROM " . $this->_logStreamConfigObj->DBTableName;
$szSql = "SELECT count(" . $dbmapping[$szTableType]['DBMAPPINGS'][SYSLOG_UID] . ") as Counter FROM " . $this->_logStreamConfigObj->DBTableName;
$myQuery = $this->_dbhandle->query($szSql);
if ( $myQuery )
{
@ -617,7 +617,7 @@ class LogStreamPDO extends LogStream {
if ( $this->_dbhandle != null )
{
// Get Total Rowcount
$szSql = "SELECT count(" . $dbmapping[$szTableType][SYSLOG_UID] . ") as Counter FROM " . $this->_logStreamConfigObj->DBTableName;
$szSql = "SELECT count(" . $dbmapping[$szTableType]['DBMAPPINGS'][SYSLOG_UID] . ") as Counter FROM " . $this->_logStreamConfigObj->DBTableName;
$myQuery = $this->_dbhandle->query($szSql);
if ( $myQuery )
{
@ -654,7 +654,7 @@ class LogStreamPDO extends LogStream {
{
// Create WHERE attachment
if ( $nDateTimeStamp > 0 )
$szWhere = " WHERE " . $dbmapping[$szTableType][SYSLOG_DATE] . " < '" . date('Y-m-d H:i:s', $nDateTimeStamp) . "'";
$szWhere = " WHERE " . $dbmapping[$szTableType]['DBMAPPINGS'][SYSLOG_DATE] . " < '" . date('Y-m-d H:i:s', $nDateTimeStamp) . "'";
else
$szWhere = "";
@ -690,10 +690,10 @@ class LogStreamPDO extends LogStream {
// Copy helper variables, this is just for better readability
$szTableType = $this->_logStreamConfigObj->DBTableType;
if ( isset($dbmapping[$szTableType][$szFieldId]) )
if ( isset($dbmapping[$szTableType]['DBMAPPINGS'][$szFieldId]) )
{
// Set DB Field name first!
$myDBFieldName = $dbmapping[$szTableType][$szFieldId];
$myDBFieldName = $dbmapping[$szTableType]['DBMAPPINGS'][$szFieldId];
$myDBQueryFieldName = $myDBFieldName;
$mySelectFieldName = $myDBFieldName;
@ -795,7 +795,7 @@ class LogStreamPDO extends LogStream {
foreach( $this->_filters[$propertyname] as $myfilter )
{
// Only perform if database mapping is available for this filter!
if ( isset($dbmapping[$szTableType][$propertyname]) )
if ( isset($dbmapping[$szTableType]['DBMAPPINGS'][$propertyname]) )
{
switch( $myfilter[FILTER_TYPE] )
{
@ -890,11 +890,11 @@ class LogStreamPDO extends LogStream {
// Not create LIKE Filters
if ( isset($tmpfilters[$propertyname]) )
$tmpfilters[$propertyname][FILTER_VALUE] .= $addor . $dbmapping[$szTableType][$propertyname] . $addnod . $szSearchBegin . DB_RemoveBadChars($myfilter[FILTER_VALUE], $this->_logStreamConfigObj->DBType) . $szSearchEnd;
$tmpfilters[$propertyname][FILTER_VALUE] .= $addor . $dbmapping[$szTableType]['DBMAPPINGS'][$propertyname] . $addnod . $szSearchBegin . DB_RemoveBadChars($myfilter[FILTER_VALUE], $this->_logStreamConfigObj->DBType) . $szSearchEnd;
else
{
$tmpfilters[$propertyname][FILTER_TYPE] = FILTER_TYPE_STRING;
$tmpfilters[$propertyname][FILTER_VALUE] = $dbmapping[$szTableType][$propertyname] . $addnod . $szSearchBegin . DB_RemoveBadChars($myfilter[FILTER_VALUE], $this->_logStreamConfigObj->DBType) . $szSearchEnd;
$tmpfilters[$propertyname][FILTER_VALUE] = $dbmapping[$szTableType]['DBMAPPINGS'][$propertyname] . $addnod . $szSearchBegin . DB_RemoveBadChars($myfilter[FILTER_VALUE], $this->_logStreamConfigObj->DBType) . $szSearchEnd;
}
break;
case FILTER_TYPE_NUMBER:
@ -908,7 +908,7 @@ class LogStreamPDO extends LogStream {
else
{
$tmpfilters[$szArrayKey][FILTER_TYPE] = FILTER_TYPE_NUMBER;
$tmpfilters[$szArrayKey][FILTER_VALUE] = $dbmapping[$szTableType][$propertyname] . " NOT IN (" . DB_RemoveBadChars($myfilter[FILTER_VALUE], $this->_logStreamConfigObj->DBType);
$tmpfilters[$szArrayKey][FILTER_VALUE] = $dbmapping[$szTableType]['DBMAPPINGS'][$propertyname] . " NOT IN (" . DB_RemoveBadChars($myfilter[FILTER_VALUE], $this->_logStreamConfigObj->DBType);
}
}
else
@ -919,7 +919,7 @@ class LogStreamPDO extends LogStream {
else
{
$tmpfilters[$propertyname][FILTER_TYPE] = FILTER_TYPE_NUMBER;
$tmpfilters[$propertyname][FILTER_VALUE] = $dbmapping[$szTableType][$propertyname] . " IN (" . DB_RemoveBadChars($myfilter[FILTER_VALUE], $this->_logStreamConfigObj->DBType);
$tmpfilters[$propertyname][FILTER_VALUE] = $dbmapping[$szTableType]['DBMAPPINGS'][$propertyname] . " IN (" . DB_RemoveBadChars($myfilter[FILTER_VALUE], $this->_logStreamConfigObj->DBType);
}
}
// ---
@ -956,19 +956,19 @@ class LogStreamPDO extends LogStream {
}
// Append filter
$tmpfilters[$propertyname][FILTER_VALUE] .= $dbmapping[$szTableType][$propertyname] . " > '" . date("Y-m-d H:i:s", $nNowTimeStamp) . "'";
$tmpfilters[$propertyname][FILTER_VALUE] .= $dbmapping[$szTableType]['DBMAPPINGS'][$propertyname] . " > '" . date("Y-m-d H:i:s", $nNowTimeStamp) . "'";
}
else if ( $myfilter[FILTER_DATEMODE] == DATEMODE_RANGE_FROM )
{
// Obtain Event struct for the time!
$myeventtime = GetEventTime($myfilter[FILTER_VALUE]);
$tmpfilters[$propertyname][FILTER_VALUE] .= $dbmapping[$szTableType][$propertyname] . " > '" . date("Y-m-d H:i:s", $myeventtime[EVTIME_TIMESTAMP]) . "'";
$tmpfilters[$propertyname][FILTER_VALUE] .= $dbmapping[$szTableType]['DBMAPPINGS'][$propertyname] . " > '" . date("Y-m-d H:i:s", $myeventtime[EVTIME_TIMESTAMP]) . "'";
}
else if ( $myfilter[FILTER_DATEMODE] == DATEMODE_RANGE_TO )
{
// Obtain Event struct for the time!
$myeventtime = GetEventTime($myfilter[FILTER_VALUE]);
$tmpfilters[$propertyname][FILTER_VALUE] .= $dbmapping[$szTableType][$propertyname] . " < '" . date("Y-m-d H:i:s", $myeventtime[EVTIME_TIMESTAMP]) . "'";
$tmpfilters[$propertyname][FILTER_VALUE] .= $dbmapping[$szTableType]['DBMAPPINGS'][$propertyname] . " < '" . date("Y-m-d H:i:s", $myeventtime[EVTIME_TIMESTAMP]) . "'";
}
break;
@ -1153,7 +1153,7 @@ class LogStreamPDO extends LogStream {
// if ( $this->_logStreamConfigObj->DBEnableRowCounting ) // with SQL_CALC_FOUND_ROWS
// $sqlString = "SELECT SQL_CALC_FOUND_ROWS " . $dbmapping[$szTableType][SYSLOG_UID];
// else // without row calc
$sqlString = "SELECT " . $dbmapping[$szTableType][SYSLOG_UID];
$sqlString = "SELECT " . $dbmapping[$szTableType]['DBMAPPINGS'][SYSLOG_UID];
// Append fields if needed
if ( $includeFields && $this->_arrProperties != null )
@ -1162,10 +1162,10 @@ class LogStreamPDO extends LogStream {
foreach ( $this->_arrProperties as $myproperty )
{
// SYSLOG_UID already added!
if ( $myproperty != SYSLOG_UID && isset($dbmapping[$szTableType][$myproperty]) )
if ( $myproperty != SYSLOG_UID && isset($dbmapping[$szTableType]['DBMAPPINGS'][$myproperty]) )
{
// Append field!
$sqlString .= ", " . $dbmapping[$szTableType][$myproperty];
$sqlString .= ", " . $dbmapping[$szTableType]['DBMAPPINGS'][$myproperty];
}
}
}
@ -1185,16 +1185,16 @@ class LogStreamPDO extends LogStream {
$myOperator = "<=";
if ( strlen($this->_SQLwhereClause) > 0 )
$sqlString .= " AND " . $dbmapping[$szTableType][SYSLOG_UID] . " $myOperator $uID";
$sqlString .= " AND " . $dbmapping[$szTableType]['DBMAPPINGS'][SYSLOG_UID] . " $myOperator $uID";
else
$sqlString .= " WHERE " . $dbmapping[$szTableType][SYSLOG_UID] . " $myOperator $uID";
$sqlString .= " WHERE " . $dbmapping[$szTableType]['DBMAPPINGS'][SYSLOG_UID] . " $myOperator $uID";
}
// Append ORDER clause
if ( $this->_readDirection == EnumReadDirection::Forward )
$sqlString .= " ORDER BY " . $dbmapping[$szTableType][$szSortColumn];
$sqlString .= " ORDER BY " . $dbmapping[$szTableType]['DBMAPPINGS'][$szSortColumn];
else if ( $this->_readDirection == EnumReadDirection::Backward )
$sqlString .= " ORDER BY " . $dbmapping[$szTableType][$szSortColumn] . " DESC";
$sqlString .= " ORDER BY " . $dbmapping[$szTableType]['DBMAPPINGS'][$szSortColumn] . " DESC";
//echo $sqlString;
//exit;
@ -1263,7 +1263,7 @@ class LogStreamPDO extends LogStream {
$szTableType = $this->_logStreamConfigObj->DBTableType;
// Create Statement and perform query!
$szSql = "SELECT count(" . $dbmapping[$szTableType][SYSLOG_UID] . ") FROM " . $this->_logStreamConfigObj->DBTableName . $this->_SQLwhereClause;
$szSql = "SELECT count(" . $dbmapping[$szTableType]['DBMAPPINGS'][SYSLOG_UID] . ") FROM " . $this->_logStreamConfigObj->DBTableName . $this->_SQLwhereClause;
$myQuery = $this->_dbhandle->query($szSql);
if ($myQuery)
{

View File

@ -299,33 +299,37 @@ $fields[SYSLOG_MESSAGE]['SearchOnline'] = false;
// ---
// --- Define default Database field mappings!
$dbmapping['monitorware'][SYSLOG_UID] = "ID";
$dbmapping['monitorware'][SYSLOG_DATE] = "DeviceReportedTime";
$dbmapping['monitorware'][SYSLOG_HOST] = "FromHost";
$dbmapping['monitorware'][SYSLOG_MESSAGETYPE] = "InfoUnitID";
$dbmapping['monitorware'][SYSLOG_MESSAGE] = "Message";
$dbmapping['monitorware'][SYSLOG_FACILITY] = "Facility";
$dbmapping['monitorware'][SYSLOG_SEVERITY] = "Priority";
$dbmapping['monitorware'][SYSLOG_SYSLOGTAG] = "SysLogTag";
$dbmapping['monitorware'][SYSLOG_EVENT_ID] = "EventID";
$dbmapping['monitorware'][SYSLOG_EVENT_LOGTYPE] = "EventLogType";
$dbmapping['monitorware'][SYSLOG_EVENT_SOURCE] = "EventSource";
$dbmapping['monitorware'][SYSLOG_EVENT_CATEGORY] = "EventCategory";
$dbmapping['monitorware'][SYSLOG_EVENT_USER] = "EventUser";
$dbmapping['monitorware']['ID'] = "monitorware";
$dbmapping['monitorware']['DisplayName'] = "MonitorWare";
$dbmapping['monitorware']['DBMAPPINGS'][SYSLOG_UID] = "ID";
$dbmapping['monitorware']['DBMAPPINGS'][SYSLOG_DATE] = "DeviceReportedTime";
$dbmapping['monitorware']['DBMAPPINGS'][SYSLOG_HOST] = "FromHost";
$dbmapping['monitorware']['DBMAPPINGS'][SYSLOG_MESSAGETYPE] = "InfoUnitID";
$dbmapping['monitorware']['DBMAPPINGS'][SYSLOG_MESSAGE] = "Message";
$dbmapping['monitorware']['DBMAPPINGS'][SYSLOG_FACILITY] = "Facility";
$dbmapping['monitorware']['DBMAPPINGS'][SYSLOG_SEVERITY] = "Priority";
$dbmapping['monitorware']['DBMAPPINGS'][SYSLOG_SYSLOGTAG] = "SysLogTag";
$dbmapping['monitorware']['DBMAPPINGS'][SYSLOG_EVENT_ID] = "EventID";
$dbmapping['monitorware']['DBMAPPINGS'][SYSLOG_EVENT_LOGTYPE] = "EventLogType";
$dbmapping['monitorware']['DBMAPPINGS'][SYSLOG_EVENT_SOURCE] = "EventSource";
$dbmapping['monitorware']['DBMAPPINGS'][SYSLOG_EVENT_CATEGORY] = "EventCategory";
$dbmapping['monitorware']['DBMAPPINGS'][SYSLOG_EVENT_USER] = "EventUser";
$dbmapping['syslogng'][SYSLOG_UID] = "seq";
$dbmapping['syslogng'][SYSLOG_DATE] = "datetime";
$dbmapping['syslogng'][SYSLOG_HOST] = "host";
$dbmapping['syslogng'][SYSLOG_MESSAGE] = "msg";
//TODO $dbmapping['syslogng'][SYSLOG_FACILITY] = "Facility";
//TODO $dbmapping['syslogng'][SYSLOG_SEVERITY] = "Priority"
$dbmapping['syslogng'][SYSLOG_SYSLOGTAG] = "tag";
$dbmapping['syslogng'][SYSLOG_PROCESSID] = "program";
$dbmapping['syslogng']['ID'] = "syslogng";
$dbmapping['syslogng']['DisplayName'] = "SyslogNG";
$dbmapping['syslogng']['DBMAPPINGS'][SYSLOG_UID] = "seq";
$dbmapping['syslogng']['DBMAPPINGS'][SYSLOG_DATE] = "datetime";
$dbmapping['syslogng']['DBMAPPINGS'][SYSLOG_HOST] = "host";
$dbmapping['syslogng']['DBMAPPINGS'][SYSLOG_MESSAGE] = "msg";
//NOT POSSIBLE YET $dbmapping['syslogng'][SYSLOG_FACILITY] = "Facility";
//NOT POSSIBLE YET $dbmapping['syslogng'][SYSLOG_SEVERITY] = "Priority";
$dbmapping['syslogng']['DBMAPPINGS'][SYSLOG_SYSLOGTAG] = "tag";
$dbmapping['syslogng']['DBMAPPINGS'][SYSLOG_PROCESSID] = "program";
// Convert all fieldnames to lowercase to avoid problems with case sensitive array keys later
foreach( $dbmapping as &$myMapping )
{
foreach( $myMapping as &$myField )
foreach( $myMapping['DBMAPPINGS'] as &$myField )
$myField = strtolower($myField);
}

View File

@ -112,7 +112,7 @@ CREATE TABLE IF NOT EXISTS `logcon_views` (
`userid` int(11) default NULL,
`groupid` int(11) default NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Stores custom defined user views.' AUTO_INCREMENT=1 ;
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Stores custom defined user views.' AUTO_INCREMENT=1 ;
--
-- Table structure for table `logcon_charts`
@ -131,7 +131,7 @@ CREATE TABLE IF NOT EXISTS `logcon_charts` (
`userid` int(11) default NULL,
`groupid` int(11) default NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='This table contains all configured charts' AUTO_INCREMENT=1 ;
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='This table contains all configured charts' AUTO_INCREMENT=1 ;
--
-- Table structure for table `logcon_fields`
@ -151,3 +151,15 @@ CREATE TABLE `logcon_fields` (
`Trunscate` int(11) NOT NULL,
PRIMARY KEY (`FieldID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='This table stores custom fields';
--
-- Table structure for table `logcon_dbmappings`
--
DROP TABLE IF EXISTS `logcon_dbmappings`;
CREATE TABLE `logcon_dbmappings` (
`ID` int(11) NOT NULL auto_increment,
`DisplayName` varchar(64) NOT NULL,
`Mappings` varchar(1024) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

View File

@ -11,7 +11,7 @@ CREATE TABLE IF NOT EXISTS `logcon_charts` (
`userid` int(11) default NULL,
`groupid` int(11) default NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='This table contains all configured charts' AUTO_INCREMENT=1 ;
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='This table contains all configured charts' AUTO_INCREMENT=1 ;
-- Insert data
INSERT INTO `logcon_charts` (`ID`, `DisplayName`, `chart_enabled`, `chart_type`, `chart_width`, `chart_field`, `maxrecords`, `showpercent`, `userid`, `groupid`) VALUES (1, 'Top Hosts', 1, 3, 400, 'FROMHOST', 10, 0, NULL, NULL);

View File

@ -0,0 +1,11 @@
-- New Database Structure Updates
CREATE TABLE `logcon_dbmappings` (
`ID` int(11) NOT NULL auto_increment,
`DisplayName` varchar(64) NOT NULL,
`Mappings` varchar(1024) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
-- Insert data
-- Updated Data

View File

@ -320,6 +320,24 @@ function CreateChartFields( $selectedChartField)
}
}
/*
* Helper function to generate a dbmappings list
*/
function CreateDBMappingsList( $selectedDBTableType )
{
global $content, $dbmapping;
// Process all mappings
foreach ( $dbmapping as $mykey => $myMapping )
{
$content['DBMAPPINGS'][$mykey]['type'] = $mykey;
if ( isset($myMapping['DisplayName']) ) {$content['DBMAPPINGS'][$mykey]['DisplayName'] = $myMapping['DisplayName']; } else { $content['DBMAPPINGS'][$mykey]['DisplayName'] = $mykey; }
if ( $selectedDBTableType == $mykey ) { $content['DBMAPPINGS'][$mykey]['selected'] = "selected"; } else { $content['DBMAPPINGS'][$mykey]['selected'] = ""; }
}
}
function CreateDBTypesList( $selectedDBType )
{
global $content;
@ -752,6 +770,9 @@ function InitConfigurationValues()
// Load Configured Views
LoadViewsFromDatabase();
// Load Configured Mappings
LoadDBMappingsFromDatabase();
// Load Configured Sources
LoadSourcesFromDatabase();
}

View File

@ -430,6 +430,7 @@ function InitPhpLogConConfigFile($bHandleMissing = true)
define('DB_USERS', $tblPref . "users");
define('DB_VIEWS', $tblPref . "views");
define('DB_CHARTS', $tblPref . "charts");
define('DB_MAPPINGS', $tblPref . "dbmappings");
// Legacy support for old columns definition format!
if ( isset($CFG['Columns']) && is_array($CFG['Columns']) )
@ -463,6 +464,73 @@ function InitPhpLogConConfigFile($bHandleMissing = true)
}
}
/*
* Helper function to load configured dbmappings from the database
*/
function LoadDBMappingsFromDatabase()
{
// Needed to make global
global $dbmapping, $content, $fields;
// Abort reading fields if the database version is below version 8!, because prior v8, there were no dbmappings table
if ( $content['database_installedversion'] < 8 )
return;
// --- Preprocess fields in loop
foreach ($dbmapping as &$myMapping )
{
// Set Field to be internal!
$myMapping['IsInternalMapping'] = true;
$myMapping['MappingFromDB'] = false;
}
// ---
// --- Create SQL Query
$sqlquery = " SELECT " .
DB_MAPPINGS . ".ID, " .
DB_MAPPINGS . ".DisplayName, " .
DB_MAPPINGS . ".Mappings " .
" FROM " . DB_MAPPINGS .
" ORDER BY " . DB_MAPPINGS . ".DisplayName";
// Get Views from DB now!
$result = DB_Query($sqlquery);
$myrows = DB_GetAllRows($result, true);
if ( isset($myrows) && count($myrows) > 0 )
{
// Unpack the Columns and append to Views Array
foreach ($myrows as &$myMappings)
{
// Split into array
$tmpMappings = explode( ",", $myMappings['Mappings'] );
//Loop through mappings
foreach ($tmpMappings as &$myMapping )
{
// Split subvalues
$tmpMapping = explode( "=>", $myMapping );
// check if field is valid
$fieldId = trim($tmpMapping[0]);
if ( isset($fields[$fieldId]) )
{
// Assign mappings
$myMappings['DBMAPPINGS'][$fieldId] = trim($tmpMapping[1]);
}
}
// Add Mapping to array
$dbmapping[ $myMappings['ID'] ] = $myMappings;
// Set FromDB to true
$dbmapping[ $myMappings['ID'] ]['MappingFromDB'] = true;
}
}
// ---
}
/*
* Helper function to load configured fields from the database
*/

View File

@ -45,7 +45,7 @@ $errdesc = "";
$errno = 0;
// --- Current Database Version, this is important for automated database Updates!
$content['database_internalversion'] = "7"; // Whenever incremented, a database upgrade is needed
$content['database_internalversion'] = "8"; // Whenever incremented, a database upgrade is needed
$content['database_installedversion'] = "0"; // 0 is default which means Prior Versioning Database
// ---

View File

@ -531,8 +531,10 @@ else if ( $content['INSTALL_STEP'] == 7 )
// SOURCE_DB specific
if ( isset($_SESSION['SourceDBType']) ) { $content['SourceDBType'] = $_SESSION['SourceDBType']; } else { $content['SourceDBType'] = DB_MYSQL; }
CreateDBTypesList($content['SourceDBType']);
if ( isset($_SESSION['SourceDBName']) ) { $content['SourceDBName'] = $_SESSION['SourceDBName']; } else { $content['SourceDBName'] = "phplogcon"; }
if ( isset($_SESSION['SourceDBTableType']) ) { $content['SourceDBTableType'] = $_SESSION['SourceDBTableType']; } else { $content['SourceDBTableType'] = "monitorware"; }
CreateDBMappingsList($content['SourceDBTableType']);
if ( isset($_SESSION['SourceDBName']) ) { $content['SourceDBName'] = $_SESSION['SourceDBName']; } else { $content['SourceDBName'] = "phplogcon"; }
if ( isset($_SESSION['SourceDBServer']) ) { $content['SourceDBServer'] = $_SESSION['SourceDBServer']; } else { $content['SourceDBServer'] = "localhost"; }
if ( isset($_SESSION['SourceDBTableName']) ) { $content['SourceDBTableName'] = $_SESSION['SourceDBTableName']; } else { $content['SourceDBTableName'] = "systemevents"; }
if ( isset($_SESSION['SourceDBUser']) ) { $content['SourceDBUser'] = $_SESSION['SourceDBUser']; } else { $content['SourceDBUser'] = "user"; }

View File

@ -37,6 +37,7 @@ $content['LN_ADMINMENU_USEROPT'] = "Users";
$content['LN_ADMINMENU_GROUPOPT'] = "Groups";
$content['LN_ADMINMENU_CHARTOPT'] = "Charts";
$content['LN_ADMINMENU_FIELDOPT'] = "Fields";
$content['LN_ADMINMENU_DBMAPPINGOPT'] = "DBMappings";
$content['LN_ADMINMENU_MSGPARSERSOPT'] = "Message Parsers";
$content['LN_ADMIN_CENTER'] = "Admin center";
$content['LN_ADMIN_UNKNOWNSTATE'] = "Unknown State";
@ -202,6 +203,31 @@ $content['LN_VIEWS_ERROR_NOCOLUMNS'] = "You need to add at least one column in o
$content['LN_VIEWS_HASBEENEDIT'] = "The Custom Search '%1' has been successfully edited.";
$content['LN_VIEWS_'] = "";
// Custom DBMappings center
$content['LN_DBMP_CENTER'] = "Database Field Mappings Options";
$content['LN_DBMP_ID'] = "ID";
$content['LN_DBMP_NAME'] = "Database Mappingname";
$content['LN_DBMP_DBMAPPINGS'] = "Database Mappings";
$content['LN_DBMP_ADD'] = "Add new Database Mapping";
$content['LN_DBMP_EDIT'] = "Edit Database Mapping";
$content['LN_DBMP_ERROR_IDNOTFOUND'] = "A Database Mapping with ID '%1' could not be found.";
$content['LN_DBMP_ERROR_INVALIDID'] = "The Database Mapping with ID '%1' is not a valid Database Mapping.";
$content['LN_DBMP_WARNDELETEMAPPING'] = "Are you sure that you want to delete the Database Mapping '%1'? This cannot be undone!";
$content['LN_DBMP_ERROR_DELSEARCH'] = "Deleting of the Database Mapping with id '%1' failed!";
$content['LN_DBMP_ERROR_HASBEENDEL'] = "The Database Mapping '%1' has been successfully deleted!";
$content['LN_DBMP_ADDEDIT'] = "Add / Edit Database Mapping";
$content['LN_DBMP_DBMAPPINGSLIST'] = "Configured Mappings";
$content['LN_DBMP_ADDMAPPING'] = "Add Field Mapping into list";
$content['LN_DBMP_ERROR_DISPLAYNAMEEMPTY'] = "The DisplayName cannot be empty.";
$content['LN_DBMP_MAPPING'] = "Mapping";
$content['LN_DBMP_MAPPING_REMOVE'] = "Remove Mapping";
$content['LN_DBMP_MAPPING_EDIT'] = "Edit Mapping";
$content['LN_DBMP_HASBEENADDED'] = "The Custom Database Mapping '%1' has been successfully added.";
$content['LN_DBMP_ERROR_NOCOLUMNS'] = "You need to add at least one column in order to add a new Custom Database Mapping.";
$content['LN_DBMP_HASBEENEDIT'] = "The Custom Database Mapping '%1' has been successfully edited.";
$content['LN_DBMP_HASBEENEDIT'] = "The Custom Database Mapping '%1' has been successfully edited.";
$content['LN_DBMP_ERROR_MISSINGFIELDNAME'] = "Missing mapping for the '%1' field.";
// Custom Sources center
$content['LN_SOURCES_CENTER'] = "Sources Options";
$content['LN_SOURCES_EDIT'] = "Edit Source";

View File

@ -37,6 +37,7 @@ $content['LN_ADMINMENU_USEROPT'] = "Users";
$content['LN_ADMINMENU_GROUPOPT'] = "Groups";
$content['LN_ADMINMENU_CHARTOPT'] = "Charts";
$content['LN_ADMINMENU_FIELDOPT'] = "Fields";
$content['LN_ADMINMENU_DBMAPPINGOPT'] = "DBMappings";
$content['LN_ADMINMENU_MSGPARSERSOPT'] = "Message Parsers";
$content['LN_ADMIN_CENTER'] = "Admin center";
$content['LN_ADMIN_UNKNOWNSTATE'] = "Unknown State";
@ -201,9 +202,34 @@ $content['LN_VIEWS_COLUMN'] = "Column";
$content['LN_VIEWS_COLUMN_REMOVE'] = "Remove Column";
$content['LN_VIEWS_HASBEENADDED'] = "The Custom View '%1' has been successfully added.";
$content['LN_VIEWS_ERROR_NOCOLUMNS'] = "You need to add at least one column in order to add a new Custom View.";
$content['LN_VIEWS_HASBEENEDIT'] = "The Custom Search '%1' has been successfully edited.";
$content['LN_VIEWS_HASBEENEDIT'] = "The Custom View '%1' has been successfully edited.";
$content['LN_VIEWS_'] = "";
// Custom DBMappings center
$content['LN_DBMP_CENTER'] = "Database Field Mappings Options";
$content['LN_DBMP_ID'] = "ID";
$content['LN_DBMP_NAME'] = "Database Mappingname";
$content['LN_DBMP_DBMAPPINGS'] = "Database Mappings";
$content['LN_DBMP_ADD'] = "Add new Database Mapping";
$content['LN_DBMP_EDIT'] = "Edit Database Mapping";
$content['LN_DBMP_ERROR_IDNOTFOUND'] = "A Database Mapping with ID '%1' could not be found.";
$content['LN_DBMP_ERROR_INVALIDID'] = "The Database Mapping with ID '%1' is not a valid Database Mapping.";
$content['LN_DBMP_WARNDELETEMAPPING'] = "Are you sure that you want to delete the Database Mapping '%1'? This cannot be undone!";
$content['LN_DBMP_ERROR_DELSEARCH'] = "Deleting of the Database Mapping with id '%1' failed!";
$content['LN_DBMP_ERROR_HASBEENDEL'] = "The Database Mapping '%1' has been successfully deleted!";
$content['LN_DBMP_ADDEDIT'] = "Add / Edit Database Mapping";
$content['LN_DBMP_DBMAPPINGSLIST'] = "Configured Mappings";
$content['LN_DBMP_ADDMAPPING'] = "Add Field Mapping into list";
$content['LN_DBMP_ERROR_DISPLAYNAMEEMPTY'] = "The DisplayName cannot be empty.";
$content['LN_DBMP_MAPPING'] = "Mapping";
$content['LN_DBMP_MAPPING_REMOVE'] = "Remove Mapping";
$content['LN_DBMP_MAPPING_EDIT'] = "Edit Mapping";
$content['LN_DBMP_HASBEENADDED'] = "The Custom Database Mapping '%1' has been successfully added.";
$content['LN_DBMP_ERROR_NOCOLUMNS'] = "You need to add at least one column in order to add a new Custom Database Mapping.";
$content['LN_DBMP_HASBEENEDIT'] = "The Custom Database Mapping '%1' has been successfully edited.";
$content['LN_DBMP_HASBEENEDIT'] = "The Custom Database Mapping '%1' has been successfully edited.";
$content['LN_DBMP_ERROR_MISSINGFIELDNAME'] = "Missing mapping for the '%1' field.";
// Custom Sources center
$content['LN_SOURCES_CENTER'] = "Sources Options";
$content['LN_SOURCES_EDIT'] = "Edit Source";

View File

@ -37,6 +37,7 @@ $content['LN_ADMINMENU_USEROPT'] = "Users";
$content['LN_ADMINMENU_GROUPOPT'] = "Groups";
$content['LN_ADMINMENU_CHARTOPT'] = "Charts";
$content['LN_ADMINMENU_FIELDOPT'] = "Fields";
$content['LN_ADMINMENU_DBMAPPINGOPT'] = "DBMappings";
$content['LN_ADMINMENU_MSGPARSERSOPT'] = "Message Parsers";
$content['LN_ADMIN_CENTER'] = "Admin center";
$content['LN_ADMIN_UNKNOWNSTATE'] = "Unknown State";
@ -204,6 +205,31 @@ $content['LN_VIEWS_ERROR_NOCOLUMNS'] = "You need to add at least one column in o
$content['LN_VIEWS_HASBEENEDIT'] = "The Custom Search '%1' has been successfully edited.";
$content['LN_VIEWS_'] = "";
// Custom DBMappings center
$content['LN_DBMP_CENTER'] = "Database Field Mappings Options";
$content['LN_DBMP_ID'] = "ID";
$content['LN_DBMP_NAME'] = "Database Mappingname";
$content['LN_DBMP_DBMAPPINGS'] = "Database Mappings";
$content['LN_DBMP_ADD'] = "Add new Database Mapping";
$content['LN_DBMP_EDIT'] = "Edit Database Mapping";
$content['LN_DBMP_ERROR_IDNOTFOUND'] = "A Database Mapping with ID '%1' could not be found.";
$content['LN_DBMP_ERROR_INVALIDID'] = "The Database Mapping with ID '%1' is not a valid Database Mapping.";
$content['LN_DBMP_WARNDELETEMAPPING'] = "Are you sure that you want to delete the Database Mapping '%1'? This cannot be undone!";
$content['LN_DBMP_ERROR_DELSEARCH'] = "Deleting of the Database Mapping with id '%1' failed!";
$content['LN_DBMP_ERROR_HASBEENDEL'] = "The Database Mapping '%1' has been successfully deleted!";
$content['LN_DBMP_ADDEDIT'] = "Add / Edit Database Mapping";
$content['LN_DBMP_DBMAPPINGSLIST'] = "Configured Mappings";
$content['LN_DBMP_ADDMAPPING'] = "Add Field Mapping into list";
$content['LN_DBMP_ERROR_DISPLAYNAMEEMPTY'] = "The DisplayName cannot be empty.";
$content['LN_DBMP_MAPPING'] = "Mapping";
$content['LN_DBMP_MAPPING_REMOVE'] = "Remove Mapping";
$content['LN_DBMP_MAPPING_EDIT'] = "Edit Mapping";
$content['LN_DBMP_HASBEENADDED'] = "The Custom Database Mapping '%1' has been successfully added.";
$content['LN_DBMP_ERROR_NOCOLUMNS'] = "You need to add at least one column in order to add a new Custom Database Mapping.";
$content['LN_DBMP_HASBEENEDIT'] = "The Custom Database Mapping '%1' has been successfully edited.";
$content['LN_DBMP_HASBEENEDIT'] = "The Custom Database Mapping '%1' has been successfully edited.";
$content['LN_DBMP_ERROR_MISSINGFIELDNAME'] = "Missing mapping for the '%1' field.";
// Custom Sources center
$content['LN_SOURCES_CENTER'] = "Sources Options";
$content['LN_SOURCES_EDIT'] = "Edit Source";

View File

@ -37,6 +37,7 @@ $content['LN_ADMINMENU_USEROPT'] = "Users";
$content['LN_ADMINMENU_GROUPOPT'] = "Groups";
$content['LN_ADMINMENU_CHARTOPT'] = "Charts";
$content['LN_ADMINMENU_FIELDOPT'] = "Fields";
$content['LN_ADMINMENU_DBMAPPINGOPT'] = "DBMappings";
$content['LN_ADMINMENU_MSGPARSERSOPT'] = "Message Parsers";
$content['LN_ADMIN_CENTER'] = "Admin center";
$content['LN_ADMIN_UNKNOWNSTATE'] = "Unknown State";
@ -202,6 +203,31 @@ $content['LN_VIEWS_ERROR_NOCOLUMNS'] = "You need to add at least one column in o
$content['LN_VIEWS_HASBEENEDIT'] = "The Custom Search '%1' has been successfully edited.";
$content['LN_VIEWS_'] = "";
// Custom DBMappings center
$content['LN_DBMP_CENTER'] = "Database Field Mappings Options";
$content['LN_DBMP_ID'] = "ID";
$content['LN_DBMP_NAME'] = "Database Mappingname";
$content['LN_DBMP_DBMAPPINGS'] = "Database Mappings";
$content['LN_DBMP_ADD'] = "Add new Database Mapping";
$content['LN_DBMP_EDIT'] = "Edit Database Mapping";
$content['LN_DBMP_ERROR_IDNOTFOUND'] = "A Database Mapping with ID '%1' could not be found.";
$content['LN_DBMP_ERROR_INVALIDID'] = "The Database Mapping with ID '%1' is not a valid Database Mapping.";
$content['LN_DBMP_WARNDELETEMAPPING'] = "Are you sure that you want to delete the Database Mapping '%1'? This cannot be undone!";
$content['LN_DBMP_ERROR_DELSEARCH'] = "Deleting of the Database Mapping with id '%1' failed!";
$content['LN_DBMP_ERROR_HASBEENDEL'] = "The Database Mapping '%1' has been successfully deleted!";
$content['LN_DBMP_ADDEDIT'] = "Add / Edit Database Mapping";
$content['LN_DBMP_DBMAPPINGSLIST'] = "Configured Mappings";
$content['LN_DBMP_ADDMAPPING'] = "Add Field Mapping into list";
$content['LN_DBMP_ERROR_DISPLAYNAMEEMPTY'] = "The DisplayName cannot be empty.";
$content['LN_DBMP_MAPPING'] = "Mapping";
$content['LN_DBMP_MAPPING_REMOVE'] = "Remove Mapping";
$content['LN_DBMP_MAPPING_EDIT'] = "Edit Mapping";
$content['LN_DBMP_HASBEENADDED'] = "The Custom Database Mapping '%1' has been successfully added.";
$content['LN_DBMP_ERROR_NOCOLUMNS'] = "You need to add at least one column in order to add a new Custom Database Mapping.";
$content['LN_DBMP_HASBEENEDIT'] = "The Custom Database Mapping '%1' has been successfully edited.";
$content['LN_DBMP_HASBEENEDIT'] = "The Custom Database Mapping '%1' has been successfully edited.";
$content['LN_DBMP_ERROR_MISSINGFIELDNAME'] = "Missing mapping for the '%1' field.";
// Custom Sources center
$content['LN_SOURCES_CENTER'] = "Sources Options";
$content['LN_SOURCES_EDIT'] = "Edit Source";

View File

@ -0,0 +1,133 @@
<!-- INCLUDE include_header.html -->
<!-- IF ISERROR="true" -->
<br><br>
<center>
<div class="table_with_border_second ErrorMsg" style="width:600px">
<div class="PriorityError">{LN_GEN_ERRORDETAILS}</div>
<p>{ERROR_MSG}</p>
</div>
<br><br>
<a href="javascript:history.back();" target="_top">{LN_GEN_ERRORRETURNPREV}</a>
</center>
<br><br>
<!-- ENDIF ISERROR="true" -->
<table width="100%" cellpadding="0" cellspacing="0" border="0" align="center" class="with_border">
<tr>
<td colspan="3" class="title" nowrap><B>{LN_DBMP_CENTER}</B></td>
</tr>
<tr>
<td align="center" class="line2">
<br><br>
<!-- IF LISTDBMAPPINGS="true" -->
<table border="0" cellpadding="2" cellspacing="1" bgcolor="#DDDDDD" width="750" class="with_border_alternate">
<tr>
<td align="center" width="50" class="cellmenu1"><b>{LN_DBMP_ID}</b></td>
<td align="center" width="150" class="cellmenu1"><b>{LN_DBMP_NAME}</b></td>
<td align="center" width="275" class="cellmenu1"><b>{LN_DBMP_DBMAPPINGS}</b></td>
<td align="center" width="125" class="cellmenu1"><b>{LN_GEN_ACTIONS}</b></td>
</tr>
<!-- BEGIN DBMP -->
<tr>
<td align="center" class="{cssclass}"><b>{ID}</b></td>
<td align="left" class="{cssclass}">
<!-- IF ActionsAllowed="true" -->
<a href="{BASEPATH}admin/dbmappings.php?op=edit&id={ID}">{DisplayName}</a>
<!-- ENDIF ActionsAllowed="true" -->
<!-- IF ActionsAllowed!="true" -->
<b>{DisplayName}</b>
<!-- ENDIF ActionsAllowed!="true" -->
</td>
<td align="left" class="{cssclass}">
<!-- BEGIN MYMAPPINGS -->{CaptionSeperator}{FieldCaption} => {FieldMapping}<!-- END MYMAPPINGS -->
</td>
<td align="center" class="{cssclass}">
<!-- IF ActionsAllowed="true" -->
&nbsp;<a href="{BASEPATH}admin/dbmappings.php?op=edit&id={ID}"><img src="{MENU_EDIT}" width="16" title="{LN_DBMP_EDIT}"></a>
&nbsp;<a href="{BASEPATH}admin/dbmappings.php?op=delete&id={ID}"><img src="{MENU_DELETE}" width="16" title="{LN_DBMP_DELETE}"></a>
<!-- ENDIF ActionsAllowed="true" -->
<!-- IF ActionsAllowed!="true" -->
&nbsp;<img src="{MENU_EDIT_DISABLED}" width="16" title="{LN_GEN_DISABLED}">
&nbsp;<img src="{MENU_DELETE_DISABLED}" width="16" title="{LN_GEN_DISABLED}">
<!-- ENDIF ActionsAllowed!="true" -->
</td>
</tr>
<!-- END DBMP -->
<tr>
<td align="center" colspan="5" class="line0"><b><a href="{BASEPATH}admin/dbmappings.php?op=add"><img src="{MENU_ADD}" title="{LN_DBMP_ADD}">&nbsp;{LN_DBMP_ADD}</a></b></td>
</tr>
</table>
<!-- ENDIF LISTDBMAPPINGS="true" -->
<!-- IF ISEDITORNEWDBMP="true" -->
<form action="{BASEPATH}admin/dbmappings.php{FormUrlAddOP}" method="post">
<table border="0" cellpadding="1" cellspacing="1" bgcolor="#DDDDDD" width="700" class="with_border_alternate">
<tr>
<td align="center" class="cellmenu1" colspan="2"><b>{LN_DBMP_ADDEDIT}</b></td>
</tr>
<tr>
<td align="left" class="cellmenu2" width="250"><b>{LN_DBMP_NAME}</b></td>
<td align="right" class="line1" width="350"><input type="text" name="DisplayName" size="55" maxlength="255" value="{DisplayName}"></td>
</tr>
</table>
<br>
<table border="0" cellpadding="1" cellspacing="1" bgcolor="#DDDDDD" width="600" class="with_border_alternate">
<tr>
<td align="center" class="cellmenu1" colspan="4"><b>{LN_DBMP_DBMAPPINGSLIST}</b></td>
</tr>
<!-- BEGIN SUBMAPPINGS -->
<tr>
<td align="left" class="cellmenu2" width="150"><b>{LN_DBMP_MAPPING} {ZAEHLER}: </b></td>
<td align="left" class="{colcssclass}" width="200">
<input type="hidden" name="Mappings[]" value="{MappingFieldID}">
<b>{MappingCaption} (<I>{MappingInternalID}</I>)</b>
</td>
<td align="left" class="{colcssclass}" width="200">
<input type="text" name="{MappingFieldID}" size="32" maxlength="255" value="{MappingDbFieldName}">
</td>
<td align="center" class="{colcssclass}" width="150">
<button name="subop_edit" type="submit" value="{MappingFieldID}" class="borderlessbuttons" title="{LN_DBMP_MAPPING_EDIT}"><img src="{MENU_EDIT}" width="16" alt="{LN_DBMP_MAPPING_EDIT}"></button>
<button name="subop_moveup" type="submit" value="{MappingFieldID}" class="borderlessbuttons" title="{LN_DBMP_MAPPING_MOVEUP}"><img src="{MENU_MOVE_UP}" width="16" alt="{LN_DBMP_MAPPING_REMOVE}"></button>
<button name="subop_movedown" type="submit" value="{MappingFieldID}" class="borderlessbuttons" title="{LN_DBMP_MAPPING_MOVEDOWN}"><img src="{MENU_MOVE_DOWN}" width="16" alt="{LN_DBMP_MAPPING_REMOVE}"></button>
<button name="subop_delete" type="submit" value="{MappingFieldID}" class="borderlessbuttons" title="{LN_DBMP_MAPPING_REMOVE}"><img src="{MENU_DELETE}" width="16" alt="{LN_DBMP_MAPPING_REMOVE}"></button>
</td>
</tr>
<!-- END SUBMAPPINGS -->
<tr>
<td align="center" class="line2" colspan="4">
<select name="newmapping" size="1" STYLE="width: 200px">
<!-- BEGIN FIELDS -->
<option value="{FieldID}" {group_selected}>{FieldCaption}</option>
<!-- END FIELDS -->
</select>
<input type="submit" name="subop" value="{LN_DBMP_ADDMAPPING}">
</td>
</tr>
</table>
<br>
<table border="0" cellpadding="1" cellspacing="1" bgcolor="#DDDDDD" width="600" class="with_border_alternate">
<tr>
<td align="center" colspan="2" class="line0">
<br>
<input type="submit" value="{DBMP_SENDBUTTON}">
<input type="hidden" name="op" value="{DBMP_FORMACTION}">
<input type="hidden" name="id" value="{DBMPID}">
<br><br>
</td>
</tr>
</table>
</form>
<!-- ENDIF ISEDITORNEWDBMP="true" -->
<br><br>
</td>
</tr>
</table>
<!-- INCLUDE include_footer.html -->

View File

@ -12,8 +12,9 @@
<td class="topmenu2" nowrap align="center" width="125"><a class="topmenu1_link" href="{BASEPATH}admin/parsers.php" target="_top"><img align="left" src="{MENU_INTERNAL}" width="16" height="16" vspace="0">{LN_ADMINMENU_MSGPARSERSOPT}</a></td>
<!-- IF SESSION_ISADMIN="1" -->
<td class="topmenu2" nowrap align="center" width="80"><a class="topmenu1_link" href="{BASEPATH}admin/users.php" target="_top"><img align="left" src="{MENU_ADMINUSERS}" width="16" height="16" vspace="0">{LN_ADMINMENU_USEROPT}</a></td>
<td class="topmenu2" nowrap align="center" width="80"><a class="topmenu1_link" href="{BASEPATH}admin/groups.php" target="_top"><img align="left" src="{MENU_ADMINGROUPS}" width="16" height="16" vspace="0">{LN_ADMINMENU_GROUPOPT}</a></td>
<td class="topmenu2" nowrap align="center" width="100"><a class="topmenu1_link" href="{BASEPATH}admin/dbmappings.php" target="_top"><img align="left" src="{MENU_INTERNAL}" width="16" height="16" vspace="0">{LN_ADMINMENU_DBMAPPINGOPT}</a></td>
<td class="topmenu2" nowrap align="center" width="70"><a class="topmenu1_link" href="{BASEPATH}admin/users.php" target="_top"><img align="left" src="{MENU_ADMINUSERS}" width="16" height="16" vspace="0">{LN_ADMINMENU_USEROPT}</a></td>
<td class="topmenu2" nowrap align="center" width="70"><a class="topmenu1_link" href="{BASEPATH}admin/groups.php" target="_top"><img align="left" src="{MENU_ADMINGROUPS}" width="16" height="16" vspace="0">{LN_ADMINMENU_GROUPOPT}</a></td>
<!-- ENDIF SESSION_ISADMIN="1" -->
<!-- IF SESSION_LOGGEDIN="true" -->

View File

@ -344,7 +344,16 @@
<table border="0" cellpadding="1" cellspacing="1" width="600" align="center" class="with_border">
<tr>
<td align="left" class="cellmenu2" width="250" nowrap><b>{LN_CFG_DBTABLETYPE}</b></td>
<td align="right" class="line0" width="350"><input type="text" name="SourceDBTableType" size="40" maxlength="255" value="{SourceDBTableType}"></td>
<td align="right" class="line0" width="350">
<select name="SourceDBTableType" size="1">
<!-- BEGIN DBMAPPINGS -->
<option {selected} value="{type}">{DisplayName}</option>
<!-- END DBMAPPINGS -->
</select>
<!-- <input type="text" name="SourceDBTableType" size="40" maxlength="255" value="{SourceDBTableType}"> -->
</td>
</tr>
<tr>
<td align="left" class="cellmenu2" nowrap><b>{LN_CFG_DBSERVER}</b></td>

View File

@ -401,7 +401,13 @@
<table border="0" cellpadding="1" cellspacing="1" width="600" align="center" class="with_border">
<tr>
<td align="left" class="cellmenu2" width="150" nowrap><b>{LN_CFG_DBTABLETYPE}</b></td>
<td align="right" class="line0" width="100%"><input type="text" name="SourceDBTableType" size="40" maxlength="255" value="{SourceDBTableType}"></td>
<td align="right" class="line0" width="100%">
<select name="SourceDBTableType" size="1">
<!-- BEGIN DBMAPPINGS -->
<option {selected} value="{type}">{DisplayName}</option>
<!-- END DBMAPPINGS -->
</select>
</td>
</tr>
<tr>
<td align="left" class="cellmenu2" nowrap><b>{LN_CFG_DBSERVER}</b></td>