X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Ffilters.php;h=0c6b4980219f94f7cae42e6c628141f3aa84b50d;hb=1dfd89652afd8c4542e791a5d90315019365e962;hp=e1c892448ff434da7490c20eb5261e7268070af9;hpb=4ffb69e5746a3a6ba65260745cbbe478e5462f9e;p=mailer.git diff --git a/inc/filters.php b/inc/filters.php index e1c892448f..0c6b498021 100644 --- a/inc/filters.php +++ b/inc/filters.php @@ -80,10 +80,16 @@ function FILTER_FLUSH_FILTERS () { // Is this filter loaded? //* DEBUG: */ debugOutput('FOUND:'.$filterName.'/'.$filterFunction.'='.$active); if (((!isset($GLOBALS['cache_array']['filter']['loaded'][$filterName][$filterFunction])) && ($active != 'R')) || ($active == 'A')) { - // Add this filter (all filters are active by default) - //* DEBUG: */ debugOutput('ADD:'.$filterName.'/'.$filterFunction); - $insertSQL .= sprintf("('%s','%s','Y'),", $filterName, $filterFunction); - $inserted++; + // 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); + $insertSQL .= sprintf("('%s','%s','Y'),", $filterName, $filterFunction); + $inserted++; + } elseif (isDebugModeEnabled()) { + // Log already registered filters + logDebugMessage(__FUNCTION__, __LINE__, 'Already registered: filterName=' . $filterName . ',filterFunction=' . $filterFunction . ',active=' . $active); + } } elseif ($active == 'R') { // Remove this filter //* DEBUG: */ debugOutput('REMOVE:'.$filterName.'/'.$filterFunction); @@ -271,8 +277,8 @@ function FILTER_RUN_SQLS ($filterData) { // 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']); @@ -295,9 +301,6 @@ function FILTER_RUN_SQLS ($filterData) { // Debug message //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, '- Left!'); - // Clear any SQL queries - //initSqls(); - // Return counter return $count; } @@ -355,6 +358,9 @@ function FILTER_INIT_RANDOMIZER () { // Take a prime number which is long (if you know a longer one please try it out!) setConfigEntry('_PRIME', 591623); + // Initialize array with all allowed chars + $GLOBALS['_abc'] = explode(',', 'a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,1,2,3,4,6,7,8,9,-,+,_,/,.'); + // Only execute this filter if installed if ((!isInstalled()) || (!isExtensionInstalledAndNewer('other', '0.2.5'))) { // Set missing entry @@ -367,9 +373,6 @@ function FILTER_INIT_RANDOMIZER () { // Simply init the randomizer with seed and _ADD value mt_srand(generateSeed() + getConfig('_ADD')); - - // Initialize array with all allowed chars - $GLOBALS['_abc'] = explode(',', 'a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,1,2,3,4,6,7,8,9,-,+,_,/,.'); } // Filter for removing updates @@ -1088,12 +1091,12 @@ function FILTER_LOAD_PAGE_HEADER () { $GLOBALS['__page_header'] = loadTemplate('page_header', TRUE); // Include meta data in 'guest' module - if ((isModuleSet()) && (getModule() == 'index')) { + if (isModuleSet()) { // Load meta data template - $GLOBALS['__page_header'] .= loadTemplate('metadata', TRUE); + $GLOBALS['__page_header'] .= loadTemplate(getMenuModeFromModule() . '_metadata', TRUE); // Add meta description to header - if ((isInstalled()) && (isAdminRegistered()) && (SQL_IS_LINK_UP())) { + if ((isInstalled()) && (isAdminRegistered()) && (SQL_IS_LINK_UP()) && (getModule() == 'index')) { // Add meta description not in admin and login module and when the script is installed generateMetaDescriptionCode(); } // END - if @@ -1259,7 +1262,7 @@ function FILTER_INIT_SESSION ($filterData) { // Filter for sending "build mail" to admin function FILTER_SEND_BUILD_MAIL ($filterData) { // Was one line updated? - if ($filterData['affected'] > 0) { + if (($filterData['affected'] > 0) || (isDebugBuildMailsEnabled())) { // Then call the proper function call_user_func_array('sendGenericBuildMails', $filterData); } // END - if @@ -1309,17 +1312,17 @@ function FILTER_HANDLE_REFERRER_BANNER_VIEW ($filterData) { // Redirect redirectToUrl($data['url'], FALSE); - } else { - // @TODO No banner found, output some default banner - logDebugMessage(__FUNCTION__, __LINE__, 'Banner ' . bigintval(getRequestElement('banner')) . ' not dound.'); - } + } // END - if + + // @TODO No banner found, output some default banner + logDebugMessage(__FUNCTION__, __LINE__, 'Banner ' . bigintval(getRequestElement('banner')) . ' not found.'); // Free memory SQL_FREERESULT($result); - } else { - // Do nothing for now - redirectToUrl('modules.php?module=index'); - } + } // END - if + + // Do nothing for now + redirectToUrl('modules.php?module=index'); } // Filter for redirecting on wrong server name (e.g. bad.your-server.tld will be redirected to your-server.tld) @@ -1352,5 +1355,40 @@ function FILTER_ADD_INPUT_HIDDEN_SESSION_ID ($filterData) { return $filterData; } +// Filter for purging old SERVER_NAME entries +function FILTER_SERVER_NAME_EXTRA_AUTOPURGE ($filterData) { + // Is purging configured? + if ((isApServerNameEnabled()) && (getApServerNameSince() > 0)) { + // Then start purging + SQL_QUERY('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) { + // Okay, then send an email to the admin + sendAdminNotification('{--ADMIN_PURGE_USER_SERVER_NAME_LOG_SUBJECT--}', 'admin_purge_user_server_name_log', SQL_AFFECTEDROWS()); + } // END - if + } // END - if + + // Return filter data + return $filterData; +} + +// Filter for detecting menu mode +function FILTER_DETERMINE_MENU_MODE_GENERIC ($filterData) { + // "Detect" it + switch (getModule()) { + case 'confirm': // Login script is 'member' + $filterData = 'member'; + break; + } // END - switch + + // Return filter data + return $filterData; +} + // [EOF] ?>