]> git.mxchange.org Git - mailer.git/blobdiff - inc/filter/order_filter.php
Rewrites to use filters instead of mass if() blocks
[mailer.git] / inc / filter / order_filter.php
index 87e17902ea587023230fffc782ad1c4555e0dd3a..ef5dbb457ffe3b1501dd6c9a88068058c13b97fa 100644 (file)
@@ -16,8 +16,8 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
- * For more information visit: http://www.mxchange.org                  *
+ * Copyright (c) 2009 - 2012 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 *
@@ -41,15 +41,86 @@ if (!defined('__SECURITY')) {
 } // END - if
 
 // Filter for returning given user's order points
-function FILTER_ORDER_POINTS ($data) {
+function FILTER_ORDER_POINTS ($filterData) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
        // Is ext-user installed and active?
        if (isExtensionActive('user')) {
                // Get the points and add them to the existing
-               $data['points'] += countSumTotalData($data['userid'], 'user_points', 'order_points');
+               $filterData['points'] += countSumTotalData($filterData['userid'], 'user_points', 'order_points');
        } // END - if
 
        // Return the data for next filter
-       return $data;
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done!');
+       return $filterData;
+}
+
+// Filter for returning given user's locked order points
+function FILTER_LOCKED_ORDER_POINTS ($filterData) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
+       // Is ext-user installed and active?
+       if (isExtensionActive('user')) {
+               // Get the points and add them to the existing
+               $filterData['points'] += countSumTotalData($filterData['userid'], 'user_points', 'locked_order_points');
+       } // END - if
+
+       // Return the data for next filter
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done!');
+       return $filterData;
+}
+
+// Filter for returning all user's order points column names
+function FILTER_GET_ALL_ORDER_POINTS_COLUMN_NAMES ($filterData) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
+       // Add 'order_points' and 'locked_order_points'
+       $filterData['columns'] .= $filterData['alias'] . 'order_points' . $filterData['separator'] . $filterData['alias'] . 'locked_order_points' . $filterData['separator'];
+
+       // Return the data for next filter
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done!');
+       return $filterData;
+}
+
+// Filter for ZIP code inclusion (not exclusion but it must be run in exclusion filter chain)
+function FILTER_ORDER_ZIP_CODE_SQL ($sql) {
+       // Check if category and number of receivers is okay
+       if (isOrderMultiPageEnabled()) {
+               // Default is no zip code limitation
+               $zip = NULL;
+
+               // POST or GET elements?
+               if ((isPostRequestElementSet('zip')) && (postRequestElement('zip') != '')) {
+                       // Choose recipients by zip code from POST
+                       $zip = bigintval(postRequestElement('zip'));
+               } elseif ((isGetRequestElementSet('zip')) && (getRequestElement('zip') != '')) {
+                       // Choose recipients by zip code from GET
+                       $zip = bigintval(getRequestElement('zip'));
+               }
+
+               // Is the zip code set?
+               if (!is_null($zip)) {
+                       // Is the previous SQL statement empty?
+                       if (empty($sql)) {
+                               // SQL statemet is empty, so use WHERE
+                               $sql = sprintf(" WHERE `zip` LIKE '%s%%%%'", $zip);
+                       } else {
+                               // ... otherwise use AND
+                               $sql .= sprintf(" AND `zip` LIKE '%s%%%%'", $zip);
+                       }
+               } // END - if
+       } // END - if
+
+       // Return expanded SQL
+       return $sql;
+}
+
+// Filter for adding columns of points to array
+function FILTER_ORDER_POINTS_COLUMNS ($filterData) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
+       // Add column
+       array_push($filterData, 'order_points');
+
+       // Return the data for next filter
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done!');
+       return $filterData;
 }
 
 // [EOF]