Zeile 6 | Zeile 6 |
---|
* Website: http://mybb.com * License: http://mybb.com/about/license *
|
* Website: http://mybb.com * License: http://mybb.com/about/license *
|
* $Id: promotions.php 5369 2011-02-17 10:55:29Z MattR $
| * $Id$
|
*/
function task_promotions($task) { global $mybb, $db, $lang, $cache;
|
*/
function task_promotions($task) { global $mybb, $db, $lang, $cache;
|
|
|
$usergroups = $cache->read("usergroups"); // Iterate through all our promotions $query = $db->simple_select("promotions", "*", "enabled = '1'");
| $usergroups = $cache->read("usergroups"); // Iterate through all our promotions $query = $db->simple_select("promotions", "*", "enabled = '1'");
|
Zeile 28 | Zeile 28 |
---|
$db->update_query("promotions", $update, "pid = '" . intval($promotion['pid']) . "'"); continue; }
|
$db->update_query("promotions", $update, "pid = '" . intval($promotion['pid']) . "'"); continue; }
|
|
|
$and = ""; $sql_where = "";
|
$and = ""; $sql_where = "";
|
|
|
// Based on the promotion generate criteria for user selection $requirements = explode(',', $promotion['requirements']); if(in_array('postcount', $requirements) && intval($promotion['posts']) >= 0 && !empty($promotion['posttype'])) { $sql_where .= "{$and}postnum {$promotion['posttype']} '{$promotion['posts']}'";
|
// Based on the promotion generate criteria for user selection $requirements = explode(',', $promotion['requirements']); if(in_array('postcount', $requirements) && intval($promotion['posts']) >= 0 && !empty($promotion['posttype'])) { $sql_where .= "{$and}postnum {$promotion['posttype']} '{$promotion['posts']}'";
|
$and = " AND "; }
| $and = " AND "; }
|
if(in_array('reputation', $requirements) && !empty($promotion['reputationtype']))
|
if(in_array('reputation', $requirements) && !empty($promotion['reputationtype']))
|
{
| {
|
$sql_where .= "{$and}reputation {$promotion['reputationtype']} '{$promotion['reputations']}'";
|
$sql_where .= "{$and}reputation {$promotion['reputationtype']} '{$promotion['reputations']}'";
|
$and = " AND "; }
| $and = " AND "; }
|
if(in_array('referrals', $requirements) && intval($promotion['referrals']) >= 0 && !empty($promotion['referralstype'])) { $sql_where .= "{$and}referrals {$promotion['referralstype']} '{$promotion['referrals']}'";
|
if(in_array('referrals', $requirements) && intval($promotion['referrals']) >= 0 && !empty($promotion['referralstype'])) { $sql_where .= "{$and}referrals {$promotion['referralstype']} '{$promotion['referrals']}'";
|
|
|
$and = " AND "; }
|
$and = " AND "; }
|
|
|
if(in_array('timeregistered', $requirements) && intval($promotion['registered']) > 0 && !empty($promotion['registeredtype']))
|
if(in_array('timeregistered', $requirements) && intval($promotion['registered']) > 0 && !empty($promotion['registeredtype']))
|
{
| {
|
switch($promotion['registeredtype']) { case "hours": $regdate = $promotion['registered']*60*60;
|
switch($promotion['registeredtype']) { case "hours": $regdate = $promotion['registered']*60*60;
|
break;
| break;
|
case "days": $regdate = $promotion['registered']*60*60*24;
|
case "days": $regdate = $promotion['registered']*60*60*24;
|
break;
| break;
|
case "weeks": $regdate = $promotion['registered']*60*60*24*7;
|
case "weeks": $regdate = $promotion['registered']*60*60*24*7;
|
| break;
|
case "months": $regdate = $promotion['registered']*60*60*24*30; break;
| case "months": $regdate = $promotion['registered']*60*60*24*30; break;
|
Zeile 79 | Zeile 80 |
---|
$sql_where .= "{$and}regdate <= '".(TIME_NOW-$regdate)."'"; $and = " AND "; }
|
$sql_where .= "{$and}regdate <= '".(TIME_NOW-$regdate)."'"; $and = " AND "; }
|
|
|
if(!empty($promotion['originalusergroup']) && $promotion['originalusergroup'] != '*')
|
if(!empty($promotion['originalusergroup']) && $promotion['originalusergroup'] != '*')
|
{
| {
|
$sql_where .= "{$and}usergroup IN ({$promotion['originalusergroup']})";
|
$sql_where .= "{$and}usergroup IN ({$promotion['originalusergroup']})";
|
$and = " AND "; }
| $and = " AND "; }
|
if(!empty($promotion['newusergroup'])) { $sql_where .= "{$and}usergroup != '{$promotion['newusergroup']}'";
|
if(!empty($promotion['newusergroup'])) { $sql_where .= "{$and}usergroup != '{$promotion['newusergroup']}'";
|
|
|
$and = " AND "; }
|
$and = " AND "; }
|
|
|
$sql_where .= "{$and}lastactive >= '{$task['lastrun']}'";
|
$sql_where .= "{$and}lastactive >= '{$task['lastrun']}'";
|
| // Exclude super admins $sql_where .= not_super_admins(true);
|
$uid = array(); $log_inserts = array();
|
$uid = array(); $log_inserts = array();
|
|
|
if($promotion['usergrouptype'] == "secondary") { $usergroup_select = "additionalgroups";
| if($promotion['usergrouptype'] == "secondary") { $usergroup_select = "additionalgroups";
|
Zeile 107 | Zeile 111 |
---|
{ $usergroup_select = "usergroup"; }
|
{ $usergroup_select = "usergroup"; }
|
|
|
$query2 = $db->simple_select("users", "uid,{$usergroup_select}", $sql_where); while($user = $db->fetch_array($query2)) {
| $query2 = $db->simple_select("users", "uid,{$usergroup_select}", $sql_where); while($user = $db->fetch_array($query2)) {
|
Zeile 118 | Zeile 122 |
---|
'pid' => $promotion['pid'], 'uid' => $user['uid'], 'oldusergroup' => $user['additionalgroups'],
|
'pid' => $promotion['pid'], 'uid' => $user['uid'], 'oldusergroup' => $user['additionalgroups'],
|
'newusergroup' => $promotion['newusergroup'],
| 'newusergroup' => $promotion['newusergroup'],
|
'dateline' => TIME_NOW, 'type' => "secondary",
|
'dateline' => TIME_NOW, 'type' => "secondary",
|
);
| );
|
} else {
| } else {
|
Zeile 134 | Zeile 138 |
---|
'type' => "primary", ); }
|
'type' => "primary", ); }
|
|
|
$uids[] = $user['uid'];
|
$uids[] = $user['uid'];
|
|
|
if($usergroup_select == "additionalgroups")
|
if($usergroup_select == "additionalgroups")
|
{
| {
|
if(join_usergroup($user['uid'], $promotion['newusergroup']) === false) { // Did the user already have the additional usergroup?
| if(join_usergroup($user['uid'], $promotion['newusergroup']) === false) { // Did the user already have the additional usergroup?
|
Zeile 147 | Zeile 151 |
---|
array_pop($uids); } }
|
array_pop($uids); } }
|
|
|
if((count($uids) % 20) == 0) { if($usergroup_select == "usergroup")
|
if((count($uids) % 20) == 0) { if($usergroup_select == "usergroup")
|
{
| {
|
$db->update_query("users", array('usergroup' => $promotion['newusergroup']), "uid IN(".implode(",", $uids).")");
|
$db->update_query("users", array('usergroup' => $promotion['newusergroup']), "uid IN(".implode(",", $uids).")");
|
}
| }
|
if(!empty($log_inserts)) { $db->insert_query_multiple("promotionlogs", $log_inserts); }
|
if(!empty($log_inserts)) { $db->insert_query_multiple("promotionlogs", $log_inserts); }
|
|
|
$uids = array(); $log_inserts = array(); } }
|
$uids = array(); $log_inserts = array(); } }
|
|
|
if(count($uids) > 0) { if($usergroup_select == "usergroup")
|
if(count($uids) > 0) { if($usergroup_select == "usergroup")
|
{
| {
|
$db->update_query("users", array('usergroup' => $promotion['newusergroup']), "uid IN(".implode(",", $uids).")");
|
$db->update_query("users", array('usergroup' => $promotion['newusergroup']), "uid IN(".implode(",", $uids).")");
|
}
| }
|
if(!empty($log_inserts)) { $db->insert_query_multiple("promotionlogs", $log_inserts); }
|
if(!empty($log_inserts)) { $db->insert_query_multiple("promotionlogs", $log_inserts); }
|
|
|
$uids = array(); $log_inserts = array(); } }
|
$uids = array(); $log_inserts = array(); } }
|
|
|
$cache->update_moderators();
|
$cache->update_moderators();
|
|
|
add_task_log($task, $lang->task_promotions_ran); } ?>
| add_task_log($task, $lang->task_promotions_ran); } ?>
|