Renamed ifSqlHasZeroNums() to ifSqlHasZeroNumRows() and improved some queries.
[mailer.git] / inc / libs / payout_functions.php
index e1697c7b6a90fa63ebb66bd55e06f9ff202e4819..d7abac5fe2860013ffd654dc4ef2224974cfe437 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 /************************************************************************
- * MXChange v0.2.1                                    Start: 10/19/2003 *
- * ===============                              Last change: 08/12/2004 *
+ * Mailer v0.2.1-FINAL                                Start: 10/19/2003 *
+ * ===================                          Last change: 08/12/2004 *
  *                                                                      *
  * -------------------------------------------------------------------- *
  * File              : what-points.php                                  *
  * -------------------------------------------------------------------- *
  * Kurzbeschreibung  : Alle Ihrer gesammelten Punkte                    *
  * -------------------------------------------------------------------- *
- *                                                                      *
+ * $Revision::                                                        $ *
+ * $Date::                                                            $ *
+ * $Tag:: 0.2.1-FINAL                                                 $ *
+ * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
- * Copyright (c) 2003 - 2008 by Roland Haeder                           *
- * For more information visit: http://www.mxchange.org                  *
+ * Copyright (c) 2003 - 2009 by Roland Haeder                           *
+ * Copyright (c) 2009 - 2015 by Mailer Developer Team                   *
+ * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * it under the terms of the GNU General Public License as published by *
  ************************************************************************/
 
 // Some security stuff...
-if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
-{
-       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
-       require($INC);
-}
-//
-function PAYOUT_OUTPUT_PAYOUT_LIST($POINTS)
-{
-       // Replace german decimal comma with CPU's decimal dot
-       $POINTS = strval(str_replace(",", ".", $POINTS));
-       if ($POINTS > 0)
-       {
+if (!defined('__SECURITY')) {
+       die();
+} // END - if
+
+// Outputs all payout methods the user has
+function outputPayoutList ($points) {
+       // Enougth points?
+       if ($points > 0) {
                // Pay this out!
-               $result = SQL_QUERY_ESC("SELECT id, type, rate, min_points
-FROM "._MYSQL_PREFIX."_payout_types
-WHERE %s >= min_points
-ORDER BY type", array($POINTS), __FILE__, __LINE__);
-               if (SQL_NUMROWS($result) > 0)
-               {
-                       OUTPUT_HTML("<br /><DIV align=\"center\">
-<DIV align=\"center\"><STRONG>".PAYOUT_NOW.":</STRONG></DIV><br />
-<UL>");
+               $result = sqlQueryEscaped('SELECT
+       `id`,
+       `type`,
+       `rate`,
+       `min_points`
+FROM
+       `{?_MYSQL_PREFIX?}_payout_types`
+WHERE
+       %s >= `min_points`
+ORDER BY
+       `type` ASC',
+                       array($points), __FUNCTION__, __LINE__);
+
+               // Some entries found?
+               if (!ifSqlHasZeroNumRows($result)) {
+                       // Init output
+                       $OUT = '';
+
                        // Now let's check
-                       while (list($id, $type, $rate, $mpoi) = SQL_FETCHROW($result))
-                       {
-                               $type = COMPILE_CODE($type);
-                               if ($POINTS >= $mpoi)
-                               {
-                                       // Ok we found one
-                                       $P = $POINTS * $rate - 0.5;
-                                       OUTPUT_HTML("<LI>".PAYOUT_IN.": <STRONG><A href=\"".URL."/modules.php?module=login&amp;what=payout&amp;payout=".$id."\">".$type." (".PAYOUT_MAX." ".round($P)." ".$type.")</A></STRONG></LI>");
-                               }
-                       }
+                       while ($content = sqlFetchArray($result)) {
+                               // Are these points enougth?
+                               if ($points >= $content['min_points']) {
+                                       // Prepare content for template
+                                       $content['points'] = translateComma($points * $content['rate'] - 0.5);
 
-                       // Free memory
-                       SQL_FREERESULT($result);
-                       OUTPUT_HTML("</UL></DIV>");
-               }
-                else
-               {
+                                       // Load row template
+                                       $OUT .= loadTemplate('member_payout_li', TRUE, $content);
+                               } // END - if
+                       } // END - while
+
+                       // Load main template
+                       loadTemplate('member_payout_list', TRUE, $OUT);
+               } else {
                        // No payout types setup so far
-                       OUTPUT_HTML("<P><FONT class=\"guest_failed\">".PAYOUT_NO_PAYOUT_TYPES."</FONT></P>");
+                       displayErrorMessage('{--MEMBER_PAYOUT_SETUP_INCOMPLETE_LOW_POINTS--}');
                }
-       }
-        else
-       {
+
+               // Free memory
+               sqlFreeResult($result);
+       } else {
                // Points is empty
-               OUTPUT_HTML("<P><FONT class=\"guest_failed\">".PAYOUT_NO_POINTS_ENTERED."</FONT></P>");
+               displayErrorMessage('{--MEMBER_PAYOUT_NO_POINTS_ENTERED--}');
        }
 }
-//
+
+// "Translates" the payout status into a human-readable message
+function translatePayoutStatus ($status) {
+       // Try to get a message from given status
+       $message = '{--PAYOUT_STATUS_' . strtoupper($status) . '--}';
+
+       // Return it
+       return $message;
+}
+
+// "Getter" for payoutable user points
+function getPayoutPoints ($userid) {
+       // Is there cache?
+       if (!isset($GLOBALS[__FUNCTION__][$userid])) {
+               // Determine it
+               $GLOBALS[__FUNCTION__][$userid] = countSumTotalData($userid, 'user_points', 'points') - getUserUsedPoints($userid);
+       } // END - if
+
+       // Return it
+       return $GLOBALS[__FUNCTION__][$userid];
+}
+
+// [EOF]
 ?>