reportBug(__FUNCTION__, __LINE__, 'No database link is up. Cannot flush filters.');
} elseif ((isInstallationPhase()) && (!SQL_IS_LINK_UP())) {
// 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?
- if ((!isExtensionInstalled('sql_patches')) || (isExtensionInstalledAndOlder('sql_patches', '0.5.9'))) {
+ if (((!isExtensionInstalled('sql_patches')) || (isExtensionInstalledAndOlder('sql_patches', '0.5.9'))) && (!isInstallationPhase())) {
// 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) {
// 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
// Is the reset set or old sql_patches?
if (((!isHourlyResetEnabled()) || (!isExtensionInstalledAndNewer('sql_patches', '0.7.5'))) && (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()).',ext='.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 the config entry set?
+ if (isExtensionInstalledAndNewer('sql_patches', '0.7.5')) {
+ // Get more hourly reset scripts
+ setIncludePool('hourly', getArrayFromDirectory('inc/hourly/', 'hourly_'));
- // Update database
- if ((!isConfigEntrySet('DEBUG_RESET')) || (!isDebugResetEnabled())) {
- updateConfiguration('last_hour', getHour());
- } // END - if
+ // Update database
+ if ((!isConfigEntrySet('DEBUG_HOURLY')) || (!isDebugHourlyEnabled())) {
+ updateConfiguration('last_hourly', getHour());
+ } // END - if
- // Run the filter
- runFilterChain('load_includes', 'hourly');
+ // Run the filter
+ runFilterChain('load_includes', 'hourly');
+ } // END - if
}
-// 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()).',ext='.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_'));
+ setIncludePool('daily', getArrayFromDirectory('inc/daily/', 'daily_'));
// Update configuration if this reset is not being debugged
- if (!isDebugResetEnabled()) {
- updateConfiguration('last_update', 'UNIX_TIMESTAMP()');
+ if (!isDebugDailyEnabled()) {
+ updateConfiguration('last_daily', getDay());
+ } // END - if
+
+ // Run the filter
+ runFilterChain('load_includes', 'daily');
+}
+
+// Load more weeklt scripts
+function FILTER_RUN_WEEKLY_INCLUDES () {
+ // Is the reset set or old sql_patches?
+ if (((!isWeeklyResetDebugEnabled()) || (!isExtensionInstalledAndNewer('sql_patches', '0.9.8'))) && (isHtmlOutputMode())) {
+ // Then abort here
+ reportBug(__FUNCTION__, __LINE__, 'Cannot run weekly reset! enabled='.intval(isWeeklyResetDebugEnabled()).',ext='.intval(isExtensionInstalledAndNewer('sql_patches', '0.9.8')).' Please report this bug. Thanks');
} // END - if
// Is the config entry set?
if (isExtensionInstalledAndNewer('sql_patches', '0.4.2')) {
// Has it changed?
- if (((isConfigEntrySet('last_week')) && (getConfig('last_week') != getWeek())) || (isWeeklyResetDebugEnabled())) {
+ if (((isConfigEntrySet('last_weekly')) && (getLastWeekly() != getWeek())) || (isWeeklyResetDebugEnabled())) {
// 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());
+ updateConfiguration('last_weekly', getWeek());
} // END - if
} // END - if
+ // Run the filter
+ runFilterChain('load_includes', 'weekly');
+ } // END - if
+}
+
+// Load more monthly scripts
+function FILTER_RUN_MONTHLY_INCLUDES () {
+ // Is the reset set or old sql_patches?
+ if (((!isMonthlyResetDebugEnabled()) || (!isExtensionInstalledAndNewer('sql_patches', '0.9.8'))) && (isHtmlOutputMode())) {
+ // Then abort here
+ reportBug(__FUNCTION__, __LINE__, 'Cannot run monthly reset! enabled='.intval(isMonthlyResetDebugEnabled()).',ext='.intval(isExtensionInstalledAndNewer('sql_patches', '0.9.8')).' Please report this bug. Thanks');
+ } // END - if
+
+ // Is the config entry set?
+ if (isExtensionInstalledAndNewer('sql_patches', '0.4.2')) {
// Create current month mark
$currMonth = getMonth();
// Has it changed?
- if ((getLastMonth() != $currMonth) || (isMonthlyResetDebugEnabled())) {
+ if ((getLastMonthly() != $currMonth) || (isMonthlyResetDebugEnabled())) {
// 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);
+ updateConfiguration('last_monthly', $currMonth);
} // END - if
} // END - if
} // END - if
// Run the filter
- runFilterChain('load_includes', 'reset');
+ runFilterChain('load_includes', 'monthly');
}
// Filter for removing the given extension
// Filter for flushing the output
function FILTER_FLUSH_OUTPUT () {
+ // Is this filter called?
+ if (isset($GLOBALS[__FUNCTION__])) {
+ // Abort here
+ reportBug(__FUNCTION__, __LINE__, 'Double call of ' . __FUNCTION__ . ' causes problems with sent headers.');
+ } // END - if
+
+ // Mark this filter as called
+ $GLOBALS[__FUNCTION__] = TRUE;
+
// Simple, he?
outputHtml();
}
// Are we in normal output mode?
if (!isHtmlOutputMode()) {
// Only in normal output mode to prevent race-conditons!
+ return;
} // END - if
// Init counter
// 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;
+ if ((!isInstalled()) || (!isConfigEntrySet('patch_level'))) {
+ 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')) {
} // END - if
}
+// Filter for running hourly reset
+function FILTER_RUN_HOURLY_RESET () {
+ // Only execute this filter if installed
+ if ((isInstallationPhase()) || (!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 (((getLastHourly() != getHour()) || (isDebugHourlyEnabled())) && (!isInstallationPhase()) && (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 ((isInstallationPhase()) || (!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())) {
+ if (((getLastDaily() != getDay()) || (isDebugDailyEnabled())) && (!isInstallationPhase()) && (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 ((isInstallationPhase()) || (!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())) {
+ if (((getLastWeekly() != getWeek()) || (isDebugWeeklyEnabled())) && (!isInstallationPhase()) && (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 ((isInstallationPhase()) || (!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 (((getLastMonthly() != getMonth()) || (isDebugMonthlyEnabled())) && (!isInstallationPhase()) && (isAdminRegistered()) && (!isGetRequestElementSet('setup')) && (!isCssOutputMode())) {
+ // Tell every module we are in reset-mode!
+ doMonthly();
} // END - if
}
// Update module counter
function FILTER_COUNT_MODULE () {
- // Is installation phase?
- if (isInstallationPhase()) {
+ // Is installation phase or no admin registered?
+ if ((isInstallationPhase()) || (!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!
+ // Count module click
SQL_QUERY_ESC("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!');
// 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
+ // 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
// 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')) || (!isExtensionActive('other')) || (getActivateXchange() == '0')) {
// Silently abort here
return FALSE;
} // END - if
__FUNCTION__, __LINE__);
// Remember insert id for other filters
- $filterData['history_id'] = SQL_INSERTID();
+ $filterData['history_id'] = SQL_INSERT_ID();
// Return data
return $filterData;
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]
?>