* -------------------------------------------------------------------- *
* Kurzbeschreibung : Allgemeine Filter *
* -------------------------------------------------------------------- *
- * $Revision:: $ *
- * $Date:: $ *
- * $Tag:: 0.2.1-FINAL $ *
- * $Author:: $ *
- * -------------------------------------------------------------------- *
* Copyright (c) 2003 - 2009 by Roland Haeder *
- * Copyright (c) 2009 - 2012 by Mailer Developer Team *
+ * Copyright (c) 2009 - 2013 by Mailer Developer Team *
* For more information visit: http://mxchange.org *
* *
* This program is free software; you can redistribute it and/or modify *
initSqls();
// Is a database link here and not in installation mode?
- if ((!SQL_IS_LINK_UP()) && (!isInstallationPhase())) {
+ if ((!isSqlLinkUp()) && (!isInstaller())) {
// Abort here
reportBug(__FUNCTION__, __LINE__, 'No database link is up. Cannot flush filters.');
- } elseif ((isInstallationPhase()) && (!SQL_IS_LINK_UP())) {
+ } elseif ((isInstaller()) && (!isSqlLinkUp())) {
// If the link is not up in installation phase, skip flushing filters
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot flush filters: No link is up.');
return;
}
- // Is the extension ext-sql_patches updated and not in installation phase?
- if ((!isInstallationPhase()) && ((!isExtensionInstalled('sql_patches')) || (isExtensionInstalledAndOlder('sql_patches', '0.5.9')))) {
+ // Is the extension ext-sql_patches updated?
+ if (((!isExtensionInstalled('sql_patches')) || (isExtensionInstalledAndOlder('sql_patches', '0.5.9'))) && (!isInstaller())) {
// Log only in debug mode
if (isDebugModeEnabled()) {
logDebugMessage(__FUNCTION__, __LINE__, 'Cannot flush filters, ext-sql_patches might be missing. isExtensionInstalled()=' . intval(isExtensionInstalled('sql_patches')) . ',isExtensionInstalledAndOlder()=' . intval(isExtensionInstalledAndOlder('sql_patches', '0.5.9')));
// Walk through all filters
foreach ($filterArray as $filterFunction => $active) {
// Is this filter loaded?
- //* DEBUG: */ debugOutput('FOUND:'.$filterName.'/'.$filterFunction.'='.$active);
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'FOUND:'.$filterName.'/'.$filterFunction.'='.$active);
if (((!isset($GLOBALS['cache_array']['filter']['loaded'][$filterName][$filterFunction])) && ($active != 'R')) || ($active == 'A')) {
// Is this filter already in database?
- if (countSumTotalData($filterFunction, 'filters', 'filter_name', 'filter_function', TRUE, sprintf(" AND `filter_name`='%s'", SQL_ESCAPE($filterName))) == 0) {
+ if (countSumTotalData($filterFunction, 'filters', 'filter_name', 'filter_function', TRUE, sprintf(" AND `filter_name`='%s'", sqlEscapeString($filterName))) == 0) {
// Add this filter (all filters are active by default)
- //* DEBUG: */ debugOutput('ADD:'.$filterName.'/'.$filterFunction);
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ADD:'.$filterName.'/'.$filterFunction);
$insertSQL .= sprintf("('%s','%s','Y'),", $filterName, $filterFunction);
$inserted++;
} elseif (isDebugModeEnabled()) {
}
} elseif ($active == 'R') {
// Remove this filter
- //* DEBUG: */ debugOutput('REMOVE:'.$filterName.'/'.$filterFunction);
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'REMOVE:'.$filterName.'/'.$filterFunction);
$removeSQL .= sprintf(" (`filter_name`='%s' AND `filter_function`='%s') OR", $filterName, $filterFunction);
$removed++;
}
} // END - foreach
} // END - foreach
+ // Debug message
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'inserted=' . $inserted . ',removed=' . $removed . ' - AFTER COLLECTION');
+
// Something has been added?
if ($inserted > 0) {
// Finish SQL command and add it
return $content;
}
-// Filter for redirecting to logout if ext-sql_patches has been installed
-function FILTER_REDIRECT_TO_LOGOUT_SQL_PATCHES () {
- // Remove this filter
- unregisterFilter(__FUNCTION__, __LINE__, 'shutdown', __FUNCTION__);
-
- // Is the element set?
- if (isset($GLOBALS['ext_load_mode'])) {
- // Redirect here
- redirectToUrl('modules.php?module=admin&logout=1&' . $GLOBALS['ext_load_mode'] . '=sql_patches');
- } // END - if
-
- // This should not happen!
- logDebugMessage(__FUNCTION__, __LINE__, 'Cannot auto-logout because no extension load-mode has been set.');
-}
-
// Filter for auto-activation of a extension
function FILTER_AUTO_ACTIVATE_EXTENSION ($filterData) {
// Debug message
adminSolveTask($filterData['task_id']);
} else {
// Not detectable!
- reportBug(__FUNCTION__, __LINE__, sprintf("Cannot resolve task. data[%s]=<pre>%s</pre>", gettype($filterData), print_r($filterData, TRUE)));
+ reportBug(__FUNCTION__, __LINE__, sprintf('Cannot resolve task. data[%s]=<pre>%s</pre>', gettype($filterData), print_r($filterData, TRUE)));
}
// Return the data
// Is it an array?
if ((!isset($data)) || (!is_array($data))) {
// Then abort here
- reportBug(__FUNCTION__, __LINE__, sprintf("INC_POOL is no array! Type: %s", gettype($data)));
+ reportBug(__FUNCTION__, __LINE__, sprintf('INC_POOL is no array! Type: %s', gettype($data)));
} elseif (isset($data['inc_pool'])) {
// Use this as new inclusion pool!
setIncludePool($realPool, $data['inc_pool']);
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, '- Entered!');
// Is the array there?
- if ((isSqlsValid()) && ((!isset($filterData['dry_run'])) || ($filterData['dry_run'] == FALSE))) {
+ if ((ifSqlsRegistered()) && ((!isset($filterData['dry_run'])) || ($filterData['dry_run'] == FALSE))) {
// Run SQL commands
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, '- Found ' . countSqls() . ' queries to run.');
foreach (getSqls() as $mode => $sqls) {
// Is there still a query left?
if (!empty($sql)) {
- // Is there an "ALTER TABLE" command?
- if (substr(strtolower($sql), 0, 11) == 'alter table') {
+ // Is there an "ALTER TABLE" command? Exclude installation phase here as it would cause this query to fail
+ if ((substr(strtolower($sql), 0, 11) == 'alter table') && (!isset($filterData['ext_installing']))) {
// Analyse the alteration command
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Alterting table: ' . $sql . ',enable_codes=' . intval($filterData['enable_codes']));
- SQL_ALTER_TABLE($sql, __FUNCTION__, __LINE__, $filterData['enable_codes']);
+ sqlQueryAlterTable($sql, __FUNCTION__, __LINE__, $filterData['enable_codes']);
} else {
// Run regular SQL command
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Running regular query: ' . $sql . ',enable_codes=' . intval($filterData['enable_codes']));
- SQL_QUERY($sql, __FUNCTION__, __LINE__, $filterData['enable_codes']);
+ sqlQuery($sql, __FUNCTION__, __LINE__, $filterData['enable_codes']);
}
// Has a line changed?
- if (!SQL_HASZEROAFFECTED()) {
+ if (!ifSqlHasZeroAffectedRows()) {
// Add it to total account
- $count += SQL_AFFECTEDROWS();
+ $count += sqlAffectedRows();
} // END - if
} // END - if
} // END - foreach
// Debug message
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, '- Left!');
- // Clear any SQL queries
- //initSqls();
-
// Return counter
return $count;
}
preg_match_all('/\{\?(([a-zA-Z0-9-_]+)*)\?\}/', $code, $matches);
// Some entries found?
- if ((count($matches) > 0) && (count($matches[0]) > 0)) {
+ if ((isFilledArray($matches)) && (isFilledArray($matches[0]))) {
// Replace all matches
foreach ($matches[0] as $key => $match) {
// Is there cache?
$outputMode = getScriptOutputMode();
// Some entries found?
- if ((count($matches) > 0) && (count($matches[3]) > 0)) {
+ if ((isFilledArray($matches)) && (isFilledArray($matches[3]))) {
// Replace all matches
foreach ($matches[2] as $key => $eti) {
// Init replacer/call-back variable
} // END - foreach
} // END - if
- // Is there non-HTML mode?
- if (!isHtmlOutputMode()) {
+ // Is there non-HTML/AJAX mode?
+ if ((!isHtmlOutputMode()) && (!isAjaxOutputMode())) {
$filterData = decodeEntities($filterData);
} // END - if
// Runs some generic filter update steps
function FILTER_UPDATE_EXTENSION_DATA ($ext_name) {
// Create task (we ignore the task id here)
- createExtensionUpdateTask(getCurrentAdminId(), $ext_name, $GLOBALS['update_ver'][$ext_name], SQL_ESCAPE(getExtensionNotes(getExtensionNotes())));
+ createExtensionUpdateTask(getCurrentAdminId(), $ext_name, $GLOBALS['update_ver'][$ext_name], sqlEscapeString(getExtensionNotes(getExtensionNotes())));
// Update extension's version
- SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_extensions` SET `ext_version`='%s' WHERE `ext_name`='%s' LIMIT 1",
+ sqlQueryEscaped("UPDATE `{?_MYSQL_PREFIX?}_extensions` SET `ext_version`='%s' WHERE `ext_name`='%s' LIMIT 1",
array($GLOBALS['update_ver'][$ext_name], $ext_name), __FUNCTION__, __LINE__);
// Remove arrays
// Load more hourly reset scripts
function FILTER_RUN_HOURLY_INCLUDES () {
// Is the reset set or old sql_patches?
- if (((!isHourlyResetEnabled()) || (!isExtensionInstalledAndNewer('sql_patches', '0.7.5'))) && (isHtmlOutputMode())) {
+ if (((!isHourlyResetEnabled()) || (!isExtensionInstalledAndNewer('sql_patches', '0.9.8'))) && (isHtmlOutputMode())) {
// Then abort here
- reportBug(__FUNCTION__, __LINE__, 'Cannot run reset! enabled='.intval(isHourlyResetEnabled()).',ext_newer[sql_patches:0.7.5]='.intval(isExtensionInstalledAndNewer('sql_patches', '0.7.5')).' Please report this bug. Thanks');
+ reportBug(__FUNCTION__, __LINE__, 'Cannot run hourly reset! enabled='.intval(isHourlyResetEnabled()).',isExtensionInstalledAndNewer='.intval(isExtensionInstalledAndNewer('sql_patches', '0.9.8')).' Please report this bug. Thanks');
} // END - if
- // Get more hourly reset scripts
- setIncludePool('hourly', getArrayFromDirectory('inc/hourly/', 'hourly_'));
+ // Is ext-sql_patches at least 0.9.8?
+ if (isExtensionInstalledAndNewer('sql_patches', '0.9.8')) {
+ // Has it changed?
+ if ((getLastHourly() != getHour()) || (isDebugHourlyEnabled())) {
+ // Get more hourly reset scripts
+ setIncludePool('hourly', getArrayFromDirectory('inc/hourly/', 'hourly_'));
- // Update database
- if ((!isConfigEntrySet('DEBUG_RESET')) || (!isDebugResetEnabled())) {
- updateConfiguration('last_hour', getHour());
+ // Run the filter
+ runFilterChain('load_includes', 'hourly');
+ } // END - if
} // END - if
-
- // Run the filter
- runFilterChain('load_includes', 'hourly');
}
-// Load more reset scripts
-function FILTER_RUN_RESET_INCLUDES () {
+// Load more daily scripts
+function FILTER_RUN_DAILY_INCLUDES () {
// Is the reset set or old sql_patches?
- if (((!isResetModeEnabled()) || (!isExtensionInstalled('sql_patches'))) && (isHtmlOutputMode())) {
+ if (((!isDailyResetEnabled()) || (!isExtensionInstalledAndNewer('sql_patches', '0.9.8'))) && (isHtmlOutputMode())) {
// Then abort here
- reportBug(__FUNCTION__, __LINE__, 'Cannot run reset! enabled='.intval(isResetModeEnabled()).',ext='.intval(isExtensionInstalled('sql_patches')).' Please report this bug. Thanks');
+ reportBug(__FUNCTION__, __LINE__, 'Cannot run daily reset! enabled='.intval(isDailyResetEnabled()).',isExtensionInstalledAndNewer='.intval(isExtensionInstalledAndNewer('sql_patches', '0.9.8')).' Please report this bug. Thanks');
} // END - if
- // Get more daily reset scripts
- setIncludePool('reset', getArrayFromDirectory('inc/daily/', 'daily_'));
+ // Is ext-sql_patches at least 0.9.8?
+ if (isExtensionInstalledAndNewer('sql_patches', '0.9.8')) {
+ // Has it changed?
+ if ((getLastDaily() != getDay()) || (isDebugDailyEnabled())) {
+ // Get more daily reset scripts
+ setIncludePool('daily', getArrayFromDirectory('inc/daily/', 'daily_'));
- // Update configuration if this reset is not being debugged
- if (!isDebugResetEnabled()) {
- updateConfiguration('last_update', 'UNIX_TIMESTAMP()');
+ // Run the filter
+ runFilterChain('load_includes', 'daily');
+ } // END - if
} // END - if
+}
- // Is the config entry set?
- if (isExtensionInstalledAndNewer('sql_patches', '0.4.2')) {
+// Load more weeklt scripts
+function FILTER_RUN_WEEKLY_INCLUDES () {
+ // Is the reset set or old sql_patches?
+ if (((!isWeeklyResetEnabled()) || (!isExtensionInstalledAndNewer('sql_patches', '0.9.8'))) && (isHtmlOutputMode())) {
+ // Then abort here
+ reportBug(__FUNCTION__, __LINE__, 'Cannot run weekly reset! enabled='.intval(isWeeklyResetEnabled()).',isExtensionInstalledAndNewer()='.intval(isExtensionInstalledAndNewer('sql_patches', '0.9.8')).' Please report this bug. Thanks');
+ } // END - if
+
+ // Is ext-sql_patches at least 0.9.8?
+ if (isExtensionInstalledAndNewer('sql_patches', '0.9.8')) {
// Has it changed?
- if (((isConfigEntrySet('last_week')) && (getConfig('last_week') != getWeek())) || (isWeeklyResetDebugEnabled())) {
+ if ((getLastWeekly() != getWeek()) || (isDebugWeeklyEnabled())) {
// Include weekly reset scripts
- mergeIncludePool('reset', getArrayFromDirectory('inc/weekly/', 'weekly_'));
+ setIncludePool('weekly', getArrayFromDirectory('inc/weekly/', 'weekly_'));
- // Update configuration if this reset is not being debugged
- if (!isWeeklyResetDebugEnabled()) {
- updateConfiguration('last_week', getWeek());
- } // END - if
+ // Run the filter
+ runFilterChain('load_includes', 'weekly');
} // END - if
+ } // END - if
+}
- // Create current month mark
- $currMonth = getMonth();
+// Load more monthly scripts
+function FILTER_RUN_MONTHLY_INCLUDES () {
+ // Is the reset set or old sql_patches?
+ if (((!isMonthlyResetEnabled()) || (!isExtensionInstalledAndNewer('sql_patches', '0.9.8'))) && (isHtmlOutputMode())) {
+ // Then abort here
+ reportBug(__FUNCTION__, __LINE__, 'Cannot run monthly reset! enabled='.intval(isMonthlyResetEnabled()).',isExtensionInstalledAndNewer='.intval(isExtensionInstalledAndNewer('sql_patches', '0.9.8')).' Please report this bug. Thanks');
+ } // END - if
+ // Is ext-sql_patches at least 0.9.8?
+ if (isExtensionInstalledAndNewer('sql_patches', '0.9.8')) {
// Has it changed?
- if ((getLastMonth() != $currMonth) || (isMonthlyResetDebugEnabled())) {
+ if ((getLastMonthly() != getMonth()) || (isDebugMonthlyEnabled())) {
// Include monthly reset scripts
- mergeIncludePool('reset', getArrayFromDirectory('inc/monthly/', 'monthly_'));
+ setIncludePool('monthly', getArrayFromDirectory('inc/monthly/', 'monthly_'));
- // Update configuration if this reset is not being debugged
- if (!isMonthlyResetDebugEnabled()) {
- updateConfiguration('last_month', $currMonth);
- } // END - if
+ // Run the filter
+ runFilterChain('load_includes', 'monthly');
} // END - if
} // END - if
+}
+
+// Load more yearly scripts
+function FILTER_RUN_YEARLY_INCLUDES () {
+ // Is the reset set or old sql_patches?
+ if (((!isYearlyResetEnabled()) || (!isExtensionInstalledAndNewer('sql_patches', '0.9.8'))) && (isHtmlOutputMode())) {
+ // Then abort here
+ reportBug(__FUNCTION__, __LINE__, 'Cannot run yearly reset! enabled='.intval(isYearlyResetEnabled()).',isExtensionInstalledAndNewer='.intval(isExtensionInstalledAndNewer('sql_patches', '0.9.8')).' Please report this bug. Thanks');
+ } // END - if
- // Run the filter
- runFilterChain('load_includes', 'reset');
+ // Is ext-sql_patches at least 0.9.8?
+ if (isExtensionInstalledAndNewer('sql_patches', '0.9.8')) {
+ // Has it changed?
+ if ((getLastYearly() != getYear()) || (isDebugYearlyEnabled())) {
+ // Include yearly reset scripts
+ setIncludePool('yearly', getArrayFromDirectory('inc/yearly/', 'yearly_'));
+
+ // Run the filter
+ runFilterChain('load_includes', 'yearly');
+ } // END - if
+ } // END - if
}
// Filter for removing the given extension
function FILTER_REMOVE_EXTENSION () {
// Delete this extension (remember to remove it from your server *before* you click on welcome!
- SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_extensions` WHERE `ext_name`='%s' LIMIT 1",
+ sqlQueryEscaped("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_extensions` WHERE `ext_name`='%s' LIMIT 1",
array(getCurrentExtensionName()), __FUNCTION__, __LINE__);
// Remove the extension from cache array as well
// Filter for flushing the output
function FILTER_FLUSH_OUTPUT () {
- // Simple, he?
- outputHtml('');
-}
-
-// Prepares an SQL statement part for HTML mail and/or holiday dependency
-function FILTER_HTML_INCLUDE_USERS ($mode) {
- // Exclude no users by default
- $MORE = '';
-
- // HTML mail?
- if ($mode == 'html') {
- $MORE = " AND `html`='Y'";
+ // Is this filter called?
+ if (isset($GLOBALS[__FUNCTION__])) {
+ // Abort here
+ reportBug(__FUNCTION__, __LINE__, 'Double call of ' . __FUNCTION__ . ' causes problems with sent headers.');
} // END - if
- if (isExtensionInstalledAndNewer('holiday', '0.1.3')) {
- // Add something for the holiday extension
- $MORE .= " AND `holiday_active`='N'";
- } // END - if
+ // Mark this filter as called
+ $GLOBALS[__FUNCTION__] = TRUE;
- // Return result
- return $MORE;
+ // Simple, he?
+ outputHtml();
}
// Filter for determining what/action/module
function FILTER_DETERMINE_WHAT_ACTION () {
// In installation phase we don't have what/action
- if (isInstallationPhase()) {
+ if (isInstaller()) {
// Set both to empty
setAction('');
setWhat('');
// Are we in normal output mode?
if (!isHtmlOutputMode()) {
// Only in normal output mode to prevent race-conditons!
+ return;
} // END - if
// Init counter
unset($GLOBALS['pool_cnt']);
}
-// Filter for checking and updating SVN revision
-function FILTER_CHECK_REPOSITORY_REVISION () {
- // Only execute this filter if installed and all config entries are there
- if ((!isInstalled()) || (!isConfigEntrySet('patch_level'))) return;
+// Filter for running hourly reset
+function FILTER_RUN_HOURLY_RESET () {
+ // Only execute this filter if installed
+ if ((isInstaller()) || (!isInstalled()) || (!isAdminRegistered()) || (!isExtensionInstalledAndNewer('sql_patches', '0.9.8'))) {
+ return;
+ } // END - if
- // Check for patch level differences between database and current hard-coded
- if ((getCurrentRepositoryRevision() > getConfig('patch_level')) || (getConfig('patch_level') == 'CURRENT_REPOSITORY_REVISION') || (getConfig('patch_ctime') == 'UNIX_TIMES')) {
- // Update database and CONFIG array
- updateConfiguration(array('patch_level', 'patch_ctime'), array(getCurrentRepositoryRevision(), 'UNIX_TIMESTAMP()'));
- setConfigEntry('patch_level', getCurrentRepositoryRevision());
- setConfigEntry('patch_ctime', time());
+ // Shall we run the reset scripts? If a day has changed, maybe also a week/month has changed... Simple! :D
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'getLastHourly()=' . getLastHourly() . ',getHour()=' . getHour());
+ if (((getLastHourly() != getHour()) || (isDebugHourlyEnabled())) && (!isInstaller()) && (isAdminRegistered()) && (!isGetRequestElementSet('setup')) && (!isCssOutputMode())) {
+ // Tell every module we are in reset-mode!
+ doHourly();
} // END - if
}
// Filter for running daily reset
function FILTER_RUN_DAILY_RESET () {
// Only execute this filter if installed
- if ((isInstallationPhase()) || (!isInstalled()) || (!isAdminRegistered()) || (!isExtensionInstalled('sql_patches'))) {
+ if ((isInstaller()) || (!isInstalled()) || (!isAdminRegistered()) || (!isExtensionInstalledAndNewer('sql_patches', '0.9.8'))) {
return;
} // END - if
// Shall we run the reset scripts? If a day has changed, maybe also a week/month has changed... Simple! :D
- if (((getDay(getConfig('last_update')) != getDay()) || (isDebugResetEnabled())) && (!isInstallationPhase()) && (isAdminRegistered()) && (!isGetRequestElementSet('register')) && (!isCssOutputMode())) {
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'getLastDaily()=' . getLastDaily() . ',getDay()=' . getDay());
+ if (((getLastDaily() != getDay()) || (isDebugDailyEnabled())) && (!isInstaller()) && (isAdminRegistered()) && (!isGetRequestElementSet('setup')) && (!isCssOutputMode())) {
// Tell every module we are in reset-mode!
- doReset();
+ doDaily();
} // END - if
}
-// Filter for running hourly reset
-function FILTER_RUN_HOURLY_RESET () {
+// Filter for running weekly reset
+function FILTER_RUN_WEEKLY_RESET () {
// Only execute this filter if installed
- if ((isInstallationPhase()) || (!isInstalled()) || (!isAdminRegistered()) || (!isExtensionInstalledAndNewer('sql_patches', '0.7.5'))) {
+ if ((isInstaller()) || (!isInstalled()) || (!isAdminRegistered()) || (!isExtensionInstalledAndNewer('sql_patches', '0.9.8'))) {
return;
} // END - if
// Shall we run the reset scripts? If a day has changed, maybe also a week/month has changed... Simple! :D
- if ((((isConfigEntrySet('last_hour')) && (getConfig('last_hour') != getHour())) || (isDebugResetEnabled())) && (!isInstallationPhase()) && (isAdminRegistered()) && (!isGetRequestElementSet('register')) && (!isCssOutputMode())) {
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'getLastWeekly()=' . getLastWeekly() . ',getWeek()=' . getWeek());
+ if (((getLastWeekly() != getWeek()) || (isDebugWeeklyEnabled())) && (!isInstaller()) && (isAdminRegistered()) && (!isGetRequestElementSet('setup')) && (!isCssOutputMode())) {
// Tell every module we are in reset-mode!
- doHourly();
+ doWeekly();
+ } // END - if
+}
+
+// Filter for running monthly reset
+function FILTER_RUN_MONTHLY_RESET () {
+ // Only execute this filter if installed
+ if ((isInstaller()) || (!isInstalled()) || (!isAdminRegistered()) || (!isExtensionInstalledAndNewer('sql_patches', '0.9.8'))) {
+ return;
+ } // END - if
+
+ // Shall we run the reset scripts? If a day has changed, maybe also a week/month has changed... Simple! :D
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'getLastMonthly()=' . getLastMonthly() . ',getMonth()=' . getMonth());
+ if (((getLastMonthly() != getMonth()) || (isDebugMonthlyEnabled())) && (!isInstaller()) && (isAdminRegistered()) && (!isGetRequestElementSet('setup')) && (!isCssOutputMode())) {
+ // Tell every module we are in reset-mode!
+ doMonthly();
+ } // END - if
+}
+
+// Filter for running yearly reset
+function FILTER_RUN_YEARLY_RESET () {
+ // Only execute this filter if installed
+ if ((isInstaller()) || (!isInstalled()) || (!isAdminRegistered()) || (!isExtensionInstalledAndNewer('sql_patches', '0.9.8'))) {
+ return;
+ } // END - if
+
+ // Shall we run the reset scripts? If a day has changed, maybe also a week/month has changed... Simple! :D
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'getLastYearly()=' . getLastYearly() . ',getYear()=' . getYear());
+ if (((getLastYearly() != getYear()) || (isDebugYearlyEnabled())) && (!isInstaller()) && (isAdminRegistered()) && (!isGetRequestElementSet('setup')) && (!isCssOutputMode())) {
+ // Tell every module we are in reset-mode!
+ doYearly();
} // END - if
}
// Filter for loading more runtime includes (not for installation)
function FILTER_LOAD_RUNTIME_INCLUDES () {
// Load more includes
- foreach (array('databases', 'session', 'versions') as $inc) {
+ foreach (array('databases', 'session') as $inc) {
// Load the include
loadIncludeOnce('inc/' . $inc . '.php');
} // END - foreach
// Update module counter
function FILTER_COUNT_MODULE () {
- // Is installation phase?
- if (isInstallationPhase()) {
+ // Is installation phase or no admin registered?
+ if ((isInstaller()) || (!isInstalled()) || (!isAdminRegistered())) {
// Then don't count any modules
return;
} // END - if
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'getModule()=' . getModule() . ' - ENTERED!');
- // Do count all other modules but not accesses on CSS file css.php!
- SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `clicks`=`clicks`+1 WHERE `module`='%s' LIMIT 1",
+ // Count module click
+ sqlQueryEscaped("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `clicks`=`clicks`+1 WHERE `module`='%s' LIMIT 1",
array(getModule()), __FUNCTION__, __LINE__);
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'getModule()=' . getModule() . ',SQL_AFFECTEDROWS()=' . SQL_AFFECTEDROWS() . ' - EXIT!');
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'getModule()=' . getModule() . ',sqlAffectedRows()=' . sqlAffectedRows() . ' - EXIT!');
}
// Handles fatal errors
$content = '';
// Installation phase or regular mode?
- if ((isInstallationPhase())) {
+ if ((isInstaller())) {
// While we are installing ouput other header than while it is installed... :-)
$OUT = '';
foreach (getFatalArray() as $key => $value) {
'corr' => $CORR
);
- // Load footer
- loadIncludeOnce('inc/header.php');
+ // Load header
+ loadPageHeader();
// Load main template
loadTemplate('fatal_errors', FALSE, $content);
initFatalMessages();
// Load footer
- loadIncludeOnce('inc/footer.php');
+ loadPageFooter();
// Abort here
doShutdown();
// Filter for displaying copyright line
function FILTER_DISPLAY_COPYRIGHT () {
// Shall we display the copyright notice?
- if ((isFullPage()) && ((getConfig('WRITE_FOOTER') == 'Y') || (isInstalling())) && ($GLOBALS['__header_sent'] == 2) && (ifCopyrightFooterEnabled())) {
+ if ((isFullPage()) && ((getWriteFooter() == 'Y') || (isInstalling())) && ($GLOBALS['__header_sent'] == 2) && (ifCopyrightFooterEnabled())) {
// Backlink enabled?
if (((isConfigEntrySet('ENABLE_BACKLINK')) && (getConfig('ENABLE_BACKLINK') == 'Y')) || (isInstalling())) {
// Copyright with backlink, thanks! :-)
// Filter for displaying parsing time
function FILTER_DISPLAY_PARSING_TIME () {
// Shall we display the parsing time and number of queries?
- // 1234 5 54 4 5 5 4 4 5543 3 4432 2 332 2 21
- if ((((isExtensionInstalledAndNewer('sql_patches', '0.4.1')) && (getConfig('show_timings') == 'Y') && (isFullPage())) && (!isInstallationPhase())) && (isHtmlOutputMode()) && ($GLOBALS['__header_sent'] == 2)) {
+ // 1234 5 54 4 554 4 5543 3 4432 2 332 2 21
+ if ((((isExtensionInstalledAndNewer('sql_patches', '0.4.1')) && (isShowTimingsEnabled()) && (isFullPage())) && (!isInstaller())) && (isHtmlOutputMode()) && ($GLOBALS['__header_sent'] == 2)) {
// Then display it here
displayParsingTime();
} // END - if
// Filter for flushing template cache
function FILTER_FLUSH_TEMPLATE_CACHE () {
// Do not flush when debugging the template cache
- if (isDebuggingTemplateCache()) {
+ if (isDebugTemplateCacheEnabled()) {
// Do not flush templates in debug-mode
return;
} // END - if
// Is there cached eval() data?
- if ((isset($GLOBALS['template_eval'])) && (count($GLOBALS['template_eval']) > 0)) {
- // Now flush all
+ if ((isset($GLOBALS['template_eval'])) && (isFilledArray($GLOBALS['template_eval']))) {
+ // Flush all
foreach ($GLOBALS['template_eval'] as $prefix => $templateArray) {
foreach ($templateArray as $template => $eval) {
// Flush the cache (if not yet found)
// Filter for loading user data
function FILTER_FETCH_USER_DATA ($userid = NULL) {
- // Is the userid not set? Then use member id
- if (!isValidUserId($userid)) {
+ // Is the userid not set?
+ if (!isValidId($userid)) {
+ // Then use member id
$userid = getMemberId();
} // END - if
// Get user data
if (!fetchUserData($userid)) {
// Userid is not valid
- reportBug(__FUNCTION__, __LINE__, 'User id '.$userid . ' is invalid.');
+ reportBug(__FUNCTION__, __LINE__, 'User id ' . $userid . ' is invalid.');
} // END - if
// Set member id
setMemberId($userid);
+
+ // Continue with next filter
+ return $userid;
}
// Filter for reseting users' last login failure, only available with latest ext-sql_patches
// Remmeber login failures if available
if (isExtensionInstalledAndNewer('user', '0.3.7')) {
// Reset login failures
- SQL_QUERY_ESC("UPDATE
+ sqlQueryEscaped("UPDATE
`{?_MYSQL_PREFIX?}_user_data`
SET
`login_failures`=0,
$GLOBALS['__page_header'] .= loadTemplate(getMenuModeFromModule() . '_metadata', TRUE);
// Add meta description to header
- if ((isInstalled()) && (isAdminRegistered()) && (SQL_IS_LINK_UP()) && (getModule() == 'index')) {
+ if ((isInstalled()) && (isAdminRegistered()) && (isSqlLinkUp()) && (getModule() == 'index')) {
// Add meta description not in admin and login module and when the script is installed
generateMetaDescriptionCode();
} // END - if
// Filter for generating mails links for 'pool' mails
function FILTER_GENERATE_POOL_MAIL_LINKS ($filterData) {
- // Is type 'mid'?
- if ($filterData['type'] == 'mid') {
+ // Is type 'normal'?
+ if ($filterData['type'] == 'normal') {
// Load template
$filterData['__output'] .= loadTemplate('admin_links_' . strtolower($filterData['mail_status']) . '_pool_mail', TRUE, $filterData);
} // END - if
// Filter to activate exchange
function FILTER_ACTIVATE_EXCHANGE () {
- // Is the extension 'user' there?
- if ((!isExtensionActive('user')) || (getActivateXchange() == '0')) {
+ // Are the extension ext-user/other there?
+ if ((!isExtensionActive('user')) || (!isExtensionInstalled('other')) || (isAjaxOutputMode()) || (getActivateXchange() == '0')) {
// Silently abort here
return FALSE;
} // END - if
// Filter to add history entry
function FILTER_ADD_HISTORY_ENTRY ($filterData) {
// Add the entry
- SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_history` (`history_subject`, `history_userid`, `history_value`) VALUES ('%s',%s,'%s')",
+ sqlQueryEscaped("INSERT INTO `{?_MYSQL_PREFIX?}_history` (`history_subject`, `history_userid`, `history_value`) VALUES ('%s',%s,'%s')",
$filterData,
__FUNCTION__, __LINE__);
// Remember insert id for other filters
- $filterData['history_id'] = SQL_INSERTID();
+ $filterData['history_id'] = getSqlInsertId();
// Return data
return $filterData;
// Filter for initializing ext-sql_patches
function FILTER_GENERATE_FILE_SECRET_HASH ($filterData) {
- // Transfer POINTS word
- if (isExtensionInstalledAndNewer('sql_patches', '0.0.3')) {
- // Okay, recent enough, so transfer the word for POINTS
- setConfigEntry('POINTS', getPointsWord());
+ // Is ext-sql_patches installed and transfer POINTS word?
+ if ((!isExtensionInstalled('sql_patches')) || (!isExtensionInstalledAndNewer('sql_patches', '0.9.0'))) {
+ // Extension ext-sql_patches is missing, so better abort here
+ return;
} // END - if
+ // Okay, recent enough, so transfer the word for POINTS
+ setConfigEntry('POINTS', getPointsWord());
+
// Init key
setConfigEntry('secret_key', '');
+ // File hash was generated so we can also file the secret file... hopefully.
+ $hashFile = getGenericHashFileName();
+
// Read key from secret file
- if ((getFileHash() == '') || (getMasterSalt() == '') || (getPassScramble() == '')) {
+ if ((getFileHash() == '') || (getMasterSalt() == '') || (getPassScramble() == '') || (!isFileReadable($hashFile))) {
// Maybe need setup of secret key!
loadIncludeOnce('inc/gen_sql_patches.php');
+
+ // Generate file name again
+ $hashFile = getGenericHashFileName();
} // END - if
// Test again
if ((getFileHash() != '') && (getMasterSalt() != '') && (getPassScramble() != '')) {
- // File hash fas generated so we can also file the secret file... hopefully.
- $hashFile = sprintf("%s%s.%s.cache", getPath(), getCachePath(), getFileHash());
-
// Is the secret key file readable?
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'hashFile=' . $hashFile);
if (isFileReadable($hashFile)) {
// Read file
setConfigEntry('secret_key', readFromFile($hashFile));
} else {
// Remove it from database
- updateConfiguration('file_hash', '');
+ updateConfiguration('file_hash', '', '', '0', TRUE);
// Cannot read secret file!
reportBug(__FILE__, __LINE__, 'Cannot read secret file! Please try to reload.');
// Check required parameters
if ((isGetRequestElementSet('user')) && (isGetRequestElementSet('banner'))) {
// Update clicks counter...
- SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_refbanner` SET `clicks`=`clicks`+1 WHERE `id`=%s LIMIT 1",
+ sqlQueryEscaped('UPDATE `{?_MYSQL_PREFIX?}_refbanner` SET `clicks`=`clicks`+1 WHERE `id`=%s LIMIT 1',
array(bigintval(getRequestElement('banner'))), __FUNCTION__, __LINE__);
// A line has been updated?
- if ((!SQL_HASZEROAFFECTED()) && (isGetRequestElementSet('user'))) {
+ if ((!ifSqlHasZeroAffectedRows()) && (isGetRequestElementSet('user'))) {
// Redirect to the user's referral link
redirectToUrl('ref.php?refid=' . bigintval(getRequestElement('user')));
} // END - if
// Are all required parameters set
if ((isGetRequestElementSet('user')) && (isGetRequestElementSet('banner'))) {
// For later things... ;-)
- $result = SQL_QUERY_ESC("SELECT `url` FROM `{?_MYSQL_PREFIX?}_refbanner` WHERE `id`=%s LIMIT 1",
+ $result = sqlQueryEscaped('SELECT `url` FROM `{?_MYSQL_PREFIX?}_refbanner` WHERE `id`=%s LIMIT 1',
array(bigintval(getRequestElement('banner'))), __FUNCTION__, __LINE__);
// Is there the banner?
- if (SQL_NUMROWS($result) == 1) {
+ if (sqlNumRows($result) == 1) {
// Load the URL
- $data = SQL_FETCHARRAY($result);
+ $data = sqlFetchArray($result);
// Update counter
- SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_refbanner` SET `counter`=`counter`+1 WHERE `id`=%s LIMIT 1",
+ sqlQueryEscaped('UPDATE `{?_MYSQL_PREFIX?}_refbanner` SET `counter`=`counter`+1 WHERE `id`=%s LIMIT 1',
array(bigintval(getRequestElement('banner'))), __FUNCTION__, __LINE__);
// Set header and ...
logDebugMessage(__FUNCTION__, __LINE__, 'Banner ' . bigintval(getRequestElement('banner')) . ' not found.');
// Free memory
- SQL_FREERESULT($result);
+ sqlFreeResult($result);
} // END - if
// Do nothing for now
// Filter for adding hidden session id
function FILTER_ADD_INPUT_HIDDEN_SESSION_ID ($filterData) {
// Is a spider detected?
- if ((!isSpider()) && (!isSessionValid()) && ($filterData['__form_method'] == 'get')) {
+ if ((!isSpider()) && (!isValidSession()) && ($filterData['__form_method'] == 'get')) {
// No, then add the hidden field
$filterData['__replacer'] .= '<input type="hidden" name="' . session_name() . '" value="' . session_id() . '" />';
} // END - if
// Is purging configured?
if ((isApServerNameEnabled()) && (getApServerNameSince() > 0)) {
// Then start purging
- SQL_QUERY('DELETE LOW_PRIORITY FROM
+ sqlQuery('DELETE LOW_PRIORITY FROM
`{?_MYSQL_PREFIX?}_server_name_log`
WHERE
(UNIX_TIMESTAMP() - UNIX_TIMESTAMP(`server_name_added`)) >= {?ap_server_name_since?}',
__FILE__, __LINE__);
// Are some entries deleted?
- if (SQL_AFFECTEDROWS() > 0) {
+ if (sqlAffectedRows() > 0) {
// Okay, then send an email to the admin
- sendAdminNotification('{--ADMIN_PURGE_USER_SERVER_NAME_LOG_SUBJECT--}', 'admin_purge_user_server_name_log', SQL_AFFECTEDROWS());
+ sendAdminNotification('{--ADMIN_PURGE_USER_SERVER_NAME_LOG_SUBJECT--}', 'admin_purge_user_server_name_log', sqlAffectedRows());
} // END - if
} // END - if
return $filterData;
}
+// Filter for detecting menu mode
+function FILTER_DETERMINE_MENU_MODE_GENERIC ($filterData) {
+ // "Detect" it
+ switch (getModule()) {
+ case 'chk_login': // Is also faked
+ case 'confirm': // Login script is 'member'
+ case 'loader': // Is faked to 'member' to avoid indexing by search engines
+ case 'mailid': // Mail confirmation is 'member'
+ $filterData = 'member';
+ break;
+ } // END - switch
+
+ // Return filter data
+ return $filterData;
+}
+
+// Filter to exclude default referral id
+function FILTER_EXCLUDE_DEFAULT_REFID ($filterData = array()) {
+ // Is it valid?
+ if (isValidId(getDefRefid())) {
+ // Exclude it
+ array_push($filterData, '{?def_refid?}');
+ } // END - if
+
+ // Return it
+ return $filterData;
+}
+
// [EOF]
?>