Vergleich warnings.php - 1.4.1 - 1.4.4

  Keine Änderungen   Hinzugefügt   Modifiziert   Entfernt
Zeile 6Zeile 6
 * Website: http://www.mybboard.net
* License: http://www.mybboard.net/about/license
*

 * Website: http://www.mybboard.net
* License: http://www.mybboard.net/about/license
*

 * $Id: warnings.php 4119 2008-08-16 01:00:23Z Tikitiki $

 * $Id: warnings.php 4265 2008-11-08 23:52:49Z Tikitiki $

 */

define("IN_MYBB", 1);

 */

define("IN_MYBB", 1);

Zeile 746Zeile 746
				$new_warning_points = 0;
}


				$new_warning_points = 0;
}


			// Update user

 
			$updated_user = array(
"warningpoints" => $new_warning_points
);

			$updated_user = array(
"warningpoints" => $new_warning_points
);

 
			

// check if we need to revoke any consequences with this warning
$current_level = round($user['warningpoints']/$mybb->settings['maxwarningpoints']*100);
$new_warning_level = round($new_warning_points/$mybb->settings['maxwarningpoints']*100);
$query = $db->simple_select("warninglevels", "action", "percentage>$new_warning_level AND percentage<=$current_level");
if($db->num_rows($query))
{
// we have some warning levels we need to revoke
$max_expiration_times = $check_levels = array();
find_warnlevels_to_check($query, $max_expiration_times, $check_levels);

// now check warning levels already applied to this user to see if we need to lower any expiration times
$query = $db->simple_select("warninglevels", "action", "percentage<=$new_warning_level");
$lower_expiration_times = $lower_levels = array();
find_warnlevels_to_check($query, $lower_expiration_times, $lower_levels);

// now that we've got all the info, do necessary stuff
for($i = 1; $i <= 3; ++$i)
{
if($check_levels[$i])
{
switch($i)
{
case 1: // Ban
// we'll have to resort to letting the admin/mod remove the ban manually, since there's an issue if stacked bans are in force...
continue;
case 2: // Revoke posting
$current_expiry_field = 'suspensiontime';
$current_inforce_field = 'suspendposting';
break;
case 3:
$current_expiry_field = 'moderationtime';
$current_inforce_field = 'moderateposts';
break;
}

// if the thing isn't in force, don't bother with trying to update anything
if(!$user[$current_inforce_field])
{
continue;
}

if($lower_levels[$i])
{
// lessen the expiration time if necessary

if(!$lower_expiration_times[$i])
{
// doesn't expire - enforce this
$updated_user[$current_expiry_field] = 0;
continue;
}

if($max_expiration_times[$i])
{
// if the old level did have an expiry time...
if($max_expiration_times[$i] <= $lower_expiration_times[$i])
{
// if the lower expiration time is actually higher than the upper expiration time -> skip
continue;
}
// both new and old max expiry times aren't infinite, so we can take a difference
$expire_offset = ($lower_expiration_times[$i] - $max_expiration_times[$i]);
}
else
{
// the old level never expired, not much we can do but try to estimate a new expiry time... which will just happen to be starting from today...
$expire_offset = TIME_NOW + $lower_expiration_times[$i];
// if the user's expiry time is already less than what we're going to set it to, skip
if($user[$current_expiry_field] <= $expire_offset)
{
continue;
}
}

$updated_user[$current_expiry_field] = $user[$current_expiry_field] + $expire_offset;
// double-check if it's expired already
if($updated_user[$current_expiry_field] < TIME_NOW)
{
$updated_user[$current_expiry_field] = 0;
$updated_user[$current_inforce_field] = 0;
}
}
else
{
// there's no lower level for this type - remove the consequence entirely
$updated_user[$current_expiry_field] = 0;
$updated_user[$current_inforce_field] = 0;
}
}
}
}


// Update user

			$db->update_query("users", $updated_user, "uid='{$warning['uid']}'");
}


			$db->update_query("users", $updated_user, "uid='{$warning['uid']}'");
}


Zeile 823Zeile 918
	{
$warning['post_subject'] = $parser->parse_badwords($warning['post_subject']);
$warning['post_subject'] = htmlspecialchars_uni($warning['post_subject']);

	{
$warning['post_subject'] = $parser->parse_badwords($warning['post_subject']);
$warning['post_subject'] = htmlspecialchars_uni($warning['post_subject']);

		$post_link = get_post_link($warning['pid']);

		$post_link = get_post_link($warning['pid'])."#pid{$warning['pid']}";

		eval("\$warning_info = \"".$templates->get("warnings_view_post")."\";");
}
else

		eval("\$warning_info = \"".$templates->get("warnings_view_post")."\";");
}
else

Zeile 940Zeile 1035
		$page = 1;
}
if($page)

		$page = 1;
}
if($page)

	{

	{

		$start = ($page-1) * $perpage;
}
else

		$start = ($page-1) * $perpage;
}
else

Zeile 1056Zeile 1151
	eval("\$warnings = \"".$templates->get("warnings")."\";");
$plugins->run_hooks("warnings_end");
output_page($warnings);

	eval("\$warnings = \"".$templates->get("warnings")."\";");
$plugins->run_hooks("warnings_end");
output_page($warnings);

 
}



function find_warnlevels_to_check(&$query, &$max_expiration_times, &$check_levels)
{
global $db;
// we have some warning levels we need to revoke
$max_expiration_times = array(
1 => -1, // Ban
2 => -1, // Revoke posting
3 => -1 // Moderate posting
);
$check_levels = array(
1 => false, // Ban
2 => false, // Revoke posting
3 => false // Moderate posting
);
while($warn_level = $db->fetch_array($query))
{
// revoke actions taken at this warning level
$action = unserialize($warn_level['action']);
if($action['type'] < 1 || $action['type'] > 3) // prevent any freak-ish cases
{
continue;
}

$check_levels[$action['type']] = true;

$max_exp_time = &$max_expiration_times[$action['type']];
if($action['length'] && $max_exp_time != 0)
{
$expiration = $action['length'];
if($expiration > $max_exp_time)
{
$max_exp_time = $expiration;
}
}
else
{
$max_exp_time = 0;
}
}

}

?>

}

?>