// 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
}
} // 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",
// 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',
'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?
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!