X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Fmysql-manager.php;h=ce649cdd36ef09f474ece96e26443566451dbc95;hp=4b02a5fa0d2bfbb5ac55d95560e14be6fb6054e1;hb=96d8f54d3fee1d51c38dd6b79c28215f7f5c83ec;hpb=56391f52928b7bafd0bf749437ff36a9823b52da diff --git a/inc/mysql-manager.php b/inc/mysql-manager.php index 4b02a5fa0d..ce649cdd36 100644 --- a/inc/mysql-manager.php +++ b/inc/mysql-manager.php @@ -2011,10 +2011,30 @@ function doGenericAddEntries ($tableName, $columns = array(), $filterFunctions = // If all values are okay, continue if ($sqlValues[$key] !== false) { // Build the SQL query - $SQL = 'INSERT INTO `{?_MYSQL_PREFIX?}_' . $tableName[0] . '` (`' . implode('`,`', $sqlColumns) . "`) VALUES (" . implode(',', $sqlValues) . ')'; + $sql = 'INSERT INTO `{?_MYSQL_PREFIX?}_' . $tableName[0] . '` (`' . implode('`,`', $sqlColumns) . "`) VALUES (" . implode(',', $sqlValues) . ')'; // Run the SQL query - SQL_QUERY($SQL, __FUNCTION__, __LINE__); + SQL_QUERY($sql, __FUNCTION__, __LINE__); + + // Add id + setPostRequestElement('id', SQL_INSERTID()); + + // Prepare filter data array + $filterData = array( + 'mode' => 'add', + 'table_name' => $tableName, + 'content' => postRequestArray(), + 'id' => SQL_INSERTID(), + 'subject' => '', + // @TODO Used generic 'userid' here + 'userid_column' => array('userid'), + 'raw_userid' => array('userid'), + 'affected' => SQL_AFFECTEDROWS(), + 'sql' => $sql, + ); + + // Send "build mail" out + runFilterChain('send_build_mail', $filterData); } // END - if } @@ -2077,13 +2097,19 @@ function doGenericEditEntriesConfirm ($tableName, $columns = array(), $filterFun } // END - foreach // Finish SQL command - $sql = substr($sql, 0, -1) . " WHERE `" . SQL_ESCAPE($idColumn[0]) . "`=" . bigintval($id) . " LIMIT 1"; + $sql = substr($sql, 0, -1) . " WHERE `" . SQL_ESCAPE($idColumn[0]) . "`=" . bigintval($id); + if ((isset($rawUserId[0])) && (isPostRequestElementSet($rawUserId[0])) && (isset($userIdColumn[0]))) { + // Add user id as well + $sql .= ' AND `' . $userIdColumn[0] . '`=' . bigintval(postRequestElement($rawUserId[0])); + } // END - if + $sql .= " LIMIT 1"; // Run this query SQL_QUERY($sql, __FUNCTION__, __LINE__); // Add affected rows - $affected += SQL_AFFECTEDROWS(); + $edited = SQL_AFFECTEDROWS(); + $affected += $edited; // Load all data from that id $result = SQL_QUERY_ESC("SELECT * FROM `{?_MYSQL_PREFIX?}_%s` WHERE `%s`=%s LIMIT 1", @@ -2096,9 +2122,6 @@ function doGenericEditEntriesConfirm ($tableName, $columns = array(), $filterFun // Fetch the data and merge it into $content $content = merge_array($content, SQL_FETCHARRAY($result)); - // Free the result - SQL_FREERESULT($result); - // Prepare filter data array $filterData = array( 'mode' => 'edit', @@ -2106,11 +2129,17 @@ function doGenericEditEntriesConfirm ($tableName, $columns = array(), $filterFun 'content' => $content, 'id' => $id, 'subject' => '', - 'userid_column' => $userIdColumn + 'userid_column' => $userIdColumn, + 'raw_userid' => $rawUserId, + 'affected' => $edited, + 'sql' => $sql, ); // Send "build mail" out runFilterChain('send_build_mail', $filterData); + + // Free the result + SQL_FREERESULT($result); } // END - foreach // Delete cache? @@ -2135,6 +2164,51 @@ function doGenericEditEntriesConfirm ($tableName, $columns = array(), $filterFun return $affected; } +// Delete rows by given id numbers +function doGenericDeleteEntriesConfirm ($tableName, $columns = array(), $filterFunctions = array(), $extraValues = array(), $deleteNow = array(false), $idColumn = array('id'), $userIdColumn = array('userid'), $rawUserId = array('userid'), $cacheFiles = array()) { + // The base SQL command: + $sql = "DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_%s` WHERE `%s` IN (%s)"; + + // Is a user id provided? + if ((isset($rawUserId[0])) && (isPostRequestElementSet($rawUserId[0])) && (isset($userIdColumn[0]))) { + // Add user id as well + $sql .= ' AND `' . $userIdColumn[0] . '`=' . bigintval(postRequestElement($rawUserId[0])); + } // END - if + + // Delete them all + $idList = ''; + foreach (postRequestElement($idColumn[0]) as $id => $sel) { + // Is there a userid? + if (isPostRequestElementSet($userIdColumn[0])) { + // Load all data from that id + $result = SQL_QUERY_ESC("SELECT * FROM `{?_MYSQL_PREFIX?}_%s` WHERE `%s`=%s LIMIT 1", + array( + $tableName[0], + $idColumn[0], + $id + ), __FUNCTION__, __LINE__); + + // Fetch the data + $content = SQL_FETCHARRAY($result); + + // Free the result + SQL_FREERESULT($result); + + // Send "build mails" out + sendGenericBuildMails('delete', $tableName, $content, $id, '', $userIdColumn); + } // END - if + + // Add id number + $idList .= $id . ','; + } // END - foreach + + // Run the query + SQL_QUERY_ESC($sql, array($tableName[0], $idColumn[0], substr($idList, 0, -1)), __FUNCTION__, __LINE__); + + // Return affected rows + return SQL_AFFECTEDROWS(); +} + // Build a special template list function doGenericListBuilder ($prefix, $listType, $tableName, $columns, $filterFunctions, $extraValues, $idColumn, $userIdColumn, $rawUserId = array('userid')) { // $tableName and $idColumn must bove be arrays! @@ -2240,5 +2314,39 @@ function doGenericListBuilder ($prefix, $listType, $tableName, $columns, $filter ); } +// Checks whether given URL is blacklisted +function isUrlBlacklisted ($url) { + // Mark it as not listed by default + $listed = false; + + // Is black-listing enbaled? + if (!isUrlBlacklistEnabled()) { + // No, then all URLs are not in this list + return false; + } elseif (!isset($GLOBALS['blacklist_data'][$url])) { + // Check black-list for given URL + $result = SQL_QUERY_ESC("SELECT UNIX_TIMESTAMP(`timestamp`) AS `blist_timestamp` FROM `{?_MYSQL_PREFIX?}_url_blacklist` WHERE `url`='%s' LIMIT 1", + array($url), __FILE__, __LINE__); + + // Is there an entry? + if (SQL_NUMROWS($result) == 1) { + // Jupp, we got one listed + $GLOBALS['blacklist_data'][$url] = SQL_FETCHARRAY($result); + + // Mark it as listed + $listed = true; + } // END - if + + // Free result + SQL_FREERESULT($result); + } else { + // Is found in cache -> black-listed + $listed = true; + } + + // Return result + return $listed; +} + // [EOF] ?>