]> git.mxchange.org Git - mailer.git/blobdiff - inc/modules/member/what-order.php
New wrapper functions introduced, TODOs.txt updated
[mailer.git] / inc / modules / member / what-order.php
index 281248a7950803e3705b67810bb60bb3807db954..0110dfec0235d9d7abf867882033ebeb7b02bed3 100644 (file)
  * $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                    *
+ * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
  * For more information visit: http://www.mxchange.org                  *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -27,8 +25,6 @@
  * (at your option) any later version.                                  *
  *                                                                      *
  * This program is distributed in the hope that it will be useful,      *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of       *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *
  * GNU General Public License for more details.                         *
  *                                                                      *
  * You should have received a copy of the GNU General Public License    *
@@ -45,61 +41,27 @@ if (!defined('__SECURITY')) {
 }
 
 // Add description as navigation point
-addMenuDescription('member', __FILE__);
+addYouAreHereLink('member', __FILE__);
 
 if ((!isExtensionActive('order')) && (!isAdmin())) {
-       loadTemplate('admin_settings_saved', false, generateExtensionInactiveNotInstalledMessage('order'));
+       displayMessage(generateExtensionInactiveNotInstalledMessage('order'));
        return;
 } // END - if
 
 $url = ''; $id = '0';
-$whereStatement = " WHERE `visible`='Y'";
-
-// Set undefined array elements
-if (isAdmin()) $whereStatement = '';
 
 // Count unconfirmed mails
 $links = countSumTotalData(getMemberId(), 'user_links', 'id', 'userid', true);
 
-// Do we have ext-holiday installed?
-// @TODO Rewrite this to a filter
-$extraColumn = 'userid';
-if (isExtensionInstalledAndNewer('holiday', '0.1.3')) {
-       // Fetch also holiday activation data
-       $extraColumn = 'holiday_active';
-} // END - if
-
-$result_mmails = SQL_QUERY_ESC("SELECT
-       `userid`,
-       `receive_mails`,
-       `mail_orders`,
-       `".$extraColumn."`
-FROM
-       `{?_MYSQL_PREFIX?}_user_data`
-WHERE
-       `userid`=%s AND
-       `max_mails` > 0
-LIMIT 1",
-       array(getMemberId()), __FILE__, __LINE__);
-
-$mmails = SQL_NUMROWS($result_mmails);
-list($DMY, $MAXI, $ORDERS, $HOLIDAY) = SQL_FETCHROW($result_mmails);
-
-// Free result
-SQL_FREERESULT($result_mmails);
-
-// Fix non-existent ext-holidy
-if ($HOLIDAY == $DMY) $HOLIDAY = 'N';
-
-$ALLOWED = $MAXI - $ORDERS;
-if (getConfig('order_max_full') == 'MAX') $ALLOWED = $MAXI;
+$ALLOWED = getUserData('receive_mails') - getUserData('mail_orders');
+if (getConfig('order_max_full') == 'MAX') $ALLOWED = getUserData('receive_mails');
 
 // Now check his points amount
-$total = countSumTotalData(getMemberId(), 'user_points', 'points') - countSumTotalData(getMemberId(), 'user_data', 'used_points');;
+$total = getTotalPoints(getMemberId());
 
-if (($HOLIDAY == 'Y') && (isExtensionInstalledAndNewer('holiday', '0.1.3'))) {
+if ((isExtensionInstalledAndNewer('holiday', '0.1.3')) && (getUserData('holiday_active') == 'Y')) {
        // Holiday is active!
-       loadTemplate('admin_settings_saved', false, '{--HOLIDAY_ORDER_NOT_POSSIBLE--}');
+       displayMessage('{--MEMBER_HOLIDAY_ORDER_NOT_POSSIBLE--}');
 } elseif ((isPostRequestParameterSet('frametester')) && ($ALLOWED > 0) && (postRequestParameter('receiver') > 0)) {
        // Continue with the frametester, we first need to store the data temporary in the pool
        //
@@ -133,7 +95,7 @@ LIMIT 1",
                if (getConfig('allow_url_in_text') == 'Y') {
                        // Test submitted text against some filters (length, URLs in text etc.)
                        if ((strpos(strtolower(postRequestParameter('text')), 'https://') > -1) || (strpos(strtolower(postRequestParameter('text')), 'http://') > -1) || (strpos(strtolower(postRequestParameter('text')), "www") > -1)) {
-                               // URL found!
+                               // URL found
                                $url = 'modules.php?module=login&what=order&code=' . getCode('URL_FOUND');
                        } // END - if
 
@@ -158,7 +120,7 @@ LIMIT 1",
                } // END - if
 
                // And shall I check that his URL is not in the black list?
-               if (getConfig('url_blacklist') == 'Y') {
+               if (isUrlBlacklistEnabled()) {
                        // Ok, I do that for you know...
                        $result = SQL_QUERY_ESC("SELECT UNIX_TIMESTAMP(`timestamp`) AS tstamp FROM `{?_MYSQL_PREFIX?}_url_blacklist` WHERE `url`='%s' LIMIT 1",
                                array(postRequestParameter('url')), __FILE__, __LINE__);
@@ -209,7 +171,7 @@ LIMIT 1",
                } // END - if
        } elseif (!isAdmin()) {
                // He has already sent a mail within a specific time
-               $url = 'modules.php?module=login&what=order&code=' . getCode('URL_TLOCK') . '&id=' . $id;
+               $url = 'modules.php?module=login&what=order&code=' . getCode('URL_TIME_LOCK') . '&id=' . $id;
        }
 
        // Still no error?
@@ -239,18 +201,16 @@ WHERE
        d.receive_mails > 0
        ".$add."
 ORDER BY
-       d.%s %s",
+       d.{?order_select?} {?order_mode?}",
                        array(
                                bigintval(postRequestParameter('cat')),
-                               getMemberId(),
-                               getConfig('order_select'),
-                               getConfig('order_mode'),
+                               getMemberId()
                        ), __FILE__, __LINE__);
 
                // Do we enougth receivers left?
                if (SQL_NUMROWS($result) >= postRequestParameter('receiver')) {
                        // Load receivers from database
-                       $TEST = array(); $cnt = '0';
+                       $TEST = array(); $count = '0';
                        while ($holidayContent = SQL_FETCHARRAY($result)) {
                                if (isExtensionInstalledAndNewer('holiday', '0.1.3')) {
                                        // Check for his holiday status
@@ -271,7 +231,7 @@ LIMIT 1",
                                if ($holidayContent['userid'] > 0) {
                                        // Add receiver
                                        $TEST[] = $holidayContent['userid'];
-                                       $cnt++;
+                                       $count++;
                                } // END - if
                        } // END - while
 
@@ -286,7 +246,10 @@ LIMIT 1",
 
                        // Update receiver list
                        SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `receive_mails`=`receive_mails`-1 WHERE `userid` IN (%s) LIMIT %s",
-                               array(convertReceivers($receiver), $content['target_send']), __FILE__, __LINE__);
+                               array(
+                                       convertReceivers($receiver),
+                                       $content['target_send']
+                               ), __FILE__, __LINE__);
 
                        // Is calculated max receivers larger than wanted receivers then reset it
                        if ($content['target_send'] > postRequestParameter('receiver')) $content['target_send'] = bigintval(postRequestParameter('receiver'));
@@ -424,18 +387,24 @@ LIMIT 1",
                                // No enougth points left!
                                $url = 'modules.php?module=login&what=order&code=' . getCode('MORE_POINTS');
                        }
-               } else  {
+               } else {
                        // Ordered more mails than he can send in this category
                        $url = 'modules.php?module=login&what=order&code=' . getCode('NO_RECS_LEFT');
                }
-       }
+       } // END - if
 } elseif (postRequestParameter('receiver') == '0') {
        // Not enougth receivers selected
        $url = 'modules.php?module=login&what=order&code=' . getCode('MORE_RECEIVERS1');
 } elseif (($ALLOWED == '0') && (getConfig('order_max_full') == 'ORDER')) {
        // No more mail orders allowed
-       loadTemplate('admin_settings_saved', false, '{--MEMBER_ORDER_ALLOWED_EXHAUSTED--}');
-} elseif (($links < getConfig('unconfirmed')) && ($mmails == 1)) {
+       displayMessage('{--MEMBER_ORDER_ALLOWED_EXHAUSTED--}');
+} elseif ($links < getConfig('unconfirmed')) {
+       // Show only enabled categories to the user ...
+       $whereStatement = " WHERE `visible`='Y'";
+
+       // ... but all to the admin
+       if (isAdmin()) $whereStatement = '';
+
        // Display order form
        $result_cats = SQL_QUERY("SELECT
        `id`, `cat`
@@ -472,13 +441,15 @@ ORDER BY
                                        array(bigintval($categoriesContent['id']), getMemberId()), __FILE__, __LINE__);
 
                                $userid_cnt = '0';
-                               while (list($ucat) = SQL_FETCHROW($result_userids)) {
+                               while (list($userid) = SQL_FETCHROW($result_userids)) {
                                        // Check for holiday system
-                                       $HOL_ACTIVE = false;
+                                       $isHolidayActive = false;
                                        if (isExtensionInstalledAndNewer('holiday', '0.1.3')) {
                                                // Check user's holiday status
                                                $result_holiday = SQL_QUERY_ESC("SELECT
-       d.userid FROM `{?_MYSQL_PREFIX?}_user_data` AS d
+       COUNT(d.userid) AS `cnt`
+FROM
+       `{?_MYSQL_PREFIX?}_user_data` AS d
 LEFT JOIN
        `{?_MYSQL_PREFIX?}_user_holidays` AS h
 ON
@@ -491,25 +462,28 @@ WHERE
        h.holiday_start < UNIX_TIMESTAMP() AND
        h.holiday_end > UNIX_TIMESTAMP()
 LIMIT 1",
-                                                       array(bigintval($ucat)), __FILE__, __LINE__);
+                                                       array(bigintval($userid)), __FILE__, __LINE__);
 
-                                               // Is holiday is active?
-                                               $HOL_ACTIVE = (SQL_NUMROWS($result_holiday) == 1);
+                                               // Fetch entry
+                                               list($count) = SQL_FETCHROW($result_holiday);
 
                                                // Free memory
                                                SQL_FREERESULT($result_holiday);
+
+                                               // Is holiday is active?
+                                               $isHolidayActive = ($count == 1);
                                        } // END - if
 
-                                       if ($HOL_ACTIVE === false) {
+                                       if ($isHolidayActive === false) {
                                                // Check if the user want's to receive mails?
                                                $result_ver = SQL_QUERY_ESC("SELECT `zip` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `userid`=%s".$HTML." AND `receive_mails` > 0 AND `status`='CONFIRMED' LIMIT 1",
-                                                       array(bigintval($ucat)), __FILE__, __LINE__);
+                                                       array(bigintval($userid)), __FILE__, __LINE__);
 
                                                if ((SQL_NUMROWS($result_ver) == 1) && (isPostRequestParameterSet('zip')) && (getConfig('order_multi_page') == 'Y')) {
                                                        // Get zip code
                                                        list($zip) = SQL_FETCHROW($result_ver);
                                                        if (substr($zip, 0, strlen(postRequestParameter('zip'))) == postRequestParameter('zip')) {
-                                                               // Ok, ZIP part is found
+                                                               // Ok, ZIP code part is found
                                                                $userid_cnt++;
                                                        } // END - if
                                                } else {
@@ -540,7 +514,7 @@ LIMIT 1",
 
                                if (!empty($message)) {
                                        // We got system message so we drop it out to the user
-                                       loadTemplate('admin_settings_saved', false, $message);
+                                       displayMessage($message);
                                } // END - if
 
                                // Load all email types...
@@ -552,7 +526,7 @@ LIMIT 1",
                                SQL_FREERESULT($result);
 
                                // Output user's points
-                               $content['total'] = translateComma($total);
+                               $content['total'] = $total;
 
                                // Check how many mail orders he has placed today and how many he's allowed to send
                                switch (getConfig('order_max_full')) {
@@ -561,7 +535,7 @@ LIMIT 1",
                                                break;
 
                                        case 'ORDER': // He is allowed to send as much as he setup the receiving value
-                                               $content['order_max_full'] = sprintf(getMessage('MEMBER_ORDER_ALLOWED_RECEIVE'), $ALLOWED, $MAXI);
+                                               $content['order_max_full'] = sprintf(getMessage('MEMBER_ORDER_ALLOWED_RECEIVE'), $ALLOWED, getUserData('receive_mails'));
                                                break;
 
                                        default: // Unknown/invalid
@@ -605,7 +579,7 @@ LIMIT 1",
                                } else {
                                        // Default output for that your members don't forget it...
                                        $content['url']         = 'http://';
-                                       $content['target_send'] = getConfig('order_min');
+                                       $content['target_send'] = '{?order_min?}';
                                        $content['subject']     = '{--ORDER_DEFAULT_SUBJECT--}';
                                        $content['text']        = '{--ORDER_DEFAULT_TEXT--}';
                                }
@@ -625,12 +599,11 @@ LIMIT 1",
                                        // Mail type
                                        $content['type_selection'] = '';
                                        foreach ($types as $key => $value) {
-                                               $P = translateComma($types[$key][1]);
                                                if (is_array($value)) {
                                                        // Output option line
                                                        $content['type_selection'] .= '      <option value="' . $types[$key][0] . '"';
                                                        if (($OLD_ORDER) && ($content['payment_id'] == $types[$key][0])) $content['type_selection'] .= ' selected="selected"';
-                                                       $content['type_selection'] .= '>' . $P . ' {--PER_MAIL--} - ' . $types[$key][3] . ' - ' . round($types[$key][2]) . ' {--PAYMENT--}</option>';
+                                                       $content['type_selection'] .= '>{%pipe,translateComma=' . $types[$key][1] . '%} {--PER_MAIL--} - ' . $types[$key][3] . ' - ' . round($types[$key][2]) . ' {--PAYMENT--}</option>';
                                                } // END - if
                                        } // END - foreach
 
@@ -686,22 +659,19 @@ LIMIT 1",
                                }
                        } else {
                                // No mail types defined
-                               loadTemplate('admin_settings_saved', false, '<span class="member_failed">{--MEMBER_NO_PAYMENTS--}</span>');
+                               displayMessage('<span class="notice">{--MEMBER_NO_PAYMENTS--}</span>');
                        }
                } else {
                        // No points left
-                       loadTemplate('admin_settings_saved', false, '<span class="member_failed">{--MEMBER_NO_POINTS--}</span>');
+                       displayMessage('<span class="notice">{--MEMBER_NO_POINTS--}</span>');
                }
        } else {
                // No cateogries are defined yet
-               loadTemplate('admin_settings_saved', false, '<span class="member_failed">{--MEMBER_NO_CATEGORIES--}</span>');
+               displayMessage('<span class="notice">{--MEMBER_NO_CATEGORIES--}</span>');
        }
-} elseif ($mmails == '0') {
-       // Please set more than 0 mails per day
-       loadTemplate('admin_settings_saved', false, '{--MEMBER_HAS_ZERO_MMAILS--}');
 } else {
        // Please confirm some mails first
-       loadTemplate('admin_settings_saved', false, getMaskedMessage('MEMBER_LINKS_LEFT'), $links);
+       displayMessage('<span class="notice">{%message,MEMBER_LINKS_LEFT=' . $links . '%}</span>', $links);
 }
 
 if (!empty($url)) {