Zeile 6 | Zeile 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 205 | Zeile 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 225 | Zeile 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 257 | Zeile 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 320 | Zeile 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 340 | Zeile 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 356 | Zeile 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 378 | Zeile 420 |
---|
if($pm['saveasdraft']) { $pm['folder'] = 3;
|
if($pm['saveasdraft']) { $pm['folder'] = 3;
|
}
| }
|
else { $pm['folder'] = 1;
| else { $pm['folder'] = 1;
|
Zeile 386 | Zeile 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 407 | Zeile 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 419 | Zeile 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 506 | Zeile 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 514 | Zeile 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);
|