diff --git a/ChangeLog b/ChangeLog index 80bb8a7..128362e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,17 @@ --------------------------------------------------------------------------- +Version 2.5.24 (beta), 2009-01-27 +- Added italian language files, translated by Luigi Rosa +- Improved loading of language files, to avoid display error's if + translation is incomplete. +- Enhanced database performance of MYSQL and PDO logstream source drivers. + Searching and paging through results is much faster on larger + databases now. +- Enhanced Pager performance on index and detail page. +- Hardened db logstream classes against invalid parameters. +- Added missing include file for debug functions +- Debug Messages are now printed well formated below the site content +- Improved Documentation +--------------------------------------------------------------------------- Version 2.5.23 (beta), 2008-12-23 - Fixed typo in textual month detection, which caused date detection problems in december month only. diff --git a/src/classes/logstreamdb.class.php b/src/classes/logstreamdb.class.php index fda8257..25eddc0 100644 --- a/src/classes/logstreamdb.class.php +++ b/src/classes/logstreamdb.class.php @@ -61,6 +61,7 @@ class LogStreamDB extends LogStream { private $_currentPageNumber = 0; private $_SQLwhereClause = ""; + private $_myDBQuery = null; // Constructor public function LogStreamDB($streamConfigObj) { @@ -120,6 +121,7 @@ class LogStreamDB extends LogStream { { if ($this->_dbhandle) mysql_close($this->_dbhandle); + $this->_dbhandle = null; return SUCCESS; } @@ -241,7 +243,7 @@ class LogStreamDB extends LogStream { } } - if ( $ret == SUCCESS ) + if ( $ret == SUCCESS && $this->_arrProperties != null ) { // Init and set variables foreach ( $this->_arrProperties as $property ) @@ -313,7 +315,7 @@ class LogStreamDB extends LogStream { switch ($mode) { case EnumSeek::UID: - if ( $uID == UID_UNKNOWN ) // set uID to first ID! +// if ( $uID == UID_UNKNOWN ) // set uID to first ID! { // No buffer? then read from DB! if ( $this->bufferedRecords == null ) @@ -325,7 +327,7 @@ class LogStreamDB extends LogStream { $uID = $this->bufferedRecords[ $this->_currentRecordNum ]; } } - else +/* else { // Obtain fieldname for uID global $dbmapping; @@ -398,6 +400,7 @@ class LogStreamDB extends LogStream { // Delete buffered records, then they will be read automatically in ReadNext() $this->ResetBufferedRecords(); } + */ break; } @@ -963,11 +966,11 @@ class LogStreamDB extends LogStream { return SUCCESS; } - /* * This function only reads the uID values from the database. Using this method, * it will be much faster to find the starting uID point we need when paging is used. */ +/* OBSELETE CODE private function ReadNextIDsFromDB() { global $querycount; @@ -1012,6 +1015,24 @@ class LogStreamDB extends LogStream { // return success state if reached this point! return SUCCESS; } +*/ + + /* + * Destroy the SQL QUery! + */ + private function DestroyMainSQLQuery() + { + // create query if necessary! + if ( $this->_myDBQuery != null ) + { + // Free Query ressources + mysql_free_result ($this->_myDBQuery); + $this->_myDBQuery = null; + } + + // return success state if reached this point! + return SUCCESS; + } /* * This helper function will read the next records into the buffer. @@ -1020,25 +1041,24 @@ class LogStreamDB extends LogStream { { global $querycount; - // Get SQL Statement - $szSql = $this->CreateSQLStatement($uID); + // Clear SQL Query first! + $this->DestroyMainSQLQuery(); + + // return error if there was one! + if ( ($res = $this->CreateMainSQLQuery($uID)) != SUCCESS ) + return $res; // Append LIMIT clause - $szSql .= " LIMIT " . $this->_currentRecordStart . ", " . $this->_logStreamConfigObj->RecordsPerQuery; -//echo $szSql . "
"; - - // Perform Database Query - $myquery = mysql_query($szSql, $this->_dbhandle); - if ( !$myquery ) - { - $this->PrintDebugError("Invalid SQL: ".$szSql); - return ERROR_DB_QUERYFAILED; - } +// $szSql .= " LIMIT " . $this->_currentRecordStart . ", " . $this->_logStreamConfigObj->RecordsPerQuery; // Copy rows into the buffer! $iBegin = $this->_currentRecordNum; - while ($myRow = mysql_fetch_array($myquery, MYSQL_ASSOC)) + while ($myRow = mysql_fetch_array($this->_myDBQuery, MYSQL_ASSOC)) { + // Check if result was successfull! + if ( $myRow === FALSE || !$myRow ) + break; + $this->bufferedRecords[$iBegin] = $myRow; $iBegin++; } @@ -1049,7 +1069,7 @@ class LogStreamDB extends LogStream { // --- // Free Query ressources - mysql_free_result ($myquery); +// mysql_free_result ($myquery); // Only obtain count if enabled and not done before if ( $this->_logStreamConfigObj->DBEnableRowCounting && $this->_totalRecordCount == -1 ) @@ -1067,6 +1087,47 @@ class LogStreamDB extends LogStream { return SUCCESS; } + /* + * Create the SQL QUery! + */ + private function CreateMainSQLQuery($uID) + { + global $querycount; + + // Get SQL Statement + $szSql = $this->CreateSQLStatement($uID); + + // --- Append LIMIT + $szSql .= " LIMIT " . $this->_logStreamConfigObj->RecordsPerQuery; + // --- + + // Perform Database Query + $this->_myDBQuery = mysql_query($szSql, $this->_dbhandle); + if ( !$this->_myDBQuery ) + { + $this->PrintDebugError("Invalid SQL: ".$szSql); + return ERROR_DB_QUERYFAILED; + } + else + { + // Skip one entry in this case + if ( $this->_currentRecordStart > 0 ) + { + // Throw away + $myRow = mysql_fetch_array($this->_myDBQuery, MYSQL_ASSOC); + } + } + + // Increment for the Footer Stats + $querycount++; + + // Output Debug Informations + OutputDebugMessage("LogStreamDB|CreateMainSQLQuery: Created SQL Query:
" . $szSql, DEBUG_DEBUG); + + // return success state if reached this point! + return SUCCESS; + } + /* * Creates the SQL Statement we are going to use! */ @@ -1105,8 +1166,19 @@ class LogStreamDB extends LogStream { // Append precreated where clause $sqlString .= $this->_SQLwhereClause; - // Output SQL Query into DEBUG -// OutputDebugMessage( "CreateSQLStatement result: " . $sqlString ); + // Append UID QUERY! + if ( $uID != -1 ) + { + if ( $this->_readDirection == EnumReadDirection::Forward ) + $myOperator = ">="; + else + $myOperator = "<="; + + if ( strlen($this->_SQLwhereClause) > 0 ) + $sqlString .= " AND " . $dbmapping[$szTableType][SYSLOG_UID] . " $myOperator $uID"; + else + $sqlString .= " WHERE " . $dbmapping[$szTableType][SYSLOG_UID] . " $myOperator $uID"; + } // Append ORDER clause if ( $this->_readDirection == EnumReadDirection::Forward ) diff --git a/src/classes/logstreamdisk.class.php b/src/classes/logstreamdisk.class.php index 1791256..3d7ae46 100644 --- a/src/classes/logstreamdisk.class.php +++ b/src/classes/logstreamdisk.class.php @@ -288,8 +288,11 @@ class LogStreamDisk extends LogStream { // Init variables dynamically $line = ''; - foreach ( $this->_arrProperties as $property ) - $arrProperitesOut[$property] = ''; + if ( $this->_arrProperties != null ) + { + foreach ( $this->_arrProperties as $property ) + $arrProperitesOut[$property] = ''; + } do { $pos = -1; diff --git a/src/classes/logstreampdo.class.php b/src/classes/logstreampdo.class.php index 5ad98f5..dc12f46 100644 --- a/src/classes/logstreampdo.class.php +++ b/src/classes/logstreampdo.class.php @@ -271,7 +271,7 @@ class LogStreamPDO extends LogStream { } } - if ( $ret == SUCCESS ) + if ( $ret == SUCCESS && $this->_arrProperties != null ) { // Init and set variables foreach ( $this->_arrProperties as $property ) @@ -712,7 +712,10 @@ class LogStreamPDO extends LogStream { return ERROR_DB_QUERYFAILED; if ( $this->_myDBQuery->rowCount() == 0 ) + { + $this->_myDBQuery = null; return ERROR_NOMORERECORDS; + } // Initialize Array variable $aResult = array(); @@ -728,6 +731,9 @@ class LogStreamPDO extends LogStream { } } + // Delete handle + $this->_myDBQuery = null; + // return finished array if ( count($aResult) > 0 ) return $aResult; @@ -966,43 +972,38 @@ class LogStreamPDO extends LogStream { { global $querycount; - // create query if necessary! -// if ( $this->_myDBQuery == null ) + // Get SQL Statement + $szSql = $this->CreateSQLStatement($uID); + + // --- Append LIMIT if supported by the driver! Why the hell do we still have no unified solution for this crap in the sql language?! + if ( $this->_logStreamConfigObj->DBType == DB_MYSQL ) + $szSql .= " LIMIT " . $this->_logStreamConfigObj->RecordsPerQuery; + else if ( $this->_logStreamConfigObj->DBType == DB_PGSQL ) + $szSql .= " LIMIT " . $this->_logStreamConfigObj->RecordsPerQuery; + // --- + + // Perform Database Query + $this->_myDBQuery = $this->_dbhandle->query($szSql); + if ( !$this->_myDBQuery ) { - // Get SQL Statement - $szSql = $this->CreateSQLStatement($uID); - - // --- Append LIMIT if supported by the driver! Why the hell do we still have no unified solution for this crap in the sql language?! - if ( $this->_logStreamConfigObj->DBType == DB_MYSQL ) - $szSql .= " LIMIT " . $this->_logStreamConfigObj->RecordsPerQuery; -// $szSql .= " LIMIT " . $this->_currentRecordStart . ", " . $this->_logStreamConfigObj->RecordsPerQuery; - else if ( $this->_logStreamConfigObj->DBType == DB_PGSQL ) - $szSql .= " LIMIT " . $this->_logStreamConfigObj->RecordsPerQuery; -// $szSql .= " LIMIT " . $this->_logStreamConfigObj->RecordsPerQuery . " OFFSET " . $this->_currentRecordStart; -// echo $szSql . "
"; - // --- - - // Perform Database Query - $this->_myDBQuery = $this->_dbhandle->query($szSql); - if ( !$this->_myDBQuery ) - { - $this->PrintDebugError( "Invalid SQL: ".$szSql . "

Errorcode: " . $this->_dbhandle->errorCode() ); - return ERROR_DB_QUERYFAILED; - } - else - { - // Skip one entry in this case - if ( $this->_currentRecordStart > 0 ) - { - // Throw away - $myRow = $this->_myDBQuery->fetch(PDO::FETCH_ASSOC); - } - - } - - // Increment for the Footer Stats - $querycount++; + $this->PrintDebugError( "Invalid SQL: ".$szSql . "

Errorcode: " . $this->_dbhandle->errorCode() ); + return ERROR_DB_QUERYFAILED; } + else + { + // Skip one entry in this case + if ( $this->_currentRecordStart > 0 ) + { + // Throw away + $myRow = $this->_myDBQuery->fetch(PDO::FETCH_ASSOC); + } + } + + // Increment for the Footer Stats + $querycount++; + + // Output Debug Informations + OutputDebugMessage("LogStreamDB|CreateMainSQLQuery: Created SQL Query:
" . $szSql, DEBUG_DEBUG); // return success state if reached this point! return SUCCESS; @@ -1030,20 +1031,18 @@ class LogStreamPDO extends LogStream { */ private function ReadNextRecordsFromDB($uID) { + global $querycount; + // Clear SQL Query first! $this->DestroyMainSQLQuery(); - // Create query if necessary -// if ( $this->_myDBQuery == null ) - { - // return error if there was one! - if ( ($res = $this->CreateMainSQLQuery($uID)) != SUCCESS ) - return $res; + // return error if there was one! + if ( ($res = $this->CreateMainSQLQuery($uID)) != SUCCESS ) + return $res; - // return specially with NO RECORDS when 0 records are returned! Otherwise it will be -1 - if ( $this->_myDBQuery->rowCount() == 0 ) - return ERROR_NOMORERECORDS; - } + // return specially with NO RECORDS when 0 records are returned! Otherwise it will be -1 + if ( $this->_myDBQuery->rowCount() == 0 ) + return ERROR_NOMORERECORDS; // Copy rows into the buffer! $iBegin = $this->_currentRecordNum; @@ -1070,6 +1069,9 @@ class LogStreamPDO extends LogStream { return ERROR_NOMORERECORDS; // --- + // Increment for the Footer Stats + $querycount++; + // return success state if reached this point! return SUCCESS; } diff --git a/src/details.php b/src/details.php index 7266fe3..b0c7289 100644 --- a/src/details.php +++ b/src/details.php @@ -64,6 +64,8 @@ else $content['uid_fromgetrequest'] = $content['uid_current']; // Init Pager variables +$content['uid_previous'] = UID_UNKNOWN; +$content['uid_next'] = UID_UNKNOWN; $content['uid_first'] = UID_UNKNOWN; $content['uid_last'] = UID_UNKNOWN; $content['main_pagerenabled'] = false; @@ -71,11 +73,13 @@ $content['main_pager_first_found'] = false; $content['main_pager_previous_found'] = false; $content['main_pager_next_found'] = false; $content['main_pager_last_found'] = false; +// --- -// Set Default reading direction +// --- If set read direction property! + +// Set direction default $content['read_direction'] = EnumReadDirection::Backward; -// If set read direction property! if ( isset($_GET['direction']) ) { if ( $_GET['direction'] == "next" ) @@ -88,11 +92,24 @@ if ( isset($_GET['direction']) ) $content['skiprecords'] = 1; $content['read_direction'] = EnumReadDirection::Forward; } + else if ( $_GET['direction'] == "desc" ) + { + $content['read_direction'] = EnumReadDirection::Forward; + } } +// Read filter property in + if ( isset($_POST['filter']) ) + $myfilter = $_POST['filter']; + else if ( isset($_GET['filter']) ) + $myfilter = $_GET['filter']; + else + $myfilter = ""; +// --- + // Init Sorting variables $content['sorting'] = ""; -$content['searchstr'] = ""; +$content['searchstr'] = $myfilter; $content['highlightstr'] = ""; $content['EXPAND_HIGHLIGHT'] = "false"; @@ -104,7 +121,7 @@ if ( isset($content['Sources'][$currentSourceID]) ) // && $content['uid_current' // Create LogStream Object $stream = $stream_config->LogStreamFactory($stream_config); -// $stream->SetFilter($content['searchstr']); + $stream->SetFilter($content['searchstr']); // --- Init the fields we need foreach($fields as $mycolkey => $myfield) @@ -122,7 +139,7 @@ if ( isset($content['Sources'][$currentSourceID]) ) // && $content['uid_current' $res = $stream->Open( $content['AllColumns'], true ); if ( $res == SUCCESS ) { - // TODO Implement ORDER + // Set Read direction $stream->SetReadDirection($content['read_direction']); // Set current ID and init Counter @@ -279,54 +296,92 @@ if ( isset($content['Sources'][$currentSourceID]) ) // && $content['uid_current' { // Enable Pager in any case here! $content['main_pagerenabled'] = true; -/* + // --- Handle uid_first page button - if ( $content['uid_fromgetrequest'] == $content['uid_first'] ) + if ( $content['uid_fromgetrequest'] == $content['uid_first'] && $content['read_direction'] != EnumReadDirection::Forward ) $content['main_pager_first_found'] = false; else { // Probe next item ! $ret = $stream->ReadNext($uID, $tmpArray); - if ( $ret == SUCCESS ) - $content['main_pager_first_found'] = true; + + if ( $content['read_direction'] == EnumReadDirection::Backward ) + { + if ( $content['uid_fromgetrequest'] != UID_UNKNOWN ) + $content['main_pager_first_found'] = true; + else + $content['main_pager_first_found'] = false; + } else - $content['main_pager_first_found'] = false; + { + if ( $ret == SUCCESS && $uID != $content['uid_fromgetrequest']) + $content['main_pager_first_found'] = true; + else + $content['main_pager_first_found'] = false; + } } // --- -*/ + + // --- Handle uid_last page button + if ( $content['uid_fromgetrequest'] == $content['uid_last'] && $content['read_direction'] != EnumReadDirection::Backward ) + $content['main_pager_last_found'] = false; + else + { + // Probe next item ! + $ret = $stream->ReadNext($uID, $tmpArray); + + if ( $content['read_direction'] == EnumReadDirection::Forward ) + { + if ( $ret != SUCCESS || $uID != $content['uid_current'] ) + $content['main_pager_last_found'] = true; + else + $content['main_pager_last_found'] = false; + } + else + { + if ( $ret == SUCCESS && $uID != $content['uid_current'] ) + $content['main_pager_last_found'] = true; + else + $content['main_pager_last_found'] = false; + } + +//echo $content['uid_fromgetrequest'] . "!
"; +//echo $uID . "!" . $ret . "
"; +//echo $content['uid_current'] ."==". $content['uid_last'] . "
"; + + } + // --- + // --- Handle uid_last page button // Option the last UID from the stream! - $content['uid_last'] = $stream->GetLastPageUID(); - $content['uid_first'] = $stream->GetFirstPageUID(); +// $content['uid_last'] = $stream->GetLastPageUID(); +// $content['uid_first'] = $stream->GetFirstPageUID(); - // --- Handle uid_first page button - if ( $content['uid_current'] == $content['uid_first'] ) + // --- Handle uid_first and uid_previousbutton + if ( $content['uid_current'] == $content['uid_first'] || !$content['main_pager_first_found'] ) + { $content['main_pager_first_found'] = false; + $content['main_pager_previous_found'] = false; + } else + { $content['main_pager_first_found'] = true; + $content['main_pager_previous_found'] = true; + } // --- - - // if we found a last uid, and if it is not the current one (which means we already are on the last page ;)! - if ( $content['uid_last'] != -1 && $content['uid_last'] != $content['uid_current']) - $content['main_pager_last_found'] = true; - else - $content['main_pager_last_found'] = false; - // --- - - // --- Handle uid_next page button - if ( $content['uid_current'] != $content['uid_last'] ) - $content['main_pager_next_found'] = true; - else + // --- Handle uid_next and uid_last button + if ( /*$content['uid_current'] == $content['uid_last'] ||*/ !$content['main_pager_last_found'] ) + { $content['main_pager_next_found'] = false; - // --- - - // --- Handle uid_previous page button - if ( $content['main_pager_first_found'] == true && $content['uid_current'] != $content['uid_first'] ) - $content['main_pager_previous_found'] = true; + $content['main_pager_last_found'] = false; + } else - $content['main_pager_previous_found'] = false; - // --- + { + $content['main_pager_next_found'] = true; + $content['main_pager_last_found'] = true; + } + // --- } else // Disable pager in this case! $content['main_pagerenabled'] = false; diff --git a/src/include/functions_common.php b/src/include/functions_common.php index 68c49d2..5048d1f 100644 --- a/src/include/functions_common.php +++ b/src/include/functions_common.php @@ -1031,12 +1031,23 @@ function IncludeLanguageFile( $langfile ) { global $LANG, $LANG_EN; - if ( file_exists( $langfile ) ) - include( $langfile ); + // If english is not selected, we load ENGLISH first - then overwrite with configured language + if ( $LANG != "en" ) + $langengfile = str_replace( $LANG, $LANG_EN, $langfile ); else + $langengfile = $langfile; + if ( file_exists($langengfile) ) + include( $langengfile ); + else + DieWithErrorMsg( "FATAL Error initialzing sublanguage system. Please make sure that all files have been uploaded correctly." ); + + // If nto english, load the additional translations + if ( $LANG != "en" ) { - $langfile = str_replace( $LANG, $LANG_EN, $langfile ); - include( $langfile ); + if ( file_exists( $langfile ) ) + include( $langfile ); + else + OutputDebugMessage("FATAL Error reading the configured language $LANG. Please make sure that all files have been uploaded correctly.", DEBUG_ERROR); } } diff --git a/src/include/functions_frontendhelpers.php b/src/include/functions_frontendhelpers.php index f288124..10c7961 100644 --- a/src/include/functions_frontendhelpers.php +++ b/src/include/functions_frontendhelpers.php @@ -234,13 +234,17 @@ function GetFormatedDate($evttimearray) function OutputDebugMessage($szDbg, $szDbgLevel = DEBUG_INFO) { + global $content; + // Check if we should print the Error! if ( GetConfigSetting("MiscShowDebugMsg", 0, CFGLEVEL_USER) == 1 ) { - print(""); - print(""); - print(""); - print("
Debugmessage: " . $szDbg . "

"); + $content['DEBUGMSG'][] = array( + "DBGLEVEL" => $szDbgLevel, + "DBGLEVELTXT" => GetDebugModeString($szDbgLevel), + "DBGLEVELBG" => GetDebugBgColor($szDbgLevel), + "DBGMSG" => "$szDbg" + ); } // Check if the user wants to syslog the error! @@ -250,6 +254,63 @@ function OutputDebugMessage($szDbg, $szDbgLevel = DEBUG_INFO) } } +function GetDebugBgColor( $szDebugMode ) +{ + global $severity_colors; + + switch ( $szDebugMode ) + { + case DEBUG_ULTRADEBUG: + $szReturn = $severity_colors[SYSLOG_DEBUG]; + break; + case DEBUG_DEBUG: + $szReturn = $severity_colors[SYSLOG_INFO]; + break; + case DEBUG_INFO: + $szReturn = $severity_colors[SYSLOG_NOTICE]; + break; + case DEBUG_WARN: + $szReturn = $severity_colors[SYSLOG_WARNING]; + break; + case DEBUG_ERROR: + $szReturn = $severity_colors[SYSLOG_ERR]; + break; + default: + $szReturn = $severity_colors[SYSLOG_NOTICE]; + } + + // Return string result + return $szReturn; +} + +function GetDebugModeString( $szDebugMode ) +{ + switch ( $szDebugMode ) + { + case DEBUG_ULTRADEBUG: + $szReturn = STR_DEBUG_ULTRADEBUG; + break; + case DEBUG_DEBUG: + $szReturn = STR_DEBUG_DEBUG; + break; + case DEBUG_INFO: + $szReturn = STR_DEBUG_INFO; + break; + case DEBUG_WARN: + $szReturn = STR_DEBUG_WARN; + break; + case DEBUG_ERROR: + $szReturn = STR_DEBUG_ERROR; + break; + default: + $szReturn = STR_DEBUG_INFO; + } + + // Return string result + return $szReturn; +} + + function GetPriorityFromDebugLevel( $DebugLevel ) { switch ( $DebugLevel ) diff --git a/src/index.php b/src/index.php index e68f8fe..ff91ad1 100644 --- a/src/index.php +++ b/src/index.php @@ -99,7 +99,7 @@ else $content['EXPORT_ENABLED'] = true; // Init Pager variables -// $content['uid_previous'] = UID_UNKNOWN; +$content['uid_previous'] = UID_UNKNOWN; $content['uid_next'] = UID_UNKNOWN; $content['uid_first'] = UID_UNKNOWN; $content['uid_last'] = UID_UNKNOWN; @@ -642,6 +642,10 @@ if ( isset($content['Sources'][$currentSourceID]) ) $counter++; // --- Extra Loop to get the next entry! + + // temporary store the current last $uID + $lastUid = $uID; + do { $ret = $stream->ReadNext($uID, $logArray); @@ -651,14 +655,15 @@ if ( isset($content['Sources'][$currentSourceID]) ) //print_r ( $content['syslogmessages'] ); // Move below processing - Read First and LAST UID's before start reading the stream! - $content['uid_last'] = $stream->GetLastPageUID(); - $content['uid_first'] = $stream->GetFirstPageUID(); +// $content['uid_last'] = $stream->GetLastPageUID(); +/// $content['uid_first'] = $stream->GetFirstPageUID(); if ( $content['main_recordcount'] == -1 || $content['main_recordcount'] > $content['CurrentViewEntriesPerPage'] ) { // Enable Pager in any case here! $content['main_pagerenabled'] = true; +/* // temporary store the current last $uID $lastUid = $uID; @@ -675,7 +680,9 @@ if ( isset($content['Sources'][$currentSourceID]) ) //echo $content['uid_next'] . "!!!"; } // --- +*/ +/* // --- Handle uid_previous page button if ( $content['uid_current'] != UID_UNKNOWN ) { @@ -700,9 +707,71 @@ if ( isset($content['Sources'][$currentSourceID]) ) $content['main_pager_previous_found'] = false; //echo $content['uid_previous']; // --- - - // --- Handle uid_last page button +*/ + + // --- Handle uid_previous page button + if ( $content['read_direction'] == EnumReadDirection::Forward ) + { + if ( $ret == SUCCESS ) + { + // Try to read the next one! + $ret = $stream->ReadNext($uID, $tmp); + if ( $ret == SUCCESS ) + $content['main_pager_previous_found'] = true; + else + $content['main_pager_previous_found'] = false; + } + else + $content['main_pager_previous_found'] = false; + } + else + { + if ( $content['uid_current'] == $content['uid_previous'] ) + $content['main_pager_previous_found'] = false; + else + $content['main_pager_previous_found'] = true; + } + + + // --- + + // --- Handle uid_last and uid_next page button + if ( $content['read_direction'] == EnumReadDirection::Forward ) + { + if ( $content['uid_current'] == $content['uid_last'] ) + { + $content['main_pager_last_found'] = false; + $content['main_pager_next_found'] = false; + } + else + { + $content['main_pager_last_found'] = true; + $content['main_pager_next_found'] = true; + } + + // Restore uid_current if necessary + $content['uid_current'] = $lastUid; + } + else + { + // If last error code was nomorerecords, there are no more pages + if ( $ret == ERROR_NOMORERECORDS ) + { + $content['main_pager_last_found'] = false; + $content['main_pager_next_found'] = false; + } + else + { + // Set NEXT uid + $content['uid_next'] = $uID; + $content['main_pager_last_found'] = true; + $content['main_pager_next_found'] = true; + } + } + // --- + //!!!!!!!! +/* // if we found a last uid, and if it is not the current one (which means we already are on the last page ;)! if ( $content['uid_last'] != -1 && $content['uid_last'] != $content['uid_current']) $content['main_pager_last_found'] = true; @@ -723,8 +792,23 @@ if ( isset($content['Sources'][$currentSourceID]) ) // As we went back, we need to change the currend uid to the latest read one $content['uid_current'] = $lastUid; } +*/ // --- + // --- Handle uid_first page button + if ( $content['uid_current'] == $content['uid_first'] ) + { + $content['main_pager_first_found'] = false; + $content['main_pager_previous_found'] = false; // If there is no FIRST, there is no going back! + } + else if ( !$content['main_pager_previous_found'] ) + $content['main_pager_first_found'] = false; + else + $content['main_pager_first_found'] = true; + // --- + +// $content['uid_first'] +/* // --- Handle uid_first page button if ( $content['main_pager_previous_found'] == false || $content['uid_current'] == UID_UNKNOWN || @@ -736,6 +820,7 @@ if ( isset($content['Sources'][$currentSourceID]) ) else $content['main_pager_first_found'] = true; // --- +*/ } else // Disable pager in this case! $content['main_pagerenabled'] = false; diff --git a/src/lang/de/main.php b/src/lang/de/main.php index 4634df6..04de144 100644 --- a/src/lang/de/main.php +++ b/src/lang/de/main.php @@ -98,6 +98,8 @@ $content['LN_ERROR_NORECORDS'] = "Es wurden keine syslog-Einträge gefunden. $content['LN_WARNING_DBUPGRADE'] = "Database Upgrade required"; $content['LN_WARNING_DBUPGRADE_TEXT'] = "The current installed database version is '%1'.
An update to version '%2' is available."; $content['LN_ERROR_REDIRECTABORTED'] = 'Automatic redirect to the page was aborted, as an internal error occured. Please see the error details above and contact our support forums if you need assistance.'; + $content['LN_DEBUGLEVEL'] = "Debug Level"; + $content['LN_DEBUGMESSAGE'] = "Debug Message"; // Topmenu Entries $content['LN_MENU_SEARCH'] = "Suchen"; diff --git a/src/lang/en/main.php b/src/lang/en/main.php index f0590d4..56e6b42 100644 --- a/src/lang/en/main.php +++ b/src/lang/en/main.php @@ -100,6 +100,9 @@ $content['LN_ERROR_DB_DBFIELDNOTFOUND'] = "Database Field mapping for at least o $content['LN_WARNING_DBUPGRADE'] = "Database Upgrade required"; $content['LN_WARNING_DBUPGRADE_TEXT'] = "The current installed database version is '%1'.
An update to version '%2' is available."; $content['LN_ERROR_REDIRECTABORTED'] = 'Automatic redirect to the page was aborted, as an internal error occured. Please see the error details above and contact our support forums if you need assistance.'; + $content['LN_DEBUGLEVEL'] = "Debug Level"; + $content['LN_DEBUGMESSAGE'] = "Debug Message"; + // Topmenu Entries $content['LN_MENU_SEARCH'] = "Search"; diff --git a/src/lang/it_IT/admin.php b/src/lang/it_IT/admin.php new file mode 100644 index 0000000..919c82d --- /dev/null +++ b/src/lang/it_IT/admin.php @@ -0,0 +1,361 @@ + www.phplogcon.org <- + * ----------------------------------------------------------------- + * + * 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 . + * + * A copy of the GPL can be found in the file "COPYING" in this + * distribution. + ********************************************************************* +*/ +global $content; + +// Global Stuff +$content['LN_ADMINMENU_HOMEPAGE'] = "Back to Show Events"; +$content['LN_ADMINMENU_GENOPT'] = "Preferences"; +$content['LN_ADMINMENU_SOURCEOPT'] = "Sources"; +$content['LN_ADMINMENU_VIEWSOPT'] = "Views"; +$content['LN_ADMINMENU_SEARCHOPT'] = "Searches"; +$content['LN_ADMINMENU_USEROPT'] = "Users"; +$content['LN_ADMINMENU_GROUPOPT'] = "Groups"; +$content['LN_ADMINMENU_CHARTOPT'] = "Charts"; +$content['LN_ADMINMENU_FIELDOPT'] = "Fields"; +$content['LN_ADMINMENU_MSGPARSERSOPT'] = "Message Parsers"; +$content['LN_ADMIN_CENTER'] = "Admin center"; +$content['LN_ADMIN_UNKNOWNSTATE'] = "Unknown State"; +$content['LN_ADMIN_ERROR_NOTALLOWED'] = "You are not allowed to access this page with your user level."; +$content['LN_DELETEYES'] = "Yes"; +$content['LN_DELETENO'] = "No"; +$content['LN_GEN_ACTIONS'] = "Available Actions"; +$content['LN_ADMIN_SEND'] = "Send changes"; +$content['LN_GEN_USERONLY'] = "User only"; +$content['LN_GEN_GROUPONLY'] = "Group only"; +$content['LN_GEN_GLOBAL'] = "Global"; +$content['LN_GEN_USERONLY_LONG'] = "For me only
(Only available to your user)"; +$content['LN_GEN_GROUPONLY_LONG'] = "For this group
(Only available to the selected group)"; +$content['LN_GEN_GROUPONLYNAME'] = "Group '%1'"; +$content['LN_ADMIN_POPUPHELP'] = "Details on this function"; +$content['LN_ADMIN_DBSTATS'] = "Show database statistics."; +$content['LN_ADMIN_CLEARDATA'] = "If you need to remove old data records, use this function."; + +// General Options +$content['LN_ADMIN_GLOBFRONTEND'] = "Global frontend options"; +$content['LN_ADMIN_USERFRONTEND'] = "User specific frontend options"; +$content['LN_ADMIN_MISC'] = "Miscellaneous Options"; +$content['LN_GEN_SHOWDEBUGMSG'] = "Show Debug messages"; +$content['LN_GEN_DEBUGGRIDCOUNTER'] = "Show Debug Gridcounter"; +$content['LN_GEN_SHOWPAGERENDERSTATS'] = "Show Pagerenderstats"; +$content['LN_GEN_ENABLEGZIP'] = "Enable GZIP Compressed Output"; +$content['LN_GEN_DEBUGUSERLOGIN'] = "Debug Userlogin"; +$content['LN_GEN_WEBSTYLE'] = "Default selected style"; +$content['LN_GEN_SELLANGUAGE'] = "Default selected language"; +$content['LN_GEN_PREPENDTITLE'] = "Prepend this string in title"; +$content['LN_GEN_USETODAY'] = "Use Today and Yesterday in timefields"; +$content['LN_GEN_DETAILPOPUPS'] = "Use Popup to display the full messagedetails"; +$content['LN_GEN_MSGCHARLIMIT'] = "Character limit of the message in main view"; +$content['LN_GEN_STRCHARLIMIT'] = "Character display limit for all string type fields"; +$content['LN_GEN_ENTRIESPERPAGE'] = "Number of entries per page"; +$content['LN_GEN_AUTORELOADSECONDS'] = "Enable autoreload after seconds"; +$content['LN_GEN_IPADRRESOLVE'] = "Resolve IP Addresses using DNS"; +$content['LN_GEN_CUSTBTNCAPT'] = "Custom search caption"; +$content['LN_GEN_CUSTBTNSRCH'] = "Custom search string"; +$content['LN_GEN_SUCCESSFULLYSAVED'] = "The configuration Values have been successfully saved"; +$content['LN_GEN_INTERNAL'] = "Internal"; +$content['LN_GEN_DISABLED'] = "Function disabled"; +$content['LN_GEN_CONFIGFILE'] = "Configuration File"; +$content['LN_GEN_ACCESSDENIED'] = "Access denied to this function"; +$content['LN_GEN_DEFVIEWS'] = "Default selected view"; +$content['LN_GEN_DEFSOURCE'] = "Default selected source"; +$content['LN_GEN_SUPPRESSDUPMSG'] = "Suppress duplicated messages"; +$content['LN_GEN_TREATFILTERSTRUE'] = "Treat filters of not found fields as true"; + +$content['LN_GEN_OPTIONNAME'] = "Option name"; +$content['LN_GEN_GLOBALVALUE'] = "Global value"; +$content['LN_GEN_PERSONALVALUE'] = "Personal (User)value"; +$content['LN_GEN_DISABLEUSEROPTIONS'] = "Click here to disable personal options"; +$content['LN_GEN_ENABLEUSEROPTIONS'] = "Click here to enable personal options"; +$content['LN_ADMIN_GLOBALONLY'] = "Global Options Only"; +$content['LN_GEN_DEBUGTOSYSLOG'] = "Send Debug to local syslog server"; +$content['LN_GEN_POPUPMENUTIMEOUT'] = "Popupmenu Timeout in milli seconds"; +$content['LN_ADMIN_SCRIPTTIMEOUT'] = "PHP Script Timeout in seconds"; +$content['LN_GEN_INJECTHTMLHEADER'] = "Inject this html code into the <head> area."; +$content['LN_GEN_INJECTBODYHEADER'] = "Inject this html code at the beginning of the <body> area."; +$content['LN_GEN_INJECTBODYFOOTER'] = "Inject this html code at the end <body> area."; +$content['LN_ADMIN_PHPLOGCON_LOGOURL'] = "Optional phpLogCon Logo URL. Leave empty to use the default one."; + +// User Center +$content['LN_USER_CENTER'] = "User Options"; +$content['LN_USER_ID'] = "ID"; +$content['LN_USER_NAME'] = "Username"; +$content['LN_USER_ADD'] = "Add User"; +$content['LN_USER_EDIT'] = "Edit User"; +$content['LN_USER_DELETE'] = "Delete User"; +$content['LN_USER_PASSWORD1'] = "Password"; +$content['LN_USER_PASSWORD2'] = "Confirm Password"; +$content['LN_USER_ERROR_IDNOTFOUND'] = "Error, User with ID '%1' , was not found"; +$content['LN_USER_ERROR_DONOTDELURSLF'] = "Error, you can not DELETE YOURSELF!"; +$content['LN_USER_ERROR_DELUSER'] = "Deleting of the user with id '%1' failed!"; +$content['LN_USER_ERROR_INVALIDID'] = "Error, invalid ID, User not found"; +$content['LN_USER_ERROR_HASBEENDEL'] = "The User '%1' has been successfully deleted!"; +$content['LN_USER_ERROR_USEREMPTY'] = "Error, Username was empty"; +$content['LN_USER_ERROR_USERNAMETAKEN'] = "Error, this Username is already taken!"; +$content['LN_USER_ERROR_PASSSHORT'] = "Error, Password was to short, or did not match"; +$content['LN_USER_ERROR_HASBEENADDED'] = "User '%1' has been successfully added"; +$content['LN_USER_ERROR_HASBEENEDIT'] = "User '%1' has been successfully edited"; +$content['LN_USER_ISADMIN'] = "Is Admin?"; +$content['LN_USER_ADDEDIT'] = "Add/Edit User"; +$content['LN_USER_WARNREMOVEADMIN'] = "You are about to revoke your own administrative priviledges. Are you sure to remove your admin status?"; +$content['LN_USER_WARNDELETEUSER'] = "Are you sure that you want to delete the User '%1'? All his personal settings will be deleted as well."; +$content['LN_USER_ERROR_INVALIDSESSIONS'] = "Invalid User Session."; +$content['LN_USER_'] = ""; + +// Group center +$content['LN_GROUP_CENTER'] = "Group Center"; +$content['LN_GROUP_ID'] = "ID"; +$content['LN_GROUP_NAME'] = "Groupname"; +$content['LN_GROUP_DESCRIPTION'] = "Groupdescription"; +$content['LN_GROUP_TYPE'] = "Grouptype"; +$content['LN_GROUP_ADD'] = "Add Group"; +$content['LN_GROUP_EDIT'] = "Edit Group"; +$content['LN_GROUP_DELETE'] = "Delete Group"; +$content['LN_GROUP_NOGROUPS'] = "No groups have been added yet"; +$content['LN_GROUP_ADDEDIT'] = "Add/Edit Group"; +$content['LN_GROUP_ERROR_GROUPEMPTY'] = "The groupname cannot be empty."; +$content['LN_GROUP_ERROR_GROUPNAMETAKEN'] = "The groupname has already been taken."; +$content['LN_GROUP_HASBEENADDED'] = "The group '%1' has been successfully added."; +$content['LN_GROUP_ERROR_IDNOTFOUND'] = "The group with ID '%1' could not be found."; +$content['LN_GROUP_ERROR_HASBEENEDIT'] = "The group '%1' has been successfully edited."; +$content['LN_GROUP_ERROR_INVALIDGROUP'] = "Error, invalid ID, Group not found"; +$content['LN_GROUP_WARNDELETEGROUP'] = "Are you sure that you want to delete the Group '%1'? All Groupsettings will be deleted as well."; +$content['LN_GROUP_ERROR_DELGROUP'] = "Deleting of the group with id '%1' failed!"; +$content['LN_GROUP_ERROR_HASBEENDEL'] = "The Group '%1' has been successfully deleted!"; +$content['LN_GROUP_MEMBERS'] = "Groupmembers: "; +$content['LN_GROUP_ADDUSER'] = "Add User to Group"; +$content['LN_GROUP_ERROR_USERIDMISSING'] = "The userid is missing."; +$content['LN_GROUP_USERHASBEENADDEDGROUP'] = "The User '%1' has been successfully added to group '%2'"; +$content['LN_GROUP_ERRORNOMOREUSERS'] = "There are no more available users who can be added to the group '%1'"; +$content['LN_GROUP_USER_ADD'] = "Add User to the group"; +$content['LN_GROUP_USERDELETE'] = "Remove a User from the group"; +$content['LN_GROUP_ERRORNOUSERSINGROUP'] = "There are no users to remove in this the group '%1'"; +$content['LN_GROUP_ERROR_REMUSERFROMGROUP'] = "The user '%1' could not be removed from the group '%2'"; +$content['LN_GROUP_USERHASBEENREMOVED'] = "The user '%1' has been successfully removed from the group '%2'"; +$content['LN_GROUP_'] = ""; + +// Custom Searches center +$content['LN_SEARCH_CENTER'] = "Custom Searches"; +$content['LN_SEARCH_ADD'] = "Add new Custom Search"; +$content['LN_SEARCH_ID'] = "ID"; +$content['LN_SEARCH_NAME'] = "Search Name"; +$content['LN_SEARCH_QUERY'] = "Search Query"; +$content['LN_SEARCH_TYPE'] = "Assigned to"; +$content['LN_SEARCH_EDIT'] = "Edit Custom Search"; +$content['LN_SEARCH_DELETE'] = "Delete Custom Search"; +$content['LN_SEARCH_ADDEDIT'] = "Add / Edit a Custom Search"; +$content['LN_SEARCH_SELGROUPENABLE'] = ">> Select Group to enable <<"; +$content['LN_SEARCH_ERROR_DISPLAYNAMEEMPTY'] = "The DisplayName cannot be empty."; +$content['LN_SEARCH_ERROR_SEARCHQUERYEMPTY'] = "The SearchQuery cannot be empty."; +$content['LN_SEARCH_HASBEENADDED'] = "The Custom Search '%1' has been successfully added."; +$content['LN_SEARCH_ERROR_IDNOTFOUND'] = "Could not find a search with ID '%1'."; +$content['LN_SEARCH_ERROR_INVALIDID'] = "Invalid search ID."; +$content['LN_SEARCH_HASBEENEDIT'] = "The Custom Search '%1' has been successfully edited."; +$content['LN_SEARCH_WARNDELETESEARCH'] = "Are you sure that you want to delete the Custom Search '%1'? This cannot be undone!"; +$content['LN_SEARCH_ERROR_DELSEARCH'] = "Deleting of the Custom Search with id '%1' failed!"; +$content['LN_SEARCH_ERROR_HASBEENDEL'] = "The Custom Search '%1' has been successfully deleted!"; +$content['LN_SEARCH_'] = ""; + +// Custom Views center +$content['LN_VIEWS_CENTER'] = "Views Options"; +$content['LN_VIEWS_ID'] = "ID"; +$content['LN_VIEWS_NAME'] = "View Name"; +$content['LN_VIEWS_COLUMNS'] = "View Columns"; +$content['LN_VIEWS_TYPE'] = "Assigned to"; +$content['LN_VIEWS_ADD'] = "Add new View"; +$content['LN_VIEWS_EDIT'] = "Edit View"; +$content['LN_VIEWS_ERROR_IDNOTFOUND'] = "A View with ID '%1' could not be found."; +$content['LN_VIEWS_ERROR_INVALIDID'] = "The View with ID '%1' is not a valid View."; +$content['LN_VIEWS_WARNDELETEVIEW'] = "Are you sure that you want to delete the View '%1'? This cannot be undone!"; +$content['LN_VIEWS_ERROR_DELSEARCH'] = "Deleting of the View with id '%1' failed!"; +$content['LN_VIEWS_ERROR_HASBEENDEL'] = "The View '%1' has been successfully deleted!"; +$content['LN_VIEWS_ADDEDIT'] = "Add / Edit a View"; +$content['LN_VIEWS_COLUMNLIST'] = "Configured Columns"; +$content['LN_VIEWS_ADDCOLUMN'] = "Add Column into list"; +$content['LN_VIEWS_ERROR_DISPLAYNAMEEMPTY'] = "The DisplayName cannot be empty."; +$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_'] = ""; + +// Custom Sources center +$content['LN_SOURCES_CENTER'] = "Sources Options"; +$content['LN_SOURCES_EDIT'] = "Edit Source"; +$content['LN_SOURCES_DELETE'] = "Delete Source"; +$content['LN_SOURCES_ID'] = "ID"; +$content['LN_SOURCES_NAME'] = "Source Name"; +$content['LN_SOURCES_TYPE'] = "Source Type"; +$content['LN_SOURCES_ASSIGNTO'] = "Assigned To"; +$content['LN_SOURCES_DISK'] = "Diskfile"; +$content['LN_SOURCES_DB'] = "MySQL Database"; +$content['LN_SOURCES_PDO'] = "PDO Datasource"; +$content['LN_SOURCES_ADD'] = "Add new Source"; +$content['LN_SOURCES_ADDEDIT'] = "Add / Edit a Source"; +$content['LN_SOURCES_TYPE'] = "Source Type"; +$content['LN_SOURCES_DISKTYPEOPTIONS'] = "Diskfile related Options"; +$content['LN_SOURCES_ERROR_MISSINGPARAM'] = "The paramater '%1' is missing."; +$content['LN_SOURCES_ERROR_NOTAVALIDFILE'] = "Failed to open the syslog file '%1'! Check if the file exists and phplogcon has sufficient rights to it"; +$content['LN_SOURCES_ERROR_UNKNOWNSOURCE'] = "Unknown Source '%1' detected"; +$content['LN_SOURCE_HASBEENADDED'] = "The new Source '%1' has been successfully added."; +$content['LN_SOURCES_EDIT'] = "Edit Source"; +$content['LN_SOURCES_ERROR_INVALIDORNOTFOUNDID'] = "The Source-ID is invalid or could not be found."; +$content['LN_SOURCES_ERROR_IDNOTFOUND'] = "The Source-ID could not be found in the database."; +$content['LN_SOURCES_HASBEENEDIT'] = "The Source '%1' has been successfully edited."; +$content['LN_SOURCES_WARNDELETESEARCH'] = "Are you sure that you want to delete the Source '%1'? This cannot be undone!"; +$content['LN_SOURCES_ERROR_DELSOURCE'] = "Deleting of the Source with id '%1' failed!"; +$content['LN_SOURCES_ERROR_HASBEENDEL'] = "The Source '%1' has been successfully deleted!"; +$content['LN_SOURCES_DESCRIPTION'] = "Source Description (Optional)"; +$content['LN_SOURCES_ERROR_INVALIDVALUE'] = "Invalid value for the paramater '%1'."; +$content['LN_SOURCES_STATSNAME'] = "Name"; +$content['LN_SOURCES_STATSVALUE'] = "Value"; +$content['LN_SOURCES_DETAILS'] = "Details for this logstream source"; +$content['LN_SOURCES_STATSDETAILS'] = "Statistic details for this logstream source"; +$content['LN_SOURCES_ERROR_NOSTATSDATA'] = "Could not find or obtain any stats related information for this logstream source."; +$content['LN_SOURCES_ERROR_NOCLEARSUPPORT'] = "This logstream source does not support deleting data."; +$content['LN_SOURCES_ROWCOUNT'] = "Total Rowcount"; +$content['LN_SOURCES_CLEARDATA'] = "The following database maintenance Options are available"; +$content['LN_SOURCES_CLEAROPTIONS'] = "Select how you want to clear data."; +$content['LN_SOURCES_CLEARALL'] = "Clear (Delete) all data."; +$content['LN_SOURCES_CLEAR_HELPTEXT'] = "Attention! Be carefull with deleting data, any action performed here can not be undone!"; +$content['LN_SOURCES_CLEARSINCE'] = "Clear all data older than ... "; +$content['LN_SOURCES_CLEARDATE'] = "Clear all data which is older than ... "; +$content['LN_SOURCES_CLEARDATA_SEND'] = "Clear selected data range"; +$content['LN_SOURCES_ERROR_INVALIDCLEANUP'] = "Invalid Data Cleanup type"; +$content['LN_SOURCES_WARNDELETEDATA'] = "Are you sure that you want to clear logdata in the '%1' source? This cannot be undone!"; +$content['LN_SOURCES_ERROR_DELDATA'] = "Could not delete data in the '%1' source"; +$content['LN_SOURCES_HASBEENDELDATA'] = "Successfully deleted data from the '%1' source, '%2' rows were affected. "; + +// Database Upgrade +$content['LN_DBUPGRADE_TITLE'] = "phpLogCon Database Update"; +$content['LN_DBUPGRADE_DBFILENOTFOUND'] = "The database upgrade file '%1' could not be found in the include folder! Please check if all files were successfully uploaded."; +$content['LN_DBUPGRADE_DBDEFFILESHORT'] = "The database upgrade files where empty or did not contain any SQL Command! Please check if all files were successfully uploaded."; +$content['LN_DBUPGRADE_WELCOME'] = "Welcome to the database upgrade"; +$content['LN_DBUPGRADE_BEFORESTART'] = "Before you start upgrading your database, you should create a FULL BACKUP OF YOUR DATABASE. Anything else will be done automatically by the upgrade Script."; +$content['LN_DBUPGRADE_CURRENTINSTALLED'] = "Current Installed Database Version"; +$content['LN_DBUPGRADE_TOBEINSTALLED'] = "Do be Installed Database Version"; +$content['LN_DBUPGRADE_HASBEENDONE'] = "Database Update has been performed, see the results below"; +$content['LN_DBUPGRADE_SUCCESSEXEC'] = "Successfully executed statements"; +$content['LN_DBUPGRADE_FAILEDEXEC'] = "Failed statements"; +$content['LN_DBUPGRADE_ONESTATEMENTFAILED'] = "At least one statement failed, you may need to correct and fix this issue manually. See error details below"; +$content['LN_DBUPGRADE_ERRMSG'] = "Error Message"; +$content['LN_DBUPGRADE_ULTRASTATSDBVERSION'] = "phpLogCon Database Version"; + +// Charts Options +$content['LN_CHARTS_CENTER'] = "Charts Options"; +$content['LN_CHARTS_EDIT'] = "Edit Chart"; +$content['LN_CHARTS_DELETE'] = "Delete Chart"; +$content['LN_CHARTS_ADD'] = "Add new Chart"; +$content['LN_CHARTS_ADDEDIT'] = "Add / Edit a Chart"; +$content['LN_CHARTS_NAME'] = "Chart Name"; +$content['LN_CHARTS_ENABLED'] = "Chart enabled"; +$content['LN_CHARTS_ENABLEDONLY'] = "Enabled"; +$content['LN_CHARTS_ERROR_INVALIDORNOTFOUNDID'] = "The Chart-ID is invalid or could not be found."; +$content['LN_CHARTS_ERROR_IDNOTFOUND'] = "The Chart-ID could not be found in the database."; +$content['LN_CHARTS_WARNDELETESEARCH'] = "Are you sure that you want to delete the Chart '%1'? This cannot be undone!"; +$content['LN_CHARTS_ERROR_DELCHART'] = "Deleting of the Chart with id '%1' failed!"; +$content['LN_CHARTS_ERROR_HASBEENDEL'] = "The Chart '%1' has been successfully deleted!"; +$content['LN_CHARTS_ERROR_MISSINGPARAM'] = "The paramater '%1' is missing."; +$content['LN_CHARTS_HASBEENADDED'] = "The new Chart '%1' has been successfully added."; +$content['LN_CHARTS_ERROR_IDNOTFOUND'] = "The Chart-ID could not be found in the database."; +$content['LN_CHARTS_HASBEENEDIT'] = "The Chart '%1' has been successfully edited."; +$content['LN_CHARTS_ID'] = "ID"; +$content['LN_CHARTS_ASSIGNTO'] = "Assigned To"; +$content['LN_CHARTS_PREVIEW'] = "Preview Chart in a new Window"; + +// Fields Options +$content['LN_FIELDS_CENTER'] = "Fields Options"; +$content['LN_FIELDS_EDIT'] = "Edit Field"; +$content['LN_FIELDS_DELETE'] = "Delete Field"; +$content['LN_FIELDS_ADD'] = "Add new Field"; +$content['LN_FIELDS_ID'] = "FieldID"; +$content['LN_FIELDS_NAME'] = "Display Name"; +$content['LN_FIELDS_DEFINE'] = "Internal FieldID"; +$content['LN_FIELDS_DELETE_FROMDB'] = "Delete Field from DB"; +$content['LN_FIELDS_ADDEDIT'] = "Add / Edit a Field"; +$content['LN_FIELDS_TYPE'] = "Field Type"; +$content['LN_FIELDS_ALIGN'] = "Listview Alignment"; +$content['LN_FIELDS_SEARCHONLINE'] = "Enable online search"; +$content['LN_FIELDS_DEFAULTWIDTH'] = "Row width in Listview"; +$content['LN_FIELDS_ERROR_IDNOTFOUND'] = "The Field-ID could not be found in the database, or in the default constants."; +$content['LN_FIELDS_ERROR_INVALIDID'] = "The Field with ID '%1' is not a valid Field."; +$content['LN_FIELDS_SEARCHFIELD'] = "Name of Searchfilter"; +$content['LN_FIELDS_WARNDELETESEARCH'] = "Are you sure that you want to delete the Field '%1'? This cannot be undone!"; +$content['LN_FIELDS_ERROR_DELSEARCH'] = "The Field-ID could not be found in the database."; +$content['LN_FIELDS_ERROR_HASBEENDEL'] = "The Field '%1' has been successfully deleted!"; +$content['LN_FIELDS_ERROR_FIELDCAPTIONEMPTY'] = "The field caption was empty. "; +$content['LN_FIELDS_ERROR_FIELDIDEMPTY'] = "The field id was empty. "; +$content['LN_FIELDS_ERROR_SEARCHFIELDEMPTY'] = "The searchfilter was empty. "; +$content['LN_FIELDS_ERROR_FIELDDEFINEEMPTY'] = "The internal FieldID was empty. "; +$content['LN_FIELDS_HASBEENEDIT'] = "The configuration for the field '%1' has been successfully edited."; +$content['LN_FIELDS_HASBEENADDED'] = "The configuration for the field '%1' has been successfully added."; +$content['LN_FIELDS_'] = ""; +$content['LN_ALIGN_CENTER'] = "center"; +$content['LN_ALIGN_LEFT'] = "left"; +$content['LN_ALIGN_RIGHT'] = "right"; +$content['LN_FILTER_TYPE_STRING'] = "String"; +$content['LN_FILTER_TYPE_NUMBER'] = "Number"; +$content['LN_FILTER_TYPE_DATE'] = "Date"; + +// Parser Options +$content['LN_PARSERS_EDIT'] = "Edit Message Parser"; +$content['LN_PARSERS_DELETE'] = "Delete Message Parser"; +$content['LN_PARSERS_ID'] = "Message Parser ID"; +$content['LN_PARSERS_NAME'] = "Message Parser Name"; +$content['LN_PARSERS_DESCRIPTION'] = "Message Parser Description"; +$content['LN_PARSERS_ERROR_NOPARSERS'] = "There were no valid message parsers found in your installation. "; +$content['LN_PARSERS_HELP'] = "Help"; +$content['LN_PARSERS_HELP_CLICK'] = "Click here for more help"; +$content['LN_PARSERS_INFO'] = "Show more Information for this message parser."; +$content['LN_PARSERS_INIT'] = "Initialize settings for this message parser."; +$content['LN_PARSERS_REMOVE'] = "Remove settings for this message parser."; +$content['LN_PARSERS_ERROR_IDNOTFOUND'] = "There was no message parser with ID '%1' found."; +$content['LN_PARSERS_ERROR_INVALIDID'] = "Invalid message parser id."; +$content['LN_PARSERS_DETAILS'] = "Details for this Parser"; +$content['LN_PARSERS_CUSTOMFIELDS'] = "The following Custom fields are needed by this Message Parser."; +$content['LN_PARSERS_WARNREMOVE'] = "You are about to remove the custom fields needed by the '%1' Message Parser. However you can add these fields again if you change your mind."; +$content['LN_PARSERS_ERROR_HASBEENREMOVED'] = "All settings ('%2' custom fields) for the Message Parser '%1' have been removed. "; +$content['LN_PARSERS_ERROR_HASBEENADDED'] = "All required settings ('%2' custom fields) for the Message Parser '%1' have been added. "; +$content['LN_PARSERS_ERROR_NOFIELDS'] = "The Message Parser '%1' does not have any custom fields to add."; +$content['LN_PARSERS_'] = ""; + +// Command Line stuff +$content['LN_CMD_NOOP'] = "Operation parameter is missing"; +$content['LN_CMD_NOLOGSTREAM'] = "The logstream source parameter is missing"; +$content['LN_CMD_LOGSTREAMNOTFOUND'] = "Logstream Source with ID '%1' could not be found in the Database!"; +$content['LN_CMD_COULDNOTGETROWCOUNT'] = "Could not obtain rowcount from logstream source '%1'"; +$content['LN_CMD_SUBPARAM1MISSING'] = "Subparameter 1 is missing, it should be set to 'all', 'since' or 'date'. For more details see the documentation."; +$content['LN_CMD_WRONGSUBOPORMISSING'] = "Either the sub-operation is wrong, or another parameter is missing"; +$content['LN_CMD_FAILEDTOCLEANDATA'] = "Failed to cleandata for the logstream '%1'."; +$content['LN_CMD_CLEANINGDATAFOR'] = "Cleaning data for logstream source '%1'."; +$content['LN_CMD_ROWSFOUND'] = "Successfully connected and found '%1' rows in the logstream source."; +$content['LN_CMD_DELETINGOLDERTHEN'] = "Performing deletion of data entries older then '%1'."; +$content['LN_CMD_DELETEDROWS'] = "Successfully Deleted '%1' rows in the logstream source.'"; +$content['LN_CMD_'] = ""; + +?> \ No newline at end of file diff --git a/src/lang/it_IT/info.txt b/src/lang/it_IT/info.txt new file mode 100644 index 0000000..c90c673 --- /dev/null +++ b/src/lang/it_IT/info.txt @@ -0,0 +1 @@ +Italiano \ No newline at end of file diff --git a/src/lang/it_IT/main.php b/src/lang/it_IT/main.php new file mode 100644 index 0000000..133df6f --- /dev/null +++ b/src/lang/it_IT/main.php @@ -0,0 +1,162 @@ + www.phplogcon.org <- + * ----------------------------------------------------------------- + * + * Copyright (C) 2008 Adiscon GmbH. + * + * This file is part of phpLogCon. + * + * Translation by Luigi Rosa + * [mailto:lrosa@venus.it] + * + * + * 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 . + * + * A copy of the GPL can be found in the file "COPYING" in this + * distribution. + ********************************************************************* +*/ +global $content; + +// Global Stuff +$content['LN_MAINTITLE'] = "PhpLogCon pagina principale"; +$content['LN_MAIN_SELECTSTYLE'] = "Stile"; +$content['LN_GEN_LANGUAGE'] = "Lingua"; +$content['LN_GEN_SELECTSOURCE'] = "Fonte"; +$content['LN_GEN_MOREPAGES'] = "È disponibile più di una pagina"; +$content['LN_GEN_FIRSTPAGE'] = "Prima pagina"; +$content['LN_GEN_LASTPAGE'] = "Ultima pagina"; +$content['LN_GEN_NEXTPAGE'] = "Pagina successiva"; +$content['LN_GEN_PREVIOUSPAGE'] = "Pagina precedente"; +$content['LN_GEN_RECORDCOUNT'] = "Record totali"; +$content['LN_GEN_PAGERSIZE'] = "Record per pagina"; +$content['LN_GEN_PAGE'] = "Pagina"; +$content['LN_GEN_PREDEFINEDSEARCHES'] = "Ricerche predefinite"; +$content['LN_GEN_SOURCE_DISK'] = "File su disco"; +$content['LN_GEN_SOURCE_DB'] = "MYSQL nativo"; +$content['LN_GEN_SOURCE_PDO'] = "Database (PDO)"; +$content['LN_GEN_RECORDSPERPAGE'] = "record per pagina"; +$content['LN_GEN_PRECONFIGURED'] = "Preconfigurato"; +$content['LN_GEN_AVAILABLESEARCHES'] = "Ricerche disponibili"; +$content['LN_GEN_DB_MYSQL'] = "Mysql Server"; +$content['LN_GEN_DB_MSSQL'] = "Microsoft SQL Server"; +$content['LN_GEN_DB_ODBC'] = "Database ODBC"; +$content['LN_GEN_DB_PGSQL'] = "PostgreSQL"; +$content['LN_GEN_DB_OCI'] = "Oracle Call Interface"; +$content['LN_GEN_DB_DB2'] = " IBM DB2"; +$content['LN_GEN_DB_FIREBIRD'] = "Firebird/Interbase 6"; +$content['LN_GEN_DB_INFORMIX'] = "IBM Informix Dynamic Server"; +$content['LN_GEN_DB_SQLITE'] = "SQLite 2"; +$content['LN_GEN_SELECTVIEW'] = "Visualizzaizone"; + + +// Main Index Site +$content['LN_ERROR_INSTALLFILEREMINDER'] = "Attenzione! Non hai ancora rimosso il file 'install.php' dalla directory principale di phpLogCon!"; +$content['LN_TOP_NUM'] = "Nr."; +$content['LN_TOP_UID'] = "uID"; +$content['LN_GRID_POPUPDETAILS'] = "Dettagli del messaggio di syslog con ID '%1'"; + +$content['LN_SEARCH_USETHISBLA'] = "Compila il form sottostante, qui apparirà il filtro"; +$content['LN_SEARCH_FILTER'] = "Filtro di ricerca:"; +$content['LN_SEARCH_ADVANCED'] = "Ricerca avanzata"; +$content['LN_SEARCH'] = "Cerca"; +$content['LN_SEARCH_RESET'] = "Annulla ricerca"; +$content['LN_SEARCH_PERFORMADVANCED'] = "Esegui questa ricerca avanzata"; +$content['LN_VIEW_MESSAGECENTERED'] = "Torna alla visualizzazione non filtrata con questo messaggio all'inizio"; +$content['LN_VIEW_RELATEDMSG'] = "Visualizza i messaggi di syslog correlati"; +$content['LN_VIEW_FILTERFOR'] = "Filtra i messaggi per "; +$content['LN_VIEW_SEARCHFOR'] = "Ricerca online di "; +$content['LN_VIEW_SEARCHFORGOOGLE'] = "Cerca su Google "; +$content['LN_GEN_MESSAGEDETAILS'] = "Dettagli del messaggio"; + +$content['LN_HIGHLIGHT'] = "Evidenzia >>"; +$content['LN_HIGHLIGHT_OFF'] = "Evidenzia <<"; +$content['LN_HIGHLIGHT_WORDS'] = "Parole da evidenziare separate da virgola"; + +$content['LN_AUTORELOAD'] = "Aggiornamento automatico"; +$content['LN_AUTORELOAD_DISABLED'] = "Disabilitato"; +$content['LN_AUTORELOAD_PRECONFIGURED'] = "Aggiornamento automatico preconfigurato "; +$content['LN_AUTORELOAD_SECONDS'] = "secondi"; +$content['LN_AUTORELOAD_MINUTES'] = "minuti"; + +$content['LN_ERROR_NORECORDS'] = "Nessun record di syslog trovato."; + +// Filter Options +$content['LN_FILTER_DATE'] = "Intervallo data/ora"; +$content['LN_FILTER_DATEMODE'] = "Seleziona il tipo di intervallo"; +$content['LN_DATEMODE_ALL'] = "Qualsiasi data/ora"; +$content['LN_DATEMODE_RANGE'] = "Intervallo orario"; +$content['LN_DATEMODE_LASTX'] = "Ultimi x ore/giorni"; +$content['LN_FILTER_DATEFROM'] = "Dalla data"; +$content['LN_FILTER_DATETO'] = "Alla data"; +$content['LN_FILTER_DATELASTX'] = "Ultime ore oppure ultimi giorni"; +$content['LN_FILTER_ADD2SEARCH'] = "Aggiungi alla ricerca"; +$content['LN_DATE_LASTX_HOUR'] = "Ultima ora"; +$content['LN_DATE_LASTX_12HOURS'] = "Ultime 12 ore"; +$content['LN_DATE_LASTX_24HOURS'] = "Ultime 24 ore"; +$content['LN_DATE_LASTX_7DAYS'] = "Ultimi 7 giorni"; +$content['LN_DATE_LASTX_31DAYS'] = "Ultimi 31 giorni"; +$content['LN_FILTER_FACILITY'] = "Facility syslog"; +$content['LN_FILTER_SEVERITY'] = "Severità syslog"; +$content['LN_FILTER_OTHERS'] = "Altri filtri"; +$content['LN_FILTER_MESSAGE'] = "messaggio syslog"; +$content['LN_FILTER_SYSLOGTAG'] = "Tag syslog"; +$content['LN_FILTER_SOURCE'] = "Fonte (nome host)"; +$content['LN_FILTER_MESSAGETYPE'] = "Tipo del messaggio"; + +// Field Captions +$content['LN_FIELDS_DATE'] = "Data"; +$content['LN_FIELDS_FACILITY'] = "Facility"; +$content['LN_FIELDS_SEVERITY'] = "iSeverità"; +$content['LN_FIELDS_HOST'] = "Host"; +$content['LN_FIELDS_SYSLOGTAG'] = "Tag syslog"; +$content['LN_FIELDS_PROCESSID'] = "ID processo"; +$content['LN_FIELDS_MESSAGETYPE'] = "Tipo messaggio"; +$content['LN_FIELDS_UID'] = "uID"; +$content['LN_FIELDS_MESSAGE'] = "Messaggio"; +$content['LN_FIELDS_EVENTID'] = "ID evento"; +$content['LN_FIELDS_EVENTLOGTYPE'] = "Tipo log eventi"; +$content['LN_FIELDS_EVENTSOURCE'] = "Fonte"; +$content['LN_FIELDS_EVENTCATEGORY'] = "Categoria"; +$content['LN_FIELDS_EVENTUSER'] = "Utente"; + +// Install Page +$content['LN_CFG_DBSERVER'] = "Host"; +$content['LN_CFG_DBPORT'] = "Porta"; +$content['LN_CFG_DBNAME'] = "Nome del database"; +$content['LN_CFG_DBPREF'] = "Prefisso della tabella"; +$content['LN_CFG_DBUSER'] = "Utente"; +$content['LN_CFG_DBPASSWORD'] = "Password"; +$content['LN_CFG_PARAMMISSING'] = "Mancano questi parametri: "; +$content['LN_CFG_SOURCETYPE'] = "Tipo della fonte"; +$content['LN_CFG_DISKTYPEOPTIONS'] = "Opzioni per il disco"; +$content['LN_CFG_LOGLINETYPE'] = "Tipo del log"; +$content['LN_CFG_SYSLOGFILE'] = "File di syslog"; +$content['LN_CFG_DATABASETYPEOPTIONS'] = "Opzioni del database"; +$content['LN_CFG_DBTABLETYPE'] = "Tipo della tabella"; +$content['LN_CFG_DBSTORAGEENGINE'] = "Motore di archiviazione su database"; +$content['LN_CFG_DBTABLENAME'] = "Nome della tabella"; +$content['LN_CFG_NAMEOFTHESOURCE'] = "Nome della fonte"; +$content['LN_CFG_FIRSTSYSLOGSOURCE'] = "Prima fonte di syslog"; +$content['LN_CFG_DBROWCOUNTING'] = "Abilita il conteggio delle righe"; +$content['LN_CFG_VIEW'] = "Seleziona il tipo di vista"; + +// Details page +$content['LN_DETAILS_FORSYSLOGMSG'] = "Dettagli dei messaggi di syslog con id"; +$content['LN_DETAILS_DETAILSFORMSG'] = "Dettaglio del messaggio con id"; +$content['LN_DETAIL_BACKTOLIST'] = "Torna all'elenco"; + +?> \ No newline at end of file diff --git a/src/templates/details.html b/src/templates/details.html index 43ce3b3..c1baeea 100644 --- a/src/templates/details.html +++ b/src/templates/details.html @@ -22,7 +22,7 @@ Pager:   - {LN_GEN_FIRSTPAGE} + {LN_GEN_FIRSTPAGE} @@ -31,7 +31,7 @@ - {LN_GEN_PREVIOUSPAGE} + {LN_GEN_PREVIOUSPAGE} @@ -44,7 +44,7 @@ - {LN_GEN_NEXTPAGE} + {LN_GEN_NEXTPAGE} @@ -53,7 +53,7 @@ - {LN_GEN_LASTPAGE} + {LN_GEN_LASTPAGE} diff --git a/src/templates/include_footer.html b/src/templates/include_footer.html index 73bfa0e..16c2db0 100644 --- a/src/templates/include_footer.html +++ b/src/templates/include_footer.html @@ -35,6 +35,22 @@ + + + + + + + + + + + +
{LN_DEBUGLEVEL}{LN_DEBUGMESSAGE}
{DBGLEVELTXT} +
{DBGMSG}
+
+ + {EXTRA_FOOTER} \ No newline at end of file diff --git a/src/templates/index.html b/src/templates/index.html index 824e05e..ecaf924 100644 --- a/src/templates/index.html +++ b/src/templates/index.html @@ -160,12 +160,12 @@ - {LN_GEN_RECORDCOUNT}: + {LN_GEN_RECORDCOUNT}: {main_recordcount} - {LN_GEN_PAGERSIZE}: + {LN_GEN_PAGERSIZE}:
@@ -217,7 +217,7 @@ - + @@ -291,7 +291,7 @@ - + @@ -306,7 +306,7 @@ - {fieldvalue} + {fieldvalue} @@ -374,7 +374,7 @@ - +