Debug comments rewritten
[mailer.git] / inc / mysql-manager.php
index 9524124961ccf2dba68518fb007a2f45bb4d1183..414cdc5273c908eb66c3593e7b8af5fd6b2aa754 100644 (file)
@@ -1151,6 +1151,7 @@ function GET_REF_LEVEL_PERCENTS ($level) {
  *
  * Dynamic referal system, can also send mails!
  *
+ * subject     = Subject line, write in lower-case letters and underscore is allowed
  * uid         = Referal ID wich should receive...
  * points      = ... xxx points
  * send_notify = shall I send the referal an email or not?
@@ -1159,7 +1160,7 @@ function GET_REF_LEVEL_PERCENTS ($level) {
  * add_mode    = Add points only to $uid or also refs? (WARNING! Changing "ref" to "direct"
  *               for default value will cause no referal will get points ever!!!)
  */
-function ADD_POINTS_REFSYSTEM ($uid, $points, $send_notify=false, $rid="0", $locked=false, $add_mode="ref") {
+function ADD_POINTS_REFSYSTEM ($subject, $uid, $points, $send_notify=false, $rid="0", $locked=false, $add_mode="ref") {
        //* DEBUG: */ print "----------------------- <font color=\"#00aa00\">".__FUNCTION__." - ENTRY</font> ------------------------<ul><li>\n";
        global $DEPTH, $_CONFIG, $DATA, $cacheArray;
 
@@ -1173,6 +1174,12 @@ function ADD_POINTS_REFSYSTEM ($uid, $points, $send_notify=false, $rid="0", $loc
                return;
        } // END - if
 
+       // Add booking record if extension is installed
+       if (EXT_IS_ACTIVE("booking")) {
+               // Add record
+               ADD_BOOKING_RECORD($subject, $uid, $points, "add");
+       } // END - if
+
        // Count up referal depth
        if (!isset($DEPTH)) {
                // Initialialize referal system
@@ -1271,7 +1278,7 @@ function ADD_POINTS_REFSYSTEM ($uid, $points, $send_notify=false, $rid="0", $loc
                        if (($ref > 0) && ($points > 0) && ($ref != $uid) && ($add_mode == "ref")) {
                                // Then let's credit him here...
                                //* DEBUG: */ print __FUNCTION__."(<font color=\"#0000aa\">".__LINE__."</font>):uid={$uid},ref={$ref},points={$points} - ADVANCE!<br />\n";
-                               ADD_POINTS_REFSYSTEM($ref, $points, $send_notify, $ref, $locked);
+                               ADD_POINTS_REFSYSTEM(sprintf("%s_ref:%s", $subject, $DEPTH), $ref, $points, $send_notify, $ref, $locked);
                        } // END - if
                } // END - if
        } // END - if
@@ -1664,28 +1671,28 @@ WHERE p.userid=%s", array(bigintval($uid)), __FILE__, __LINE__);
        $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_data WHERE userid=%s LIMIT 1", array(bigintval($uid)), __FILE__, __LINE__);
 }
 //
-function META_DESCRIPTION($mod, $wht)
-{
+function META_DESCRIPTION ($mod, $wht) {
        global $_CONFIG, $DEPTH;
-       if (($mod != "admin") && ($mod != "login"))
-       {
-               // Exclude admin and member's area
+
+       // Exclude admin and member's area
+       if (($mod != "admin") && ($mod != "login")) {
+               // Construct dynamic description
                $DESCR = MAIN_TITLE." ".trim($_CONFIG['title_middle'])." ".ADD_DESCR("guest", "what-".$wht, true);
-               unset($DEPTH);
-               OUTPUT_HTML("<META name=\"description\" content=\"".$DESCR."\">");
-       }
+
+               // Output it directly
+               OUTPUT_HTML("<meta name=\"description\" content=\"".$DESCR."\" />");
+       } // END - if
+
+       // Remove depth
+       unset($DEPTH);
 }
 //
-function ADD_JACKPOT($points)
-{
+function ADD_JACKPOT($points) {
        $result = SQL_QUERY("SELECT points FROM "._MYSQL_PREFIX."_jackpot WHERE ok='ok' LIMIT 1", __FILE__, __LINE__);
-       if (SQL_NUMROWS($result) == 0)
-       {
+       if (SQL_NUMROWS($result) == 0) {
                // Create line
                $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_jackpot (ok, points) VALUES ('ok','%s')", array($points), __FILE__, __LINE__);
-       }
-        else
-       {
+       } else {
                // Free memory
                SQL_FREERESULT($result);
 
@@ -1695,33 +1702,28 @@ function ADD_JACKPOT($points)
        }
 }
 //
-function SUB_JACKPOT($points)
-{
+function SUB_JACKPOT($points) {
        // First failed
        $ret = "-1";
 
        // Get current points
        $result = SQL_QUERY("SELECT points FROM "._MYSQL_PREFIX."_jackpot WHERE ok='ok' LIMIT 1", __FILE__, __LINE__);
-       if (SQL_NUMROWS($result) == 0)
-       {
+       if (SQL_NUMROWS($result) == 0) {
                // Create line
-               $result = SQL_QUERY("INSERT INTO "._MYSQL_PREFIX."_jackpot (ok, points) VALUES ('ok', 0.00000)", __FILE__, __LINE__);
-       }
-        else
-       {
-               // Free memory
-               SQL_FREERESULT($result);
-
+               SQL_QUERY("INSERT INTO "._MYSQL_PREFIX."_jackpot (ok, points) VALUES ('ok', 0.00000)", __FILE__, __LINE__);
+       } else {
                // Read points
                list($jackpot) = SQL_FETCHROW($result);
-               if ($jackpot >= $points)
-               {
+               if ($jackpot >= $points) {
                        // Update points when there are enougth points in jackpot
-                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_jackpot SET points=points-%s WHERE ok='ok' LIMIT 1",
+                       SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_jackpot SET points=points-%s WHERE ok='ok' LIMIT 1",
                                array($points), __FILE__, __LINE__);
                        $ret = $jackpot - $points;
-               }
+               } // END - if
        }
+
+       // Free memory
+       SQL_FREERESULT($result);
 }
 //
 function IS_DEMO() {
@@ -1789,8 +1791,7 @@ function GET_WHAT($modCheck) {
        return $wht;
 }
 //
-function MODULE_HAS_MENU($mod, $forceDb = false)
-{
+function MODULE_HAS_MENU($mod, $forceDb = false) {
        global $cacheArray, $_CONFIG;
 
        // All is false by default
@@ -1831,18 +1832,26 @@ function MODULE_HAS_MENU($mod, $forceDb = false)
        // Return status
        return $ret;
 }
+
 // Subtract points from database and mediadata cache
-function SUB_POINTS ($uid, $points) {
+function SUB_POINTS ($subject, $uid, $points) {
        // Add points to used points
        $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET `used_points`=`used_points`+%s WHERE userid=%s LIMIT 1",
         array($points, bigintval($uid)), __FILE__, __LINE__);
 
+       // Insert booking record
+       if (EXT_IS_ACTIVE("booking")) {
+               // Add record
+               ADD_BOOKING_RECORD($subject, $uid, $points, "sub");
+       } // END - if
+
        // Update mediadata as well
        if (GET_EXT_VERSION("mediadata") >= "0.0.4") {
                // Update database
                MEDIA_UPDATE_ENTRY(array("total_points"), "sub", $points);
        } // END - if
 }
+
 // Update config entries
 function UPDATE_CONFIG ($entries, $values, $updateMode="") {
        // Do we have multiple entries?
@@ -1859,6 +1868,9 @@ function UPDATE_CONFIG ($entries, $values, $updateMode="") {
                                if (($values[$idx] + 0) === $values[$idx]) {
                                        // Number detected
                                        $all .= sprintf("%s=%s,", $entry, (float)$values[$idx]);
+                               } elseif ($values[$idx] == "UNIX_TIMESTAMP()") {
+                                       // Function UNIX_TIMESTAMP() detected
+                                       $all .= sprintf("%s=%s,", $entry, $values[$idx]);
                                } else {
                                        // String detected
                                        $all .= sprintf("%s='%s',", $entry, SQL_ESCAPE($values[$idx]));
@@ -1877,7 +1889,7 @@ function UPDATE_CONFIG ($entries, $values, $updateMode="") {
        }
 
        // Run database update
-       //DEBUG_LOG(__FUNCTION__, __LINE__, "entries={$entries}");
+       //* DEBUG: */ DEBUG_LOG(__FUNCTION__, __LINE__, "entries={$entries}");
        SQL_QUERY("UPDATE "._MYSQL_PREFIX."_config SET ".$entries." WHERE config=0 LIMIT 1", __FILE__, __LINE__);
 
        // Get affected rows
@@ -1887,6 +1899,7 @@ function UPDATE_CONFIG ($entries, $values, $updateMode="") {
        // Rebuild cache
        REBUILD_CACHE("config", "config");
 }
+
 // Creates a new task for updated extension
 function CREATE_EXTENSION_UPDATE_TASK ($admin_id, $subject, $notes) {
        // Check if task is not there
@@ -1901,6 +1914,7 @@ function CREATE_EXTENSION_UPDATE_TASK ($admin_id, $subject, $notes) {
        // Free memory
        SQL_FREERESULT($result);
 }
+
 // Creates a new task for newly installed extension
 function CREATE_NEW_EXTENSION_TASK ($admin_id, $subject, $ext) {
        // Not installed and do we have created a task for the admin?
@@ -2249,8 +2263,14 @@ ORDER BY ur.refid ASC",
                        // Get unconfirmed mails
                        $row['unconfirmed']  = GET_TOTAL_DATA($row['refid'], "user_links", "id", "userid", true);
 
-                       // Calculate clickrate
-                       $row['clickrate'] = ($row['mails_confirmed'] / $row['emails_received'] * 100);
+                       // Init clickrate with zero
+                       $row['clickrate'] = 0;
+
+                       // Is at least one mail received?
+                       if ($row['emails_received'] > 0) {
+                               // Calculate clickrate
+                               $row['clickrate'] = ($row['mails_confirmed'] / $row['emails_received'] * 100);
+                       } // END - if
 
                        // Activity is "active" by default because if autopurge is not installed
                        $row['activity'] = MEMBER_ACTIVITY_ACTIVE;