Vergleich inc/functions_modcp.php - 1.8.0 - 1.8.36

  Keine Änderungen   Hinzugefügt   Modifiziert   Entfernt
Zeile 11Zeile 11
/**
* Check if the current user has permission to perform a ModCP action on another user
*

/**
* Check if the current user has permission to perform a ModCP action on another user
*

 * @param int The user ID to perform the action on.

 * @param int $uid The user ID to perform the action on.

 * @return boolean True if the user has necessary permissions
*/
function modcp_can_manage_user($uid)

 * @return boolean True if the user has necessary permissions
*/
function modcp_can_manage_user($uid)

Zeile 36Zeile 36
/**
* Fetch forums the moderator can manage announcements to
*

/**
* Fetch forums the moderator can manage announcements to
*

 * @param int (Optional) The parent forum ID
* @param int (Optional) The depth from parent forum the moderator can manage to

 * @param int $pid (Optional) The parent forum ID
* @param int $depth (Optional) The depth from parent forum the moderator can manage to

 */
function fetch_forum_announcements($pid=0, $depth=1)
{

 */
function fetch_forum_announcements($pid=0, $depth=1)
{

	global $mybb, $db, $lang, $theme, $announcements, $templates, $announcements_forum, $moderated_forums, $unviewableforums;

	global $mybb, $db, $lang, $theme, $announcements, $templates, $announcements_forum, $moderated_forums, $unviewableforums, $parser;

	static $forums_by_parent, $forum_cache, $parent_forums;

if(!is_array($forum_cache))

	static $forums_by_parent, $forum_cache, $parent_forums;

if(!is_array($forum_cache))

Zeile 74Zeile 74
	{
foreach($children as $forum)
{

	{
foreach($children as $forum)
{

			if($forum['linkto'] || ($unviewableforums && in_array($forum['fid'], $unviewableforums)))

			if($forum['linkto'] || (is_array($unviewableforums) && in_array($forum['fid'], $unviewableforums)))

			{
continue;
}

			{
continue;
}

Zeile 82Zeile 82
			if($forum['active'] == 0 || !is_moderator($forum['fid'], "canmanageannouncements"))
{
// Check if this forum is a parent of a moderated forum

			if($forum['active'] == 0 || !is_moderator($forum['fid'], "canmanageannouncements"))
{
// Check if this forum is a parent of a moderated forum

				if(in_array($forum['fid'], $parent_forums))

				if(is_array($parent_forums) && in_array($forum['fid'], $parent_forums))

				{
// A child is moderated, so print out this forum's title. RECURSE!
$trow = alt_trow();

				{
// A child is moderated, so print out this forum's title. RECURSE!
$trow = alt_trow();

Zeile 118Zeile 118
							eval("\$icon = \"".$templates->get("modcp_announcements_announcement_active")."\";");
}


							eval("\$icon = \"".$templates->get("modcp_announcements_announcement_active")."\";");
}


						$subject = htmlspecialchars_uni($announcement['subject']);

						$subject = htmlspecialchars_uni($parser->parse_badwords($announcement['subject']));


eval("\$announcements_forum .= \"".$templates->get("modcp_announcements_announcement")."\";");
}


eval("\$announcements_forum .= \"".$templates->get("modcp_announcements_announcement")."\";");
}

Zeile 137Zeile 137
/**
* Send reported content to moderators
*

/**
* Send reported content to moderators
*

 * @param array Array of reported content
* @return bool True if PM sent


 * @param array $report Array of reported content
* @param string $report_type Type of content being reported
* @return bool|array PM Information or false

 */

 */

function send_report($report)

function send_report($report, $report_type='post')

{

{

	global $db, $lang, $forum, $mybb, $post, $thread;

	global $db, $lang, $forum, $mybb, $post, $thread, $reputation, $user, $plugins;





	$query = $db->query("
SELECT DISTINCT u.username, u.email, u.receivepms, u.uid
FROM ".TABLE_PREFIX."moderators m
LEFT JOIN ".TABLE_PREFIX."users u ON (u.uid=m.id)
WHERE m.fid IN (".$forum['parentlist'].") AND m.isgroup = '0'
");

$nummods = $db->num_rows($query);

if(!$nummods)
{
unset($query);
switch($db->type)
{
case "pgsql":
case "sqlite":
$query = $db->query("
SELECT u.username, u.email, u.receivepms, u.uid
FROM ".TABLE_PREFIX."users u
LEFT JOIN ".TABLE_PREFIX."usergroups g ON (((','|| u.additionalgroups|| ',' LIKE '%,'|| g.gid|| ',%') OR u.usergroup = g.gid))
WHERE (g.cancp=1 OR g.issupermod=1)
");
break;
default:
$query = $db->query("
SELECT u.username, u.email, u.receivepms, u.uid
FROM ".TABLE_PREFIX."users u
LEFT JOIN ".TABLE_PREFIX."usergroups g ON (((CONCAT(',', u.additionalgroups, ',') LIKE CONCAT('%,', g.gid, ',%')) OR u.usergroup = g.gid))
WHERE (g.cancp=1 OR g.issupermod=1)
");

	$report_reason = '';
if($report['reasonid'])
{
$query = $db->simple_select("reportreasons", "title", "rid = '".(int)$report['reasonid']."'", array('limit' => 1));
$reason = $db->fetch_array($query);

$lang->load('report');

$report_reason = $lang->parse($reason['title']);
}

if($report['reason'])
{
$report_reason = $lang->sprintf($lang->email_report_comment_extra, $report_reason, $report['reason']);
}

$modsjoin = $modswhere = '';
if(!empty($forum['parentlist']))
{
$modswhere = "m.fid IN ({$forum['parentlist']}) OR ";

if($db->type == 'pgsql' || $db->type == 'sqlite')
{
$modsjoin = "LEFT JOIN {$db->table_prefix}moderators m ON (m.id = u.uid AND m.isgroup = 0) OR ((m.id = u.usergroup OR ',' || u.additionalgroups || ',' LIKE '%,' || m.id || ',%') AND m.isgroup = 1)";
}
else
{
$modsjoin = "LEFT JOIN {$db->table_prefix}moderators m ON (m.id = u.uid AND m.isgroup = 0) OR ((m.id = u.usergroup OR CONCAT(',', u.additionalgroups, ',') LIKE CONCAT('%,', m.id, ',%')) AND m.isgroup = 1)";



		}
}


		}
}


 
	switch($db->type)
{
case "pgsql":
case "sqlite":
$query = $db->query("
SELECT DISTINCT u.username, u.email, u.receivepms, u.uid
FROM {$db->table_prefix}users u
{$modsjoin}
LEFT JOIN {$db->table_prefix}usergroups g ON (',' || u.additionalgroups || ',' LIKE '%,' || g.gid || ',%' OR g.gid = u.usergroup)
WHERE {$modswhere}g.cancp = 1 OR g.issupermod = 1
");
break;
default:
$query = $db->query("
SELECT DISTINCT u.username, u.email, u.receivepms, u.uid
FROM {$db->table_prefix}users u
{$modsjoin}
LEFT JOIN {$db->table_prefix}usergroups g ON (CONCAT(',', u.additionalgroups, ',') LIKE CONCAT('%,', g.gid, ',%') OR g.gid = u.usergroup)
WHERE {$modswhere}g.cancp = 1 OR g.issupermod = 1
");
}

$lang_string_subject = "emailsubject_report{$report_type}";
$lang_string_message = "email_report{$report_type}";

if(empty($lang->$lang_string_subject) || empty($lang->$lang_string_message))
{
return false;
}

global $send_report_subject, $send_report_url;

switch($report_type)
{
case 'post':
$send_report_subject = $post['subject'];
$send_report_url = str_replace('&', '&', get_post_link($post['pid'], $thread['tid'])."#pid".$post['pid']);
break;
case 'profile':
$send_report_subject = $user['username'];
$send_report_url = str_replace('&', '&', get_profile_link($user['uid']));
break;
case 'reputation':
$from_user = get_user($reputation['adduid']);
$send_report_subject = $from_user['username'];
$send_report_url = "reputation.php?uid={$reputation['uid']}#rid{$reputation['rid']}";
break;
}

$plugins->run_hooks("send_report_report_type");

$emailsubject = $lang->sprintf($lang->$lang_string_subject, $mybb->settings['bbname']);
$emailmessage = $lang->sprintf($lang->$lang_string_message, $mybb->user['username'], $mybb->settings['bbname'], $send_report_subject, $mybb->settings['bburl'], $send_report_url, $report_reason);
$pm_recipients = array();


	while($mod = $db->fetch_array($query))
{

	while($mod = $db->fetch_array($query))
{

		$emailsubject = $lang->sprintf($lang->emailsubject_reportpost, $mybb->settings['bbname']);
$emailmessage = $lang->sprintf($lang->email_reportpost, $mybb->user['username'], $mybb->settings['bbname'], $post['subject'], $mybb->settings['bburl'], str_replace('&', '&', get_post_link($post['pid'], $thread['tid'])."#pid".$post['pid']), $thread['subject'], $report['reason']);


 
		if($mybb->settings['reportmethod'] == "pms" && $mod['receivepms'] != 0 && $mybb->settings['enablepms'] != 0)

		if($mybb->settings['reportmethod'] == "pms" && $mod['receivepms'] != 0 && $mybb->settings['enablepms'] != 0)

		{

		{

			$pm_recipients[] = $mod['uid'];
}
else

			$pm_recipients[] = $mod['uid'];
}
else

Zeile 191Zeile 242
			my_mail($mod['email'], $emailsubject, $emailmessage);
}
}

			my_mail($mod['email'], $emailsubject, $emailmessage);
}
}





	if(count($pm_recipients) > 0)
{

	if(count($pm_recipients) > 0)
{

		$emailsubject = $lang->sprintf($lang->emailsubject_reportpost, $mybb->settings['bbname']);
$emailmessage = $lang->sprintf($lang->email_reportpost, $mybb->user['username'], $mybb->settings['bbname'], $post['subject'], $mybb->settings['bburl'], str_replace('&', '&', get_post_link($post['pid'], $thread['tid'])."#pid".$post['pid']), $thread['subject'], $report['reason']);


 
		require_once MYBB_ROOT."inc/datahandlers/pm.php";
$pmhandler = new PMDataHandler();


		require_once MYBB_ROOT."inc/datahandlers/pm.php";
$pmhandler = new PMDataHandler();


Zeile 206Zeile 254
			"icon" => 0,
"fromid" => $mybb->user['uid'],
"toid" => $pm_recipients,

			"icon" => 0,
"fromid" => $mybb->user['uid'],
"toid" => $pm_recipients,

			"ipaddress" => $session->packedip








			"ipaddress" => $mybb->session->packedip
);

$pm['options'] = array(
"signature" => 0,
"disablesmilies" => 0,
"savecopy" => 0,
"readreceipt" => 0

		);

		);

 
		$pm['saveasdraft'] = 0;


$pmhandler->admin_override = true;
$pmhandler->set_data($pm);


$pmhandler->admin_override = true;
$pmhandler->set_data($pm);

Zeile 230Zeile 286
/**
* Add a report
*

/**
* Add a report
*

 * @param array Array of reported content
* @param string Type of content being reported

 * @param array $report Array of reported content
* @param string $type Type of content being reported

 * @return int Report ID
*/
function add_report($report, $type = 'post')

 * @return int Report ID
*/
function add_report($report, $type = 'post')

Zeile 244Zeile 300
		'id3' => (int)$report['id3'],
'uid' => (int)$report['uid'],
'reportstatus' => 0,

		'id3' => (int)$report['id3'],
'uid' => (int)$report['uid'],
'reportstatus' => 0,

 
		'reasonid' => (int)$report['reasonid'],

		'reason' => $db->escape_string($report['reason']),
'type' => $db->escape_string($type),
'reports' => 1,
'dateline' => TIME_NOW,
'lastreport' => TIME_NOW,

		'reason' => $db->escape_string($report['reason']),
'type' => $db->escape_string($type),
'reports' => 1,
'dateline' => TIME_NOW,
'lastreport' => TIME_NOW,

		'reporters' => $db->escape_string(serialize(array($report['uid'])))

		'reporters' => $db->escape_string(my_serialize(array($report['uid'])))

	);

if($mybb->settings['reportmethod'] == "email" || $mybb->settings['reportmethod'] == "pms")
{

	);

if($mybb->settings['reportmethod'] == "email" || $mybb->settings['reportmethod'] == "pms")
{

		return send_report($report);

		send_report($report, $type);

	}

$rid = $db->insert_query("reportedcontent", $insert_array);

	}

$rid = $db->insert_query("reportedcontent", $insert_array);

Zeile 266Zeile 323
/**
* Update an existing report
*

/**
* Update an existing report
*

 * @param array Array of reported content
* @return bool

 * @param array $report Array of reported content
* @return bool true

 */
function update_report($report)
{

 */
function update_report($report)
{

Zeile 276Zeile 333
	$update_array = array(
'reports' => ++$report['reports'],
'lastreport' => TIME_NOW,

	$update_array = array(
'reports' => ++$report['reports'],
'lastreport' => TIME_NOW,

		'reporters' => $db->escape_string(serialize($report['reporters']))

		'reporters' => $db->escape_string(my_serialize($report['reporters']))

	);

$db->update_query("reportedcontent", $update_array, "rid = '{$report['rid']}'");

	);

$db->update_query("reportedcontent", $update_array, "rid = '{$report['rid']}'");