Vergleich inc/datahandlers/pm.php - 1.4.0 - 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: pm.php 3879 2008-06-01 15:48:47Z Tikitiki $

 * $Id: pm.php 4277 2008-11-23 20:47:16Z Tikitiki $

 */

// Disallow direct access to this file for security reasons

 */

// Disallow direct access to this file for security reasons

Zeile 205Zeile 205
						// Check that this recipient actually exists
$query = $db->simple_select("users", "*", "uid='".intval($uid)."'");
$user = $db->fetch_array($query);

						// Check that this recipient actually exists
$query = $db->simple_select("users", "*", "uid='".intval($uid)."'");
$user = $db->fetch_array($query);

						if($recipient_type == "bcc")

						if($recipient_type == "bccid")

						{
$user['bcc'] = 1;
}

						{
$user['bcc'] = 1;
}

Zeile 225Zeile 225
		// If we have one or more invalid recipients and we're not saving a draft, error
if(count($invalid_recipients) > 0)
{

		// If we have one or more invalid recipients and we're not saving a draft, error
if(count($invalid_recipients) > 0)
{

			$invalid_recipients = implode(", ", $invalid_recipients);

			$invalid_recipients = implode(", ", array_map("htmlspecialchars_uni", $invalid_recipients));

			$this->set_error("invalid_recipients", array($invalid_recipients));
return false;
}

			$this->set_error("invalid_recipients", array($invalid_recipients));
return false;
}

Zeile 257Zeile 257
						$this->set_error("recipient_is_ignoring", array($user['username']));
}
}

						$this->set_error("recipient_is_ignoring", array($user['username']));
}
}

			}

// Can the recipient actually receive private messages based on their permissions or user setting?
if($user['receivepms'] == 0 || $recipient_permissions['canusepms'] == 0 && !$pm['saveasdraft'])
{
$this->set_error("recipient_pms_disabled", array($user['username']));
return false;

				
// Can the recipient actually receive private messages based on their permissions or user setting?
if(($user['receivepms'] == 0 || $recipient_permissions['canusepms'] == 0) && !$pm['saveasdraft'])
{
$this->set_error("recipient_pms_disabled", array($user['username']));
return false;
}

			}

// Check to see if the user has reached their private message quota - if they have, email them.

			}

// Check to see if the user has reached their private message quota - if they have, email them.

			if($recipient_permissions['pmquota'] != "0" && $recipient['pms_total'] >= $recipient_permissions['pmquota'] && $recipient_permissions['cancp'] != 1 && $sender_permissions['cancp'] != 1 && !$pm['saveasdraft'] && !$this->admin_override)

			if($recipient_permissions['pmquota'] != "0" && $user['totalpms'] >= $recipient_permissions['pmquota'] && $recipient_permissions['cancp'] != 1 && $sender_permissions['cancp'] != 1 && !$pm['saveasdraft'] && !$this->admin_override)

			{
if(trim($user['language']) != '' && $lang->language_exists($user['language']))
{

			{
if(trim($user['language']) != '' && $lang->language_exists($user['language']))
{

Zeile 320Zeile 320
			if($user['bcc'] == 1)
{
$pm['recipients'][$user['uid']]['bcc'] = 1;

			if($user['bcc'] == 1)
{
$pm['recipients'][$user['uid']]['bcc'] = 1;

			}
}
return true;
}












































			}
}
return true;
}

/**
* Verify that the user is not flooding the system.
* Temporary fix until a better one can be made for 1.6
*
* @return boolean True
*/
function verify_pm_flooding()
{
global $mybb, $db;

$pm = &$this->data;

// Check if post flooding is enabled within MyBB or if the admin override option is specified.
if($mybb->settings['postfloodcheck'] == 1 && $pm['fromid'] != 0 && $this->admin_override == false)
{
// Fetch the senders profile data.
$sender = get_user($pm['fromid']);

// Calculate last post
$query = $db->simple_select("privatemessages", "dateline", "fromid='".$db->escape_string($pm['fromid'])."'", array('order_by' => 'dateline', 'order_dir' => 'desc', 'limit' => 1));
$sender['lastpm'] = $db->fetch_field($query, "dateline");

// A little bit of calculation magic and moderator status checking.
if(TIME_NOW-$sender['lastpm'] <= $mybb->settings['postfloodsecs'] && !is_moderator("", "", $pm['fromid']))
{
// Oops, user has been flooding - throw back error message.
$time_to_wait = ($mybb->settings['postfloodsecs'] - (TIME_NOW-$sender['lastpm'])) + 1;
if($time_to_wait == 1)
{
$this->set_error("pm_flooding_one_second");
}
else
{
$this->set_error("pm_flooding", array($time_to_wait));
}
return false;
}
}
// All is well that ends well - return true.
return true;
}


	/**
* Verifies if the various 'options' for sending PMs are valid.

	/**
* Verifies if the various 'options' for sending PMs are valid.

	 *
* @return boolean True when valid, false when invalid.

	 *
* @return boolean True when valid, false when invalid.

	 */
function verify_options()
{

	 */
function verify_options()
{

Zeile 340Zeile 382

// Requesting a read receipt?
if(isset($options['readreceipt']) && $options['readreceipt'] == 1)


// Requesting a read receipt?
if(isset($options['readreceipt']) && $options['readreceipt'] == 1)

		{

		{

			$options['readreceipt'] = 1;
}
else

			$options['readreceipt'] = 1;
}
else

Zeile 356Zeile 398
	 * @return boolean True when valid, false when invalid.
*/
function validate_pm()

	 * @return boolean True when valid, false when invalid.
*/
function validate_pm()

	{

	{

		global $plugins;

$pm = &$this->data;

// Verify all PM assets.
$this->verify_subject();

		global $plugins;

$pm = &$this->data;

// Verify all PM assets.
$this->verify_subject();





		$this->verify_sender();

$this->verify_recipient();

		$this->verify_sender();

$this->verify_recipient();

Zeile 378Zeile 420
		if($pm['saveasdraft'])
{
$pm['folder'] = 3;

		if($pm['saveasdraft'])
{
$pm['folder'] = 3;

		}

		}

		else
{
$pm['folder'] = 1;

		else
{
$pm['folder'] = 1;

Zeile 386Zeile 428

// We are done validating, return.
$this->set_validated(true);


// We are done validating, return.
$this->set_validated(true);

		if(count($this->get_errors()) > 0)
{

		if(count($this->get_errors()) > 0)
{

			return false;
}
else

			return false;
}
else

		{

		{

			return true;
}
}

			return true;
}
}





	/**
* Insert a new private message.
*

	/**
* Insert a new private message.
*

Zeile 407Zeile 449

// Yes, validating is required.
if(!$this->get_validated())


// Yes, validating is required.
if(!$this->get_validated())

		{

		{

			die("The PM needs to be validated before inserting it into the DB.");
}
if(count($this->get_errors()) > 0)

			die("The PM needs to be validated before inserting it into the DB.");
}
if(count($this->get_errors()) > 0)

Zeile 419Zeile 461
		$pm = &$this->data;

$pm['pmid'] = intval($pm['pmid']);

		$pm = &$this->data;

$pm['pmid'] = intval($pm['pmid']);





		if(!$pm['icon'] || $pm['icon'] < 0)

		if(!$pm['icon'] || $pm['icon'] < 0)

		{

		{

			$pm['icon'] = 0;

			$pm['icon'] = 0;

		}


		}


		$uid = 0;


		$uid = 0;


		if(!is_array($pm['recipients'])) {


		if(!is_array($pm['recipients']))
{

			$recipient_list = array();
}

			$recipient_list = array();
}

		else {


		else
{

			// Build recipient list
foreach($pm['recipients'] as $recipient)
{

			// Build recipient list
foreach($pm['recipients'] as $recipient)
{

Zeile 506Zeile 550
				{
$uselang = "english";
}

				{
$uselang = "english";
}

				if($uselang == $mybb->settings['bblanguage'])

				if($uselang == $mybb->settings['bblanguage'] && !empty($lang->emailsubject_newpm))

				{
$emailsubject = $lang->emailsubject_newpm;
$emailmessage = $lang->email_newpm;

				{
$emailsubject = $lang->emailsubject_newpm;
$emailmessage = $lang->email_newpm;

Zeile 514Zeile 558
				else
{
$userlang = new MyLanguage;

				else
{
$userlang = new MyLanguage;

					$userlang->set_path("./inc/languages");

					$userlang->set_path(MYBB_ROOT."inc/languages");

					$userlang->set_language($uselang);
$userlang->load("messages");
$emailsubject = $userlang->emailsubject_newpm;
$emailmessage = $userlang->email_newpm;
}

					$userlang->set_language($uselang);
$userlang->load("messages");
$emailsubject = $userlang->emailsubject_newpm;
$emailmessage = $userlang->email_newpm;
}

 
				
if(!$pm['sender']['username'])
{
$pm['sender']['username'] = 'MyBB Engine';
}


				$emailmessage = $lang->sprintf($emailmessage, $recipient['username'], $pm['sender']['username'], $mybb->settings['bbname'], $mybb->settings['bburl']);
$emailsubject = $lang->sprintf($emailsubject, $mybb->settings['bbname']);
my_mail($recipient['email'], $emailsubject, $emailmessage);

				$emailmessage = $lang->sprintf($emailmessage, $recipient['username'], $pm['sender']['username'], $mybb->settings['bbname'], $mybb->settings['bburl']);
$emailsubject = $lang->sprintf($emailsubject, $mybb->settings['bbname']);
my_mail($recipient['email'], $emailsubject, $emailmessage);