2 /************************************************************************
3 * Mailer v0.2.1-FINAL Start: 06/02/2011 *
4 * =================== Last change: 06/02/2011 *
6 * -------------------------------------------------------------------- *
8 * -------------------------------------------------------------------- *
9 * Short description : Filters for ext- *
10 * -------------------------------------------------------------------- *
11 * Kurzbeschreibung : Filter fuer ext- *
12 * -------------------------------------------------------------------- *
15 * $Tag:: 0.2.1-FINAL $ *
17 * -------------------------------------------------------------------- *
18 * Copyright (c) 2003 - 2009 by Roland Haeder *
19 * Copyright (c) 2009 - 2013 by Mailer Developer Team *
20 * For more information visit: http://mxchange.org *
22 * This program is free software; you can redistribute it and/or modify *
23 * it under the terms of the GNU General Public License as published by *
24 * the Free Software Foundation; either version 2 of the License, or *
25 * (at your option) any later version. *
27 * This program is distributed in the hope that it will be useful, *
28 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
29 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
30 * GNU General Public License for more details. *
32 * You should have received a copy of the GNU General Public License *
33 * along with this program; if not, write to the Free Software *
34 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, *
36 ************************************************************************/
38 // Some security stuff...
39 if (!defined('__SECURITY')) {
43 // Filter for excluding holiday users in WHERE statements
44 function FILTER_HOLIDAY_USER_EXCLUSION_SQL ($sql) {
45 //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called! - sql(' . strlen($sql) . ')=' . $sql);
47 // Add it, as of this filter is registered only with ext-user >= 0.5.0
50 $sql = " WHERE `holiday_active` = 'N'";
53 $sql .= " AND `holiday_active` = 'N'";
56 // Return the data for next filter
57 //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done! - sql(' . strlen($sql) . ')=' . $sql);
61 // Filter to check for user's holiday
62 function FILTER_CHECK_USER_HOLIDAY ($filterData) {
63 // Is the id number set and valid?
64 if ((isset($filterData['userid'])) && (isValidId($filterData['userid']))) {
65 // Check for his holiday status
66 $result_holiday = sqlQueryEscaped("SELECT
69 `{?_MYSQL_PREFIX?}_user_holidays`
72 `holiday_start` < UNIX_TIMESTAMP() AND
73 `holiday_end` > UNIX_TIMESTAMP()
75 array($filterData['userid']), __FILE__, __LINE__);
78 if (sqlNumRows($result_holiday) == 1) {
79 // Exclude user who are in holiday
80 $filterData['userid'] = NULL;
84 sqlFreeResult($result_holiday);
87 // Return data for next filter
91 // Filter to check if holiday is activated
92 function FILTER_PRE_USERID_HOLIDAY_CHECK ($filterData) {
93 //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
95 if ((isValidId($filterData['userid'])) && ($filterData['pre_okay'] === TRUE)) {
96 // Check user's holiday status
97 $result_holiday = sqlQueryEscaped("SELECT
98 COUNT(`d`.`userid`) AS `cnt`
100 `{?_MYSQL_PREFIX?}_user_data` AS `d`
102 `{?_MYSQL_PREFIX?}_user_holidays` AS `h`
104 `d`.`userid`=`h`.`userid`
107 `d`.`receive_mails` > 0 AND
108 `d`.`status`='CONFIRMED' AND
109 `d`.`holiday_active`='Y' AND
110 `h`.`holiday_start` < UNIX_TIMESTAMP() AND
111 `h`.`holiday_end` > UNIX_TIMESTAMP()
114 bigintval($filterData['userid'])
115 ), __FILE__, __LINE__
119 list($count) = sqlFetchRow($result_holiday);
122 sqlFreeResult($result_holiday);
124 // Is holiday is active?
125 $filterData['pre_check'] = ($count == 0);
128 // Return filter data to next filter
129 //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done!');