]> git.mxchange.org Git - mailer.git/blobdiff - inc/libs/mediadata_functions.php
Renamed function so it might be more understandable
[mailer.git] / inc / libs / mediadata_functions.php
index fc06a8e4a0c9609bf059198d430932a66a6d4774..65ad9e015899ae15a28e616dc483852829e0c262 100644 (file)
@@ -14,8 +14,6 @@
  * $Date::                                                            $ *
  * $Tag:: 0.2.1-FINAL                                                 $ *
  * $Author::                                                          $ *
- * Needs to be in all Files and every File needs "svn propset           *
- * svn:keywords Date Revision" (autoprobset!) at least!!!!!!            *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * Copyright (c) 2009, 2010 by Mailer Developer Team                    *
@@ -44,35 +42,64 @@ if (!defined('__SECURITY')) {
 
 // Update an entry
 function updateMediadataEntry ($keys_array, $mode, $value) {
+       // Default is nothing added/updated
+       $added = null;
+
+       // Do we have entries?
        if (is_array($keys_array) && ($value > 0)) {
                // Is an array so we can run it through
                foreach ($keys_array as $key) {
                        // First check if it does exist
-                       $result_media = SQL_QUERY_ESC("SELECT media_key FROM `{?_MYSQL_PREFIX?}_mediadata`
-WHERE media_key = '%s' LIMIT 1", array($key), __FUNCTION__, __LINE__);
+                       $result_media = SQL_QUERY_ESC("SELECT
+       `media_key`
+FROM
+       `{?_MYSQL_PREFIX?}_mediadata`
+WHERE
+       `media_key` = '%s'
+LIMIT 1", array($key), __FUNCTION__, __LINE__);
                        if (SQL_NUMROWS($result_media) == 0) {
                                // Not found so we create it (mode will be ignored here!)
                                SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_mediadata` (`media_key`, `media_value`) VALUES ('%s', '%s')",
-                               array($key, $value), __FUNCTION__, __LINE__);
+                                       array($key, $value), __FUNCTION__, __LINE__);
                        } else {
                                // Update entry
                                switch ($mode) {
                                        case 'add': $mode = '+'; break;
                                        case 'sub': $mode = '-'; break;
-                               }
+                               } // END - switch
 
                                if ($mode == 'init') {
                                        // Initialize entry
                                        SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_mediadata` SET `media_value`=%s WHERE `media_key`='%s' LIMIT 1",
-                                       array($value, $key), __FUNCTION__, __LINE__);
+                                               array($value, $key), __FUNCTION__, __LINE__);
                                } else {
                                        // Update entry
                                        SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_mediadata` SET `media_value`=`media_value`".$mode."%s WHERE `media_key`='%s' LIMIT 1",
-                                       array($value, $key), __FUNCTION__, __LINE__);
+                                               array($value, $key), __FUNCTION__, __LINE__);
                                }
                        }
-               }
-       }
+
+                       // Check affected rows
+                       if (is_null($added)) {
+                               //* DEBUG: */ debugOutput(__FUNCTION__ . '(<font color="#0000aa">' . __LINE__ . '</font>):added='.intval($added));
+                               $added = (!SQL_HASZEROAFFECTED());
+                               //* DEBUG: */ debugOutput(__FUNCTION__ . '(<font color="#0000aa">' . __LINE__ . '</font>):added='.intval($added));
+                       } else {
+                               //* DEBUG: */ debugOutput(__FUNCTION__ . '(<font color="#0000aa">' . __LINE__ . '</font>):added='.intval($added));
+                               $added = ($added && (!SQL_HASZEROAFFECTED()));
+                               //* DEBUG: */ debugOutput(__FUNCTION__ . '(<font color="#0000aa">' . __LINE__ . '</font>):added='.intval($added));
+                       }
+               } // END - foreach
+       } // END - if
+
+       // Zero entries are always added
+       if ($value == 0) {
+               // Is zero value, so we need to set $added here to avoid wrong false result
+               $added = true;
+       } // END - if
+
+       // Return result
+       return $added;
 }
 
 // Getter for entry
@@ -95,7 +122,10 @@ function getMediadataEntry ($key) {
 // Filter for updating media data
 function FILTER_UPDATE_MEDIADATA_ENTRY ($data) {
        // Execute the filter function
-       updateMediadataEntry(array('total_points'), $data['mode'], $data['points']);
+       $data['added'] = ($data['added'] && updateMediadataEntry(array('total_points'), $data['mode'], $data['points']));
+
+       // Return data
+       return $data;
 }
 
 //