* $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 *
- * For more information visit: http://www.mxchange.org *
+ * Copyright (c) 2009 - 2013 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 (!defined('__SECURITY')) {
- die();
+ exit();
} elseif (!isMember()) {
redirectToIndexMemberOnlyModule();
}
// Add description as navigation point
-addMenuDescription('member', __FILE__);
+addYouAreHereLink('member', __FILE__);
if ((!isExtensionActive('order')) && (!isAdmin())) {
- loadTemplate('admin_settings_saved', false, generateExtensionInactiveNotInstalledMessage('order'));
+ displayMessage('{%pipe,generateExtensionInactiveNotInstalledMessage=order%}');
return;
} // END - if
-$url = ''; $id = '0';
-
-// Count unconfirmed mails
-$links = countSumTotalData(getMemberId(), 'user_links', 'id', 'userid', true);
+// Init data
+$data = array(
+ 'id' => '0',
+ 'data_type' => 'TEMP',
+ 'url' => '',
+);
$ALLOWED = getUserData('receive_mails') - getUserData('mail_orders');
-if (getConfig('order_max_full') == 'MAX') $ALLOWED = getUserData('receive_mails');
+if (getOrderMaxFull() == 'MAX') $ALLOWED = getUserData('receive_mails');
// Now check his points amount
-$total = getTotalPoints(getMemberId());
+$totalPoints = getTotalPoints(getMemberId());
-if ((isExtensionInstalledAndNewer('holiday', '0.1.3')) && (getUserData('holiday_active') == 'Y')) {
+// Admin can always book
+if ((isExtensionInstalledAndNewer('holiday', '0.1.3')) && (isUserDataEnabled('holiday_active')) && (!isAdmin())) {
// Holiday is active!
- loadTemplate('admin_settings_saved', false, '{--MEMBER_HOLIDAY_ORDER_NOT_POSSIBLE--}');
-} elseif ((isPostRequestParameterSet('frametester')) && ($ALLOWED > 0) && (postRequestParameter('receiver') > 0)) {
+ displayMessage('{--MEMBER_HOLIDAY_ORDER_NOT_POSSIBLE--}');
+} elseif ((isPostRequestElementSet('frametester')) && ($ALLOWED > 0) && (postRequestElement('receiver') > 0)) {
// Continue with the frametester, we first need to store the data temporary in the pool
//
// First we would like to store the data and get it's pool position back...
- $result = SQL_QUERY_ESC("SELECT `id`, `data_type`
+ // @TODO Try to move out url_tlock to a filter for extra SQL statements
+ $result = sqlQueryEscaped("SELECT
+ `id`,
+ `data_type`
FROM
`{?_MYSQL_PREFIX?}_pool`
WHERE
`sender`=%s AND
`url`='%s' AND
- `timestamp` > (UNIX_TIMESTAMP() - {?url_tlock?})
+ (UNIX_TIMESTAMP() - `timestamp`) >= {?url_tlock?}
LIMIT 1",
array(
getMemberId(),
- postRequestParameter('url')
+ postRequestElement('url')
), __FILE__, __LINE__);
- $type = 'TEMP'; $id = '0';
- if (SQL_NUMROWS($result) == 1) {
+ if (sqlNumRows($result) == 1) {
// Load id and mail type
- list($id, $type) = SQL_FETCHROW($result);
+ $data = sqlFetchArray($result);
} // END - if
// Free result
- SQL_FREERESULT($result);
-
- if ($type == 'TEMP') {
- // No entry found, so we need to check out the stats table as well... :)
- // We have to add that suff here, now we continue WITHOUT checking and check the text and subject against some filters
- $url = '';
- 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 = 'modules.php?module=login&what=order&code=' . getCode('URL_FOUND');
- } // END - if
-
- // Remove new-line and carriage-return characters
- $TEST = str_replace("\n", '', str_replace("\r", '', postRequestParameter('text')));
-
- // Text length within allowed length?
- if (strlen($TEST) > getConfig('max_tlength')) {
- // Text is too long!
- $url = 'modules.php?module=login&what=order&code=' . getCode('OVERLENGTH');
- } // END - if
- } // END - if
-
- // Shall I test the subject line against URLs?
- if (getConfig('allow_url_in_subject') == 'Y') {
- // Check the subject line for issues
- setPostRequestParameter('subject', str_replace("\\", '[nl]', substr(postRequestParameter('subject'), 0, 200)));
- if ((strpos(strtolower(postRequestParameter('subject')), 'http://') > -1) || (strpos(strtolower(postRequestParameter('subject')), "www") > -1)) {
- // URL in subject found
- $url = 'modules.php?module=login&what=order&code=' . getCode('SUBJECT_URL');
- } // END - if
- } // END - if
-
- // And shall I check that his URL is not in the black list?
- if (isUrlBlaskEnabled()) {
- // 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__);
-
- if (SQL_NUMROWS($result) == 1) {
- // Jupp, we got one listed
- list($blist) = SQL_FETCHROW($result);
-
- // Create redirect-URL
- $url = 'modules.php?module=login&what=order&code=' . getCode('BLIST_URL') . '&blist=' . $blist;
- } // END - if
-
- // Free result
- SQL_FREERESULT($result);
- } // END - if
-
- // Enougth receivers entered?
- if ((postRequestParameter('receiver') < getConfig('order_min')) && (!isAdmin())) {
- // Less than allowed receivers entered!
- $url = 'modules.php?module=login&what=order&code=' . getCode('MORE_RECEIVERS3');
- } // END - if
-
- // Validate URL
- if (!isUrlValid(postRequestParameter('url'))) {
- // URL is invalid!
- $url = 'modules.php?module=login&what=order&code=' . getCode('INVALID_URL');
- } // END - if
-
- // Probe for HTML extension
- if (isExtensionActive('html_mail')) {
- // HTML or regular text mail?
- if (postRequestParameter('html') == 'Y') {
- // Chek for valid HTML tags
- setPostRequestParameter('text', checkHtmlTags(postRequestParameter('text')));
-
- // Maybe invalid tags found?
- if (!isPostRequestParameterSet('text')) $url = 'modules.php?module=login&what=order&code=' . getCode('INVALID_TAGS')."&id=".$id;
- } else {
- // Remove any HTML code
- setPostRequestParameter('text', str_replace('<', '{OPEN_HTML}', str_replace('>', '{CLOSE_HTML}', postRequestParameter('text'))));
- }
- } // END - if
-
- // Is mail type set?
- if ((!isPostRequestParameterSet('mail_type')) || (postRequestParameter('mail_type') < 1)) {
- // Not correctly set
- $url = 'modules.php?module=login&what=order&code=' . getCode('NO_MAIL_TYPE');
+ sqlFreeResult($result);
+
+ if ($data['data_type'] == 'TEMP') {
+ // Prepare data for filter chain
+ $filterData = array(
+ 'url' => postRequestElement('url'),
+ 'text' => postRequestElement('text'),
+ 'subject' => postRequestElement('subject'),
+ 'receiver' => bigintval(postRequestElement('receiver')),
+ 'mail_type' => bigintval(postRequestElement('mail_type')),
+ 'html' => postRequestElement('html'),
+ 'id' => bigintval($data['id']),
+ 'redirect' => '',
+ );
+
+ // Run the filter chain
+ $filterData = runFilterChain('pre_mail_order', $filterData);
+
+ // Copy field redirect->url
+ $data['url'] = $filterData['redirect'];
+
+ // Is there an error?
+ if (empty($data['url'])) {
+ // Copy all filter data -> POST
+ foreach ($filterData as $key => $value) {
+ // Set it
+ setPostRequestElement($key, $value);
+ } // END - foreach
} // END - if
} elseif (!isAdmin()) {
// He has already sent a mail within a specific time
- $url = 'modules.php?module=login&what=order&code=' . getCode('URL_TIME_LOCK') . '&id=' . $id;
+ $data['url'] = 'modules.php?module=login&what=order&code=' . getCode('URL_TIME_LOCK') . '&id=' . $data['id'];
}
// Still no error?
- if (empty($url)) {
- // Check if category and number of receivers is okay
- $add = '';
- if ((getConfig('order_multi_page') == 'Y') && (isPostRequestParameterSet('zip')) && (postRequestParameter('zip') != '')) {
- // Choose recipients by ZIP code
- $add = sprintf(" AND d.zip LIKE '%s%%'",
- bigintval(postRequestParameter('zip'))
- );
- } // END - if
-
+ if (empty($data['url'])) {
// Check for userids
- $result = SQL_QUERY_ESC("SELECT
- c.userid
+ $result = sqlQueryEscaped("SELECT
+ `c`.`userid`
FROM
- `{?_MYSQL_PREFIX?}_user_cats` AS c
-LEFT JOIN
- `{?_MYSQL_PREFIX?}_user_data` AS d
+ `{?_MYSQL_PREFIX?}_user_cats` AS `c`
+INNER JOIN
+ `{?_MYSQL_PREFIX?}_user_data` AS `d`
ON
- c.userid=d.userid
+ `c`.`userid`=`d`.`userid`
WHERE
- c.cat_id=%s AND
- c.userid != '%s' AND
- d.`status`='CONFIRMED' AND
- d.receive_mails > 0
- ".$add."
+ `c`.`cat_id`=%s AND
+ `c`.`userid` != %s AND
+ `d`.`status`='CONFIRMED'
+ " . runFilterChain('user_exclusion_sql', ' ') . " AND
+ `d`.`receive_mails` > 0
ORDER BY
- d.{?order_select?} {?order_mode?}",
+ `d`.`{?order_select?}` {?order_mode?}",
array(
- bigintval(postRequestParameter('cat')),
+ bigintval(postRequestElement('cat')),
getMemberId()
), __FILE__, __LINE__);
- // Do we enougth receivers left?
- if (SQL_NUMROWS($result) >= postRequestParameter('receiver')) {
+ // Are there still receivers left?
+ if (sqlNumRows($result) >= postRequestElement('receiver')) {
// Load receivers from database
- $TEST = array(); $cnt = '0';
- while ($holidayContent = SQL_FETCHARRAY($result)) {
- if (isExtensionInstalledAndNewer('holiday', '0.1.3')) {
- // Check for his holiday status
- $result_holiday = SQL_QUERY_ESC("SELECT
- `id`
-FROM
- `{?_MYSQL_PREFIX?}_user_holidays`
-WHERE
- `userid`=%s AND `holiday_start` < UNIX_TIMESTAMP() AND `holiday_end` > UNIX_TIMESTAMP()
-LIMIT 1",
- array($holidayContent['userid']), __FILE__, __LINE__);
- if (SQL_NUMROWS($result_holiday) == 1) $holidayContent['userid'] = '0'; // Exclude user who are in holiday
-
- // Free memory
- SQL_FREERESULT($result_holiday);
- } // END - if
-
- if ($holidayContent['userid'] > 0) {
- // Add receiver
- $TEST[] = $holidayContent['userid'];
- $cnt++;
+ $receiverArray = array(); $count = '0';
+ while ($holidayContent = sqlFetchArray($result)) {
+ // Run fetched data through pre filter chain
+ $holidayContent = runFilterChain('pre_mail_recipient_check', $holidayContent);
+
+ // Is still valid id?
+ if (isValidId($holidayContent['userid'])) {
+ // Add receiver then
+ array_push($receiverArray, $holidayContent['userid']);
+ $count++;
} // END - if
} // END - while
// Free memory
- SQL_FREERESULT($result);
+ sqlFreeResult($result);
// Implode array into string for the sending pool
- $receiver = implode($TEST, ';');
+ $receivers = implode($receiverArray, ';');
// Count array for maximum sent
- $content['target_send'] = count($TEST);
+ $content['target_send'] = count($receiverArray);
// Update receiver list
- SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `receive_mails`=`receive_mails`-1 WHERE `userid` IN (%s) LIMIT %s",
+ sqlQueryEscaped("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `receive_mails`=`receive_mails`-1 WHERE `userid` IN (%s) LIMIT %s",
array(
- convertReceivers($receiver),
- $content['target_send']
+ convertReceivers($receivers),
+ bigintval($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'));
+ if ($content['target_send'] > postRequestElement('receiver')) {
+ $content['target_send'] = bigintval(postRequestElement('receiver'));
+ } // END - if
// Calculate used points
- $USED = $content['target_send'] * getPaymentPoints(bigintval(postRequestParameter('mail_type')));
+ $usedPoints = $content['target_send'] * getPaymentPrice(bigintval(postRequestElement('mail_type')));
// Fix empty zip code
- if (!isPostRequestParameterSet('zip')) setPostRequestParameter('zip', 0);
+ if (!isPostRequestElementSet('zip')) {
+ setPostRequestElement('zip', 0);
+ } // END - if
// Check if he has enougth points for this order and selected more than 0 receivers
- if (($USED > 0) && ($USED <= $total) && ($content['target_send'] > 0)) {
- // Gettings points is okay, so we can add $USED later from
- if (($id == '0') || ($type != 'TEMP')) {
- // New order
- $id = '0';
+ if (($usedPoints > 0) && ($usedPoints <= $totalPoints) && ($content['target_send'] > 0)) {
+ // Gettings points is okay, so we can add $usedPoints later from
+ if ((!isValidId($data['id'])) || ($data['data_type'] != 'TEMP')) {
+ // New order, init data array elements
+ $data = array(
+ 'sender' => getMemberId(),
+ 'subject' => postRequestElement('subject'),
+ 'text' => postRequestElement('text'),
+ 'receivers' => $receivers,
+ 'payment_id' => bigintval(postRequestElement('mail_type')),
+ 'data_type' => 'TEMP',
+ 'timestamp' => 'UNIX_TIMESTAMP()',
+ 'url' => postRequestElement('url'),
+ 'cat_id' => bigintval(postRequestElement('cat')),
+ 'target_send' => bigintval($content['target_send']),
+ 'zip' => bigintval(postRequestElement('zip'), TRUE, FALSE),
+ );
+
+ // Is ext-html_mail active?
if (isExtensionActive('html_mail')) {
// HTML extension is active
- SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_pool` (`sender`, `subject`, `text`, `receivers`, `payment_id`, `data_type`, `timestamp`, `url`, `cat_id`, `target_send`, `zip`, `html_msg`)
-VALUES (%s,'%s','%s','%s','%s','TEMP',UNIX_TIMESTAMP(),'%s',%s,%s,%s,'%s')",
- array(
- getMemberId(),
- postRequestParameter('subject'),
- postRequestParameter('text'),
- $receiver,
- bigintval(postRequestParameter('mail_type')),
- postRequestParameter('url'),
- bigintval(postRequestParameter('cat')),
- $content['target_send'],
- bigintval(postRequestParameter('zip'), true, false),
- postRequestParameter('html')
- ), __FILE__, __LINE__);
- } else {
- // No HTML extension is active
- SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_pool` (`sender`, `subject`, `text`, `receivers`, `payment_id`, `data_type`, `timestamp`, `url`, `cat_id`, `target_send`, `zip`)
-VALUES (%s,'%s','%s','%s','%s','TEMP',UNIX_TIMESTAMP(),'%s',%s,%s,%s)",
- array(
- getMemberId(),
- postRequestParameter('subject'),
- postRequestParameter('text'),
- $receiver,
- bigintval(postRequestParameter('mail_type')),
- postRequestParameter('url'),
- bigintval(postRequestParameter('cat')),
- $content['target_send'],
- bigintval(postRequestParameter('zip'), true, false),
- ), __FILE__, __LINE__);
- }
+ $data['html_msg'] = postRequestElement('html');
+ } // END - if
+
+ // Get insert id
+ $data['id'] = insertDataIntoPool($data);
} else {
- // Change current order
+ // Update this data
+ $data = array(
+ 'subject' => postRequestElement('subject'),
+ 'text' => postRequestElement('text'),
+ 'receivers' => $receivers,
+ 'payment_id' => bigintval(postRequestElement('mail_type')),
+ 'timestamp' => 'UNIX_TIMESTAMP()',
+ 'url' => postRequestElement('url'),
+ 'cat_id' => bigintval(postRequestElement('cat')),
+ 'target_send' => bigintval($content['target_send']),
+ 'zip' => bigintval(postRequestElement('zip'), TRUE, FALSE),
+ );
+
+ // Is ext-html_mail active?
if (isExtensionActive('html_mail')) {
// HTML extension is active
- SQL_QUERY_ESC("UPDATE
- `{?_MYSQL_PREFIX?}_pool`
-SET
- `subject`='%s',
- `text`='%s',
- `receivers`='%s',
- `payment_id`=%s,
- `timestamp`=UNIX_TIMESTAMP(),
- `url`='%s',
- `cat_id`=%s,
- `target_send`=%s,
- `zip`=%s,
- `html_msg`='%s'
-WHERE
- `id`=%s
-LIMIT 1",
- array(
- postRequestParameter('subject'),
- postRequestParameter('text'),
- $receiver,
- bigintval(postRequestParameter('mail_type')),
- postRequestParameter('url'),
- bigintval(postRequestParameter('cat')),
- $content['target_send'],
- bigintval(postRequestParameter('zip')),
- postRequestParameter('html'),
- bigintval($id)
- ), __FILE__, __LINE__);
- } else {
- // No HTML extension is active
- SQL_QUERY_ESC("UPDATE
- `{?_MYSQL_PREFIX?}_pool`
-SET
- `subject`='%s',
- `text`='%s',
- `receivers`='%s',
- `payment_id`=%s,
- `timestamp`=UNIX_TIMESTAMP(),
- `url`='%s',
- `cat_id`=%s,
- `target_send`=%s,
- `zip`=%s
-WHERE
- `id`=%s
-LIMIT 1",
- array(
- postRequestParameter('subject'),
- postRequestParameter('text'),
- $receiver,
- bigintval(postRequestParameter('mail_type')),
- postRequestParameter('url'),
- bigintval(postRequestParameter('cat')),
- $content['target_send'],
- bigintval(postRequestParameter('zip')),
- bigintval($id)
- ), __FILE__, __LINE__);
- }
+ $data['html_msg'] = postRequestElement('html');
+ } // END - if
+
+ // Update pool data
+ updatePoolDataById($data['id'], NULL, $data);
}
- // Do we need to get the id number?
- if ($id == '0') {
- // Order is placed as temporary. We need to get it's id for the frametester
- $result = SQL_QUERY_ESC("SELECT `id` FROM `{?_MYSQL_PREFIX?}_pool` WHERE `sender`=%s AND `subject`='%s' AND `payment_id`=%s AND `data_type`='TEMP' AND `timestamp`=UNIX_TIMESTAMP() LIMIT 1",
- array(
- getMemberId(),
- postRequestParameter('subject'),
- bigintval(postRequestParameter('mail_type'))
- ), __FILE__, __LINE__);
-
- // Get pool id
- list($id) = SQL_FETCHROW($result);
-
- // Free result
- SQL_FREERESULT($result);
- } // END - if
+ // Make sure only valid id numbers can pass
+ assert((isset($data['id'])) && (isValidId($data['id'])));
- // id is received so we can redirect the user, used points will be added when he send's out the mail
- $url = 'modules.php?module=frametester&order=' . $id;
+ // Id is received so we can redirect the user, used points will be added when he send's out the mail
+ $data['url'] = 'modules.php?module=frametester&order=' . bigintval($data['id']);
} elseif ($content['target_send'] == '0') {
// Not enougth receivers found which can receive mails
- $url = 'modules.php?module=login&what=order&code=' . getCode('MORE_RECEIVERS2');
+ $data['url'] = 'modules.php?module=login&what=order&code=' . getCode('MORE_RECEIVERS2');
} else {
// No enougth points left!
- $url = 'modules.php?module=login&what=order&code=' . getCode('MORE_POINTS');
+ $data['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');
+ $data['url'] = 'modules.php?module=login&what=order&code=' . getCode('NO_RECS_LEFT');
}
- }
-} elseif (postRequestParameter('receiver') == '0') {
+ } // END - if
+} elseif (postRequestElement('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')) {
+ $data['url'] = 'modules.php?module=login&what=order&code=' . getCode('MORE_RECEIVERS1');
+} elseif (($ALLOWED == '0') && (getOrderMaxFull() == 'ORDER')) {
// No more mail orders allowed
- loadTemplate('admin_settings_saved', false, '{--MEMBER_ORDER_ALLOWED_EXHAUSTED--}');
-} elseif ($links < getConfig('unconfirmed')) {
+ displayMessage('{--MEMBER_ORDER_ALLOWED_EXHAUSTED--}');
+} elseif (getTotalUnconfirmedMails(getMemberId()) < getConfig('max_unconfirmed')) {
// Show only enabled categories to the user ...
$whereStatement = " WHERE `visible`='Y'";
if (isAdmin()) $whereStatement = '';
// Display order form
- $result_cats = SQL_QUERY("SELECT
- `id`, `cat`
+ $result_cats = sqlQuery('SELECT
+ `id`,
+ `cat`
FROM
`{?_MYSQL_PREFIX?}_cats`
-".$whereStatement."
+' . $whereStatement . '
ORDER BY
- `sort` ASC", __FILE__, __LINE__);
- if (!SQL_HASZERONUMS($result_cats)) {
- if ($total > 0) {
+ `sort` ASC', __FILE__, __LINE__);
+
+ // Some categories found?
+ if (!ifSqlHasZeroNums($result_cats)) {
+ // Enought points left?
+ if ($totalPoints > 0) {
// Initialize array...
$categories = array(
'id' => array(),
// Enable HTML checking
// @TODO Rewrite this to a filter
- $HTML = ''; $HOL_STRING = '';
- if ((isExtensionActive('html_mail')) && (postRequestParameter('html') == 'Y')) $HTML = " AND `html`='Y'";
- if (isExtensionInstalledAndNewer('holiday', '0.1.3')) {
- // Extension's version is fine
- $HOL_STRING = " AND `holiday_active`='N'";
+ $HTML = '';
+ if ((isExtensionActive('html_mail')) && (postRequestElement('html') == 'Y')) {
+ $HTML = " AND `html`='Y'";
} // END - if
// ... and begin loading stuff
- while ($categoriesContent = SQL_FETCHARRAY($result_cats)) {
+ while ($categoriesContent = sqlFetchArray($result_cats)) {
$categories['id'][] = bigintval($categoriesContent['id']);
- $categories['name'][] = $categoriesContent['cat'];
+ array_push($categories['name'], $categoriesContent['cat']);
// Select users in current category
- $result_userids = SQL_QUERY_ESC("SELECT `userid` FROM `{?_MYSQL_PREFIX?}_user_cats` WHERE `cat_id`=%s AND `userid` != '%s' ORDER BY `userid` ASC",
+ $result_userids = sqlQueryEscaped('SELECT `userid` FROM `{?_MYSQL_PREFIX?}_user_cats` WHERE `cat_id`=%s AND `userid` != %s ORDER BY `userid` ASC',
array(bigintval($categoriesContent['id']), getMemberId()), __FILE__, __LINE__);
$userid_cnt = '0';
- while (list($ucat) = SQL_FETCHROW($result_userids)) {
- // Check for holiday system
- $isHolidayActive = false;
- if (isExtensionInstalledAndNewer('holiday', '0.1.3')) {
- // Check user's holiday status
- $result_holiday = SQL_QUERY_ESC("SELECT
- COUNT(d.userid) AS `cnt`
-FROM
- `{?_MYSQL_PREFIX?}_user_data` AS d
-LEFT JOIN
- `{?_MYSQL_PREFIX?}_user_holidays` AS h
-ON
- d.userid=h.userid
-WHERE
- d.userid=%s AND
- d.receive_mails > 0 AND
- d.`status`='CONFIRMED' AND
- d.`holiday_active`='Y' AND
- h.holiday_start < UNIX_TIMESTAMP() AND
- h.holiday_end > UNIX_TIMESTAMP()
-LIMIT 1",
- array(bigintval($ucat)), __FILE__, __LINE__);
-
- // Fetch entry
- list($cnt) = SQL_FETCHROW($result);
+ while (list($userid) = sqlFetchRow($result_userids)) {
+ // Init filter data array
+ $filterData = array(
+ 'userid' => $userid,
+ 'pre_okay' => TRUE,
+ );
- // Free memory
- SQL_FREERESULT($result_holiday);
-
- // Is holiday is active?
- $isHolidayActive = ($cont == 1);
- } // END - if
+ // Check for holiday system
+ $filterData = runFilterChain('pre_category_mail_order_check', $filterData);
- if ($isHolidayActive === false) {
+ // Still all fine?
+ if ($filterData['pre_okay']) === TRUE) {
// 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__);
+ $result_ver = sqlQueryEscaped("SELECT `zip` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `userid`=%s" . $HTML . " AND `receive_mails` > 0 AND `status`='CONFIRMED' LIMIT 1",
+ array(bigintval($userid)), __FILE__, __LINE__);
- if ((SQL_NUMROWS($result_ver) == 1) && (isPostRequestParameterSet('zip')) && (getConfig('order_multi_page') == 'Y')) {
+ // Is an entry found?
+ if ((sqlNumRows($result_ver) == 1) && (isPostRequestElementSet('zip')) && (isOrderMultiPageEnabled())) {
// Get zip code
- list($zip) = SQL_FETCHROW($result_ver);
- if (substr($zip, 0, strlen(postRequestParameter('zip'))) == postRequestParameter('zip')) {
- // Ok, ZIP part is found
+ list($zip) = sqlFetchRow($result_ver);
+ if (substr($zip, 0, strlen(postRequestElement('zip'))) == postRequestElement('zip')) {
+ // Ok, ZIP code part is found
$userid_cnt++;
} // END - if
} else {
// Count numbers up!
- $userid_cnt += SQL_NUMROWS($result_ver);
+ $userid_cnt += sqlNumRows($result_ver);
}
// Free result
- SQL_FREERESULT($result_ver);
+ sqlFreeResult($result_ver);
} // END - if
} // END - while
// Free memory
- SQL_FREERESULT($result_userids);
- $categories['userids'][] = $userid_cnt;
+ sqlFreeResult($result_userids);
+ array_push($categories['userids'], $userid_cnt);
} // END - while
// Free memory
- SQL_FREERESULT($result_cats);
+ sqlFreeResult($result_cats);
// Now we need to load the mail types...
- $result = SQL_QUERY("SELECT `id`, `price`, `payment`, `mail_title` FROM `{?_MYSQL_PREFIX?}_payments` ORDER BY `payment` ASC", __FILE__, __LINE__);
-
- $types = array();
- if (!SQL_HASZERONUMS($result)) {
- // Check for message id in URL
- $message = getMessageFromErrorCode(getRequestParameter('code'));
-
- if (!empty($message)) {
- // We got system message so we drop it out to the user
- loadTemplate('admin_settings_saved', false, $message);
+ $result = sqlQuery("SELECT `id`, `price`, `payment`, `mail_title` FROM `{?_MYSQL_PREFIX?}_payments` WHERE `price` > 0 AND `payment` > 0 ORDER BY `payment` ASC", __FILE__, __LINE__);
+
+ $payments = array();
+ if (!ifSqlHasZeroNums($result)) {
+ // Is the error code set?
+ if (isGetRequestElementSet('code')) {
+ // Display error message
+ displayMessage(getMessageFromErrorCode(getRequestElement('code')));
} // END - if
// Load all email types...
- while ($types[] = SQL_FETCHROW($result)) {
- // Nothing to do here... ;-)
+ while ($payment = sqlFetchArray($result)) {
+ array_push($payments, $payment);
} // END - while
// Free memory
- SQL_FREERESULT($result);
+ sqlFreeResult($result);
// Output user's points
- $content['total'] = translateComma($total);
+ $content['total_points'] = $totalPoints;
// Check how many mail orders he has placed today and how many he's allowed to send
- switch (getConfig('order_max_full')) {
+ switch (getOrderMaxFull()) {
case 'MAX': // He is allowed to send as much as possible
$content['order_max_full'] = '{--MEMBER_ORDER_ALLOWED_MAX--}';
break;
break;
default: // Unknown/invalid
- logDebugMessage(__FILE__, __LINE__, sprintf("Unknown order_mas_full config detected.", getConfig('order_max_full')));
+ logDebugMessage(__FILE__, __LINE__, sprintf("Unknown order_mas_full config detected.", getOrderMaxFull()));
$content['order_max_full'] = '{--MEMBER_ORDER_ALLOWED_UNKNOWN--}';
break;
} // END - switch
// Load final template
- loadTemplate('member_order_points', false, $content);
+ loadTemplate('member_order_points', FALSE, $content);
// Reset variables
- $OLD_ORDER = false;
+ $OLD_ORDER = FALSE;
$subject = '';
$text = '';
$target = '';
// Check if we already have an order placed and make it editable
- $result = SQL_QUERY_ESC("SELECT
- `subject`, `text`, `payment_id`, `timestamp`, `url`, `target_send`, `cat_id`, `zip`
+ $result = sqlQueryEscaped("SELECT
+ `subject`,
+ `text`,
+ `payment_id`,
+ `timestamp`,
+ `url`,
+ `target_send`,
+ `cat_id`,
+ `zip`
FROM
`{?_MYSQL_PREFIX?}_pool`
WHERE
LIMIT 1",
array(getMemberId()), __FILE__, __LINE__);
- if (SQL_NUMROWS($result) == 1) {
+ if (sqlNumRows($result) == 1) {
// Old order found
- $content = merge_array($content, SQL_FETCHARRAY($result));
+ $content = merge_array($content, sqlFetchArray($result));
// Fix max receivers when it is too much
if ((isset($categories['userids'][$content['cat_id']])) && ($content['target_send'] > $categories['userids'][$content['cat_id']])) {
} // END - if
// Old order is grabbed
- $OLD_ORDER = true;
+ $OLD_ORDER = TRUE;
} else {
// Default output for that your members don't forget it...
$content['url'] = 'http://';
- $content['target_send'] = getConfig('order_min');
- $content['subject'] = '{--ORDER_DEFAULT_SUBJECT--}';
- $content['text'] = '{--ORDER_DEFAULT_TEXT--}';
+ $content['target_send'] = '{?order_min?}';
+ $content['subject'] = '';
+ $content['text'] = '';
}
// Free result
- SQL_FREERESULT($result);
+ sqlFreeResult($result);
- if ((isPostRequestParameterSet('data')) || ((getConfig('order_multi_page') != 'Y') && ((!isAdmin()) && (!isExtensionActive('html_mail'))))) {
+ if ((isPostRequestElementSet('data')) || ((getOrderMultiPage() != 'Y') && ((!isAdmin()) && (!isExtensionActive('html_mail'))))) {
// Pre-output categories
- $content['category_selection'] = '';
- foreach ($categories['id'] as $key => $value) {
- $content['category_selection'] .= ' <option value="' . $value . '"';
- if (($OLD_ORDER) && ($content['cat_id'] == $value)) $content['category_selection'] .= ' selected="selected"';
- $content['category_selection'] .= '>' . $categories['name'][$key]." (".$categories['userids'][$key] . ' {--USER_IN_CAT--})</option>';
- } // END - foreach
+ $content['category_selection'] = generateCategoryOptionsList(((isExtensionActive('html_mail')) && (isPostRequestElementSet('html'))) ? postRequestElement('html') : 'N', getMemberId());
// Mail type
- $content['type_selection'] = '';
- foreach ($types as $key => $value) {
- $P = translateComma($types[$key][1]);
+ $content['payment_selection'] = '';
+ foreach ($payments as $key => $value) {
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['payment_selection'] .= ' <option value="' . $payments[$key]['id'] . '"';
+ if (($OLD_ORDER) && ($content['payment_id'] == $payments[$key]['id'])) $content['payment_selection'] .= ' selected="selected"';
+ $content['payment_selection'] .= '>{%pipe,translateComma=' . $payments[$key]['price'] . '%} {--PER_MAIL--} - ' . $payments[$key]['mail_title'] . ' - ' . round($payments[$key]['payment']) . ' {--PAYMENT--}</option>';
} // END - if
} // END - foreach
// No content is default
$content['zip_content'] = '';
- if (isPostRequestParameterSet('zip')) {
+ if (isPostRequestElementSet('zip')) {
// Output entered ZIP code
- $content['zip_content'] = loadTemplate('member_order-zip2', true, postRequestParameter('zip'));
+ $content['zip_content'] = loadTemplate('member_order_zip2', TRUE, postRequestElement('zip'));
} // END - if
+ // No HTML extension installed by default
+ $content['html_extension'] = '<input type="hidden" name="html" value="N" />';
+
// HTML extension
- if ((isExtensionActive('html_mail')) && (postRequestParameter('html') == 'Y')) {
+ if ((isExtensionActive('html_mail')) && (postRequestElement('html') == 'Y')) {
// Extension is active so output valid HTML tags
- $content['html_extension'] = loadTemplate('member_order-html_ext', true, addValidHtmlTags());
- } else {
- // Extension not active and/or class not uploaded
- $content['html_extension'] = '<tr><td colspan="3"><input type="hidden" name="html" value="N" /></td></tr>';
- }
+ $content['html_extension'] = loadTemplate('member_order_html_ext', TRUE);
+ } // END - if
// Output form for page 2
- loadTemplate('member_order_page2', false, $content);
+ loadTemplate('member_order_page2', FALSE, $content);
} else {
+ // No HTML extension installed by default
+ $content['html_extension'] = '<input type="hidden" name="html" value="N" />';
+
// Remember maybe entered ZIP code in constant
if (isExtensionActive('html_mail')) {
// Add some content when html extension is active
- $content['html_extension'] = loadTemplate('member_order-html_intro', true);
- } else {
- // No HTML extension installed
- $content['html_extension'] = '<tr><td colspan="3"><input type="hidden" name="html" value="N" /></td></tr>';
- }
+ $content['html_extension'] = loadTemplate('member_order_html_intro', TRUE);
+ } // END - if
// Default is no ZIP code
$content['zip_content'] = '';
- // Do we want ZIP code or not?
- if ((getConfig('order_multi_page') == 'Y') || (isAdmin())) {
+ // Is sending to ZIP code enabled? (logged-in admin can always send to it)
+ if ((isOrderMultiPageEnabled()) || (isAdmin())) {
// Yes
- if (postRequestParameter('zip') > 0) {
+ if (postRequestElement('zip') > 0) {
$data = array(
- 'zip' => bigintval(postRequestParameter('zip'))
+ 'zip' => bigintval(postRequestElement('zip'))
);
} else {
$data = array(
'zip' => ''
);
}
- $content['zip_content'] = loadTemplate('member_order-zip1', true, $data);
+ $content['zip_content'] = loadTemplate('member_order_zip1', TRUE, $data);
} // END - if
// Output form for page 1 (ZIP code or HTML)
- loadTemplate('member_order_page1', false, $content);
+ loadTemplate('member_order_page1', FALSE, $content);
}
} else {
// No mail types defined
- loadTemplate('admin_settings_saved', false, '<span class="member_failed">{--MEMBER_NO_PAYMENTS--}</span>');
+ displayMessage('<span class="bad">{--MEMBER_ORDER_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_ORDER_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="bad">{--MEMBER_NO_CATEGORIES--}</span>');
}
} else {
// Please confirm some mails first
- loadTemplate('admin_settings_saved', false, getMaskedMessage('MEMBER_LINKS_LEFT'), $links);
+ displayMessage('<span class="notice">{%message,MEMBER_ORDER_LINKS_LEFT=' . getTotalUnconfirmedMails(getMemberId()) . '%}</span>');
}
-if (!empty($url)) {
+if (!empty($data['url'])) {
// Redirect to requested URL
- redirectToUrl($url);
+ redirectToUrl($data['url']);
} // END - if
// [EOF]