// Translates the american decimal dot into a german comma
// OPPOMENT: convertCommaToDot()
-function translateComma ($dotted, $cut = true, $max = '0') {
+function translateComma ($dotted, $cut = TRUE, $max = '0') {
// First, cast all to double, due to PHP changes
$dotted = (double) $dotted;
} // END - if
// Cut zeros off?
- if (($cut === true) && ($max == '0')) {
+ if (($cut === TRUE) && ($max == '0')) {
// Test for commata if in cut-mode
$com = explode('.', $dotted);
if (count($com) < 2) {
break;
default: // Please report this
- reportBug(__FUNCTION__, __LINE__, 'Unsupported visible value detected. content=<pre>' . print_r($content, true) . '</pre>');
+ reportBug(__FUNCTION__, __LINE__, 'Unsupported visible value detected. content=<pre>' . print_r($content, TRUE) . '</pre>');
break;
} // END - switch
break;
default: // Please report this
- reportBug(__FUNCTION__, __LINE__, 'Unsupported locked value detected. content=<pre>' . print_r($content, true) . '</pre>');
+ reportBug(__FUNCTION__, __LINE__, 'Unsupported locked value detected. content=<pre>' . print_r($content, TRUE) . '</pre>');
break;
} // END - switch
}
// Redirects to an URL and if neccessarry extends it with own base URL
-function redirectToUrl ($url, $allowSpider = true) {
+function redirectToUrl ($url, $allowSpider = TRUE) {
// Is the output mode -2?
if (isAjaxOutputMode()) {
// This is always (!) an AJAX request and shall not be redirected
// We should not sent a redirect if headers are already sent
if (!headers_sent()) {
// Load URL when headers are not sent
- sendRawRedirect(doFinalCompilation(str_replace('&', '&', $url), false));
+ sendRawRedirect(doFinalCompilation(str_replace('&', '&', $url), FALSE));
} else {
// Output error message
loadInclude('inc/header.php');
- loadTemplate('redirect_url', false, str_replace('&', '&', $url));
+ loadTemplate('redirect_url', FALSE, str_replace('&', '&', $url));
loadInclude('inc/footer.php');
}
* $a_sort - Array, das die Sortiereihenfolge der ersten Elementeben *
* $primary_key - Primaerschl.ssel aus $a_sort, nach dem sortiert wird *
* $order - Sortiereihenfolge: -1 = a-Z, 0 = keine, 1 = Z-a *
- * $nums - true = Als Zahlen sortieren, false = Als Zeichen sortieren *
+ * $nums - TRUE = Als Zahlen sortieren, FALSE = Als Zeichen sortieren *
* *
* $a_sort muss Elemente enthalten, deren Wert Schluessel von $array *
* sind... Klingt kompliziert, suchen Sie mal mein Beispiel, dann sehen *
* Sie, dass es doch nicht so schwer ist! :-) *
* *
************************************************************************/
-function array_pk_sort (&$array, $a_sort, $primary_key = '0', $order = -1, $nums = false) {
+function array_pk_sort (&$array, $a_sort, $primary_key = '0', $order = -1, $nums = FALSE) {
$temporaryArray = $array;
while ($primary_key < count($a_sort)) {
foreach ($temporaryArray[$a_sort[$primary_key]] as $key => $value) {
foreach ($temporaryArray[$a_sort[$primary_key]] as $key2 => $value2) {
- $match = false;
- if ($nums === false) {
+ $match = FALSE;
+ if ($nums === FALSE) {
// Sort byte-by-byte (also numbers will be interpreted as chars! E.g.: "9" > "10")
- if (($key != $key2) && (strcmp(strtolower($temporaryArray[$a_sort[$primary_key]][$key]), strtolower($temporaryArray[$a_sort[$primary_key]][$key2])) == $order)) $match = true;
+ if (($key != $key2) && (strcmp(strtolower($temporaryArray[$a_sort[$primary_key]][$key]), strtolower($temporaryArray[$a_sort[$primary_key]][$key2])) == $order)) $match = TRUE;
} elseif ($key != $key2) {
// Sort numbers (E.g.: 9 < 10)
- if (($temporaryArray[$a_sort[$primary_key]][$key] < $temporaryArray[$a_sort[$primary_key]][$key2]) && ($order == -1)) $match = true;
- if (($temporaryArray[$a_sort[$primary_key]][$key] > $temporaryArray[$a_sort[$primary_key]][$key2]) && ($order == 1)) $match = true;
+ if (($temporaryArray[$a_sort[$primary_key]][$key] < $temporaryArray[$a_sort[$primary_key]][$key2]) && ($order == -1)) $match = TRUE;
+ if (($temporaryArray[$a_sort[$primary_key]][$key] > $temporaryArray[$a_sort[$primary_key]][$key2]) && ($order == 1)) $match = TRUE;
}
if ($match) {
}
// Does only allow numbers
-function bigintval ($num, $castValue = true, $abortOnMismatch = true) {
+function bigintval ($num, $castValue = TRUE, $abortOnMismatch = TRUE) {
//* DEBUG: */ debugOutput('[' . __FUNCTION__ . ':' . __LINE__ . '] ' . 'num=' . $num . ',castValue=' . intval($castValue) . ',abortOnMismatch=' . intval($abortOnMismatch) . ' - ENTERED!');
- // Filter all numbers out
+ // Filter all non-number chars out, so only number chars will remain
$ret = preg_replace('/[^0123456789]/', '', $num);
// Shall we cast?
- if ($castValue === true) {
+ if ($castValue === TRUE) {
// Cast to biggest numeric type
$ret = (double) $ret;
} // END - if
// Has the whole value changed?
- if (('' . $ret . '' != '' . $num . '') && ($abortOnMismatch === true) && (!is_null($num))) {
+ if (('' . $ret . '' != '' . $num . '') && ($abortOnMismatch === TRUE) && (!is_null($num))) {
// Log the values
reportBug(__FUNCTION__, __LINE__, 'Problem with number found. ret[' . gettype($ret) . ']=' . $ret . ', num[' . gettype($num) . ']='. $num);
} // END - if
// Creates a 'fancy' human-readable timestamp from a Uni* stamp
function createFancyTime ($stamp) {
// Get data array with years/months/weeks/days/...
- $data = createTimeSelections($stamp, '', '', '', true);
+ $data = createTimeSelections($stamp, '', '', '', TRUE);
$ret = '';
foreach ($data as $k => $v) {
if ($v > 0) {
}
// Function taken from user comments on www.php.net / function isInStringIgnoreCase()
-function isUrlValid ($url, $compile = true) {
+function isUrlValid ($url, $compile = TRUE) {
// Trim URL a little
$url = trim(urldecode($url));
//* DEBUG: */ debugOutput($url);
// Compile some chars out...
- if ($compile === true) {
- $url = compileUriCode($url, false, false, false);
+ if ($compile === TRUE) {
+ $url = compileUriCode($url, FALSE, FALSE, FALSE);
} // END - if
//* DEBUG: */ debugOutput($url);
// Check for the extension filter
if (isExtensionActive('filter')) {
// Use the extension's filter set
- return FILTER_VALIDATE_URL($url, false);
+ return FILTER_VALIDATE_URL($url, FALSE);
} // END - if
/*
}
// Generate a hash for extra-security for all passwords
-function generateHash ($plainText, $salt = '', $hash = true) {
+function generateHash ($plainText, $salt = '', $hash = TRUE) {
// Debug output
//* DEBUG: */ debugOutput('plainText('.strlen($plainText).')=' . $plainText . ',salt('.strlen($salt).')=' . $salt . ',hash=' . intval($hash));
// 123 4 43 3 4 432 2 3 32 2 3 32 2 3 3 21
if (((isExtensionInstalledAndOlder('sql_patches', '0.3.6')) && (empty($salt))) || (!isExtensionActive('sql_patches')) || (!isExtensionInstalledAndNewer('other', '0.2.5')) || (strlen($salt) == 32)) {
// Extension ext-sql_patches is missing/outdated so we hash the plain text with MD5
- if ($hash === true) {
+ if ($hash === TRUE) {
// Is plain password
return md5($plainText);
} else {
$keys = getSiteKey() . getEncryptSeparator() . getDateKey() . getEncryptSeparator() . getSecretKey() . getEncryptSeparator() . getFileHash() . getEncryptSeparator() . getDateFromRepository() . getEncryptSeparator() . getMasterSalt();
// Additional data
- $data = $plainText . getEncryptSeparator() . uniqid(mt_rand(), true) . getEncryptSeparator() . time();
+ $data = $plainText . getEncryptSeparator() . uniqid(mt_rand(), TRUE) . getEncryptSeparator() . time();
// Calculate number for generating the code
$a = time() + getConfig('_ADD') - 1;
// Generates a ***weak*** seed
function generateSeed () {
- return microtime(true) * 100000;
+ return microtime(TRUE) * 100000;
}
// Converts a message code to a human-readable message
case getCode('LOGIN_EMPTY_PASSWORD'): $message = '{--LOGIN_PASSWORD_IS_EMPTY--}'; break;
case getCode('ERROR_MAILID'):
- if (isExtensionActive('mailid', true)) {
+ if (isExtensionActive('mailid', TRUE)) {
$message = '{--ERROR_CONFIRMING_MAIL--}';
} else {
$message = '{%pipe,generateExtensionInactiveNotInstalledMessage=mailid%}';
$content['seconds'] = round(getUrlTlock() - $content['hours'] * 60 * 60 - $content['minutes'] * 60);
// Finally contruct the message
- $message = loadTemplate('tlock_message', true, $content);
+ $message = loadTemplate('tlock_message', TRUE, $content);
break;
default:
$pattern['ipg12'] = $http . $ip . $getstring1;
// Test all patterns
- $reg = false;
+ $reg = FALSE;
foreach ($pattern as $key => $pat) {
// Debug regex?
if (isDebugRegularExpressionEnabled()) {
$reg = ($reg || preg_match(('^' . $pat . '^'), $url));
// Does it match?
- if ($reg === true) {
+ if ($reg === TRUE) {
break;
} // END - if
} // END - foreach
// @TODO Rewrite this function to use readFromFile() and writeToFile()
function changeDataInFile ($FQFN, $comment, $prefix, $suffix, $inserted, $seek=0) {
// Initialize some variables
- $done = false;
+ $done = FALSE;
$seek++;
$next = -1;
- $found = false;
+ $found = FALSE;
// Is the file there and read-/write-able?
if ((isFileReadable($FQFN)) && (is_writeable($FQFN))) {
// Is the resource again valid?
if (is_resource($fp_tmp)) {
// Mark temporary file as readable
- $GLOBALS['file_readable'][$tmp] = true;
+ $GLOBALS['file_readable'][$tmp] = TRUE;
// Start reading
while (!feof($fp)) {
if (isInString($search, $line)) {
$next = '0';
- $found = true;
+ $found = TRUE;
} // END - if
if ($next > -1) {
fclose($fp_tmp);
// Finished writing tmp file
- $done = true;
+ $done = TRUE;
} // END - if
// Close source file
fclose($fp);
- if (($done === true) && ($found === true)) {
+ if (($done === TRUE) && ($found === TRUE)) {
// Copy back tmp file and delete tmp :-)
copyFileVerified($tmp, $FQFN, 0644);
return removeFile($tmp);
- } elseif ($found === false) {
+ } elseif ($found === FALSE) {
outputHtml('<strong>CHANGE:</strong> 404!');
} else {
outputHtml('<strong>TMP:</strong> UNDONE!');
}
// An error was detected!
- return false;
+ return FALSE;
}
// Debug message logger
function logDebugMessage ($funcFile, $line, $message, $force=true) {
// Is debug mode enabled?
- if ((isDebugModeEnabled()) || ($force === true)) {
+ if ((isDebugModeEnabled()) || ($force === TRUE)) {
// Remove CRLF
$message = str_replace(array(chr(13), chr(10)), array('', ''), $message);
// Log this message away
- appendLineToFile(getPath() . getCachePath() . 'debug.log', generateDateTime(time(), '4') . '|' . getModule(false) . '|' . basename($funcFile) . '|' . $line . '|' . $message);
+ appendLineToFile(getPath() . getCachePath() . 'debug.log', generateDateTime(time(), '4') . '|' . getModule(FALSE) . '|' . basename($funcFile) . '|' . $line . '|' . $message);
} // END - if
}
// Does the filter function exist?
if (function_exists($filterFunction)) {
// Is there extra parameters here?
- if (!empty($extraValue)) {
+ if ((!is_null($extraValue)) && (!empty($extraValue))) {
// Put both parameters in one new array by default
$args = array($value, $extraValue);
$ret = call_user_func_array($filterFunction, $args);
// Is $ret 'true'?
- if ($ret === true) {
+ if ($ret === TRUE) {
// Test passed, so write direct value
$ret = $args;
} // END - if
} else {
// One parameter call
$ret = call_user_func($filterFunction, $value);
+ //* BUG */ die('ret['.gettype($ret).']=' . $ret . ',value=' . $value.',filterFunction=' . $filterFunction);
// Is $ret 'true'?
- if ($ret === true) {
+ if ($ret === TRUE) {
// Test passed, so write direct value
$ret = $value;
} // END - if
// Converts timestamp selections into a timestamp
function convertSelectionsToEpocheTime (array &$postData, array &$content, &$id, &$skip) {
// Init test variable
- $skip = false;
+ $skip = FALSE;
$test2 = '';
// Get last three chars
// Generate timestamp
$postData[$test] = createEpocheTimeFromSelections($test, $postData);
array_push($content, sprintf("`%s`='%s'", $test, $postData[$test]));
- $GLOBALS['skip_config'][$test] = true;
+ $GLOBALS['skip_config'][$test] = TRUE;
// Remove data from array
foreach (array('ye', 'mo', 'we', 'da', 'ho', 'mi', 'se') as $rem) {
// Skip adding
unset($id);
- $skip = true;
+ $skip = TRUE;
$test2 = $test;
} // END - if
} // END - if
// OPPOMENT: translateComma()
function convertCommaToDot ($str) {
// Default float is not a float... ;-)
- $float = false;
+ $float = FALSE;
// Which language is selected?
switch (getLanguage()) {
);
// Load template
- $OUT = loadTemplate('login_failures', true, $content);
+ $OUT = loadTemplate('login_failures', TRUE, $content);
} // END - if
// Reset session data
}
// Rebuild cache
-function rebuildCache ($cache, $inc = '', $force = false) {
+function rebuildCache ($cache, $inc = '', $force = FALSE) {
// Debug message
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("cache=%s, inc=%s, force=%s", $cache, $inc, intval($force)));
// Shall I remove the cache file?
- if ((isExtensionInstalled('cache')) && (isCacheInstanceValid())) {
- // Rebuild cache
+ if ((isExtensionInstalled('cache')) && (isCacheInstanceValid()) && (isHtmlOutputMode())) {
+ // Rebuild cache only in HTML output-mode
if ($GLOBALS['cache_instance']->loadCacheFile($cache)) {
// Destroy it
$GLOBALS['cache_instance']->removeCacheFile($force);
}
// Determines the real remote address
-function determineRealRemoteAddress ($remoteAddr = false) {
+function determineRealRemoteAddress ($remoteAddr = FALSE) {
// Default is 127.0.0.1
$address = '127.0.0.1';
// Adds a bonus mail to the queue
// This is a high-level function!
-function addNewBonusMail ($data, $mode = '', $output = true) {
+function addNewBonusMail ($data, $mode = '', $output = TRUE) {
// Use mode from data if not set and availble ;-)
if ((empty($mode)) && (isset($data['mail_mode']))) {
$mode = $data['mail_mode'];
);
// Mail inserted into bonus pool
- if ($output === true) {
+ if ($output === TRUE) {
displayMessage('{--ADMIN_BONUS_SEND--}');
} // END - if
- } elseif ($output === true) {
+ } elseif ($output === TRUE) {
// More entered than can be reached!
displayMessage('{--ADMIN_MORE_SELECTED--}');
} else {
// Enables the reset mode and runs it
function doReset () {
// Enable the reset mode
- $GLOBALS['reset_enabled'] = true;
+ $GLOBALS['reset_enabled'] = TRUE;
// Run filters
runFilterChain('reset');
// Enables the reset mode (hourly, weekly and monthly) and runs it
function doHourly () {
// Enable the hourly reset mode
- $GLOBALS['hourly_enabled'] = true;
+ $GLOBALS['hourly_enabled'] = TRUE;
// Run filters (one always!)
runFilterChain('hourly');
* @param $suffix Suffix for positive matches ($extension will be appended, too)
* @return $foundMatches All found positive matches for above criteria
*/
-function getArrayFromDirectory ($baseDir, $prefix, $fileIncludeDirs = false, $addBaseDir = true, $excludeArray = array(), $extension = '.php', $excludePattern = '@(\.|\.\.)$@', $recursive = true, $suffix = '') {
+function getArrayFromDirectory ($baseDir, $prefix, $fileIncludeDirs = FALSE, $addBaseDir = TRUE, $excludeArray = array(), $extension = '.php', $excludePattern = '@(\.|\.\.)$@', $recursive = TRUE, $suffix = '') {
// Add default entries we should always exclude
array_unshift($excludeArray, '.', '..', '.svn', '.htaccess');
// Read all entries
while ($baseFile = readdir($dirPointer)) {
// Exclude '.', '..' and entries in $excludeArray automatically
- if (in_array($baseFile, $excludeArray, true)) {
+ if (in_array($baseFile, $excludeArray, TRUE)) {
// Exclude them
//* DEBUG: */ debugOutput('excluded=' . $baseFile);
continue;
} // END - if
// Skip also files with non-matching prefix genericly
- if (($recursive === true) && (isDirectory($FQFN))) {
+ if (($recursive === TRUE) && (isDirectory($FQFN))) {
// Is a redirectory so read it as well
$foundMatches = merge_array($foundMatches, getArrayFromDirectory($baseDir . $baseFile . '/', $prefix, $fileIncludeDirs, $addBaseDir, $excludeArray, $extension, $excludePattern, $recursive));
// Is the file a PHP script or other?
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'baseDir=' . $baseDir . ',prefix=' . $prefix . ',baseFile=' . $baseFile);
- if (($fileExtension == '.php') || (($fileIncludeDirs === true) && (isDirectory($FQFN)))) {
+ if (($fileExtension == '.php') || (($fileIncludeDirs === TRUE) && (isDirectory($FQFN)))) {
// Is this a valid include file?
if ($extension == '.php') {
// Remove both for extension name
$extName = substr($baseFile, strlen($prefix), -4);
// Add file with or without base path
- if ($addBaseDir === true) {
+ if ($addBaseDir === TRUE) {
// With base path
array_push($foundMatches, $fileName);
} else {
} // END - if
// Don't execute anything here if we don't need or ext-other is missing
- if ($GLOBALS['debug_sql_available'] === false) {
+ if ($GLOBALS['debug_sql_available'] === FALSE) {
return;
} // END - if
} // END - if
// Remeber this as profiled (or not, but we don't care here)
- $GLOBALS['debug_sqls'][$F][$L][$sqlString] = true;
+ $GLOBALS['debug_sqls'][$F][$L][$sqlString] = TRUE;
// Generate record
$record = array(
} // END - if
// Is there a valid session?
- if (((!isset($GLOBALS['valid_session'])) || ($GLOBALS['valid_session'] === false) || (!isset($_COOKIE[session_name()]))) && (isSpider() === false)) {
+ if (((!isset($GLOBALS['valid_session'])) || ($GLOBALS['valid_session'] === FALSE) || (!isset($_COOKIE[session_name()]))) && (isSpider() === FALSE)) {
// Determine right separator
$separator = '&';
if (!isInString('?', $url)) {
// Simple check for spider
function isSpider () {
// Get the UA and trim it down
- $userAgent = trim(detectUserAgent(true));
+ $userAgent = trim(detectUserAgent(TRUE));
// It should not be empty, if so it is better a spider/bot
if (empty($userAgent)) {
// It is a spider/bot
- return true;
+ return TRUE;
} // END - if
// Is it a spider?
// RegexPattern to exclude ., .., .revision, .svn, debug.log or .cache in the filenames
$excludePattern = '@(\.revision|\.svn|debug\.log|\.cache|config\.php)$@';
- $ds = getArrayFromDirectory($dir, '', false, true, array(), '.php', $excludePattern);
+ $ds = getArrayFromDirectory($dir, '', FALSE, TRUE, array(), '.php', $excludePattern);
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'count(ds)='.count($ds));
// Walk through all entries
$mbPrefix = '';
// Detect multi-byte (strictly)
- if (mb_detect_encoding($str, 'auto', true) !== false) {
+ if (mb_detect_encoding($str, 'auto', TRUE) !== FALSE) {
// With multi-byte encoded string
$mbPrefix = 'mb_';
} // END - if
foreach ($needles as $key => $needle) {
// Is there found a partial string?
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'heystack='.$heystack.',key='.$key.',needle='.$needle.',offset='.$offset);
- if (strpos($heystack, $needle, $offset) !== false) {
+ if (strpos($heystack, $needle, $offset) !== FALSE) {
// Add the found key
array_push($keys, $key);
} // END - if
$pointsColumn = 'points';
// Which points, locked or normal?
- if ($locked === true) {
+ if ($locked === TRUE) {
$pointsColumn = 'locked_points';
} // END - if
function convertBooleanToYesNo ($boolean) {
// Default is 'N'
$converted = 'N';
- if ($boolean === true) {
+ if ($boolean === TRUE) {
// Set 'Y'
$converted = 'Y';
} // END - if
// Is it a member?
if (!isMember()) {
// Then abort here
- return false;
+ return FALSE;
} // END - if
// Set POST data generic userid
doGenericAddEntries($tableName, $columns, $filterFunctions, $extraValues, $timeColumns, $columnIndex);
// Entry has been added?
- if ((!SQL_HASZEROAFFECTED()) && ($GLOBALS['__XML_PARSE_RESULT'] === true)) {
+ if ((!SQL_HASZEROAFFECTED()) && ($GLOBALS['__XML_PARSE_RESULT'] === TRUE)) {
// Display success message
displayMessage('{--MEMBER_ENTRY_ADDED--}');
} else {
}
// Edit rows by given id numbers
-function memberEditEntriesConfirm ($tableName, $columns = array(), $filterFunctions = array(), $extraValues = array(), $timeColumns = array(), $editNow = array(false), $idColumn = array('id'), $userIdColumn = array('userid'), $rawUserId = array('userid'), $cacheFiles = array()) {
+function memberEditEntriesConfirm ($tableName, $columns = array(), $filterFunctions = array(), $extraValues = array(), $timeColumns = array(), $editNow = array(FALSE), $idColumn = array('id'), $userIdColumn = array('userid'), $rawUserId = array('userid'), $cacheFiles = array()) {
// $tableName must be an array
if ((!is_array($tableName)) || (count($tableName) != 1)) {
// No tableName specified
} // END - if
// Shall we change here or list for editing?
- if ($editNow[0] === true) {
+ if ($editNow[0] === TRUE) {
// Add generic userid field
setPostRequestElement('userid', getMemberId());
// Call generic change method
- $affected = doGenericEditEntriesConfirm($tableName, $columns, $filterFunctions, $extraValues, $timeColumns, $editNow, $idColumn, $userIdColumn, $rawUserId, $cacheFiles);
+ $affected = doGenericEditEntriesConfirm($tableName, $columns, $filterFunctions, $extraValues, $timeColumns, $editNow, $idColumn, $userIdColumn, $rawUserId, $cacheFiles, 'mem_edit');
// Was this fine?
if ($affected == countPostSelection($idColumn[0])) {
}
// Delete rows by given id numbers
-function memberDeleteEntriesConfirm ($tableName, $columns = array(), $filterFunctions = array(), $extraValues = array(), $deleteNow = array(false), $idColumn = array('id'), $userIdColumn = array('userid'), $rawUserId = array('userid'), $cacheFiles = array()) {
+function memberDeleteEntriesConfirm ($tableName, $columns = array(), $filterFunctions = array(), $extraValues = array(), $deleteNow = array(FALSE), $idColumn = array('id'), $userIdColumn = array('userid'), $rawUserId = array('userid'), $cacheFiles = array()) {
// Do this only for members
assert(isMember());
} // END - if
// Shall we delete here or list for deletion?
- if ($deleteNow[0] === true) {
+ if ($deleteNow[0] === TRUE) {
// Add generic userid field
setPostRequestElement('userid', getMemberId());
// Call generic function
- $affected = doGenericDeleteEntriesConfirm($tableName, $columns, $filterFunctions, $extraValues, $deleteNow, $idColumn, $userIdColumn, $rawUserId, $cacheFiles);
+ $affected = doGenericDeleteEntriesConfirm($tableName, $columns, $filterFunctions, $extraValues, $deleteNow, $idColumn, $userIdColumn, $rawUserId, $cacheFiles, 'mem_delete');
// Was this fine?
if ($affected == countPostSelection($idColumn[0])) {