diff --git a/e107_plugins/pm/pm.php b/e107_plugins/pm/pm.php
index 00dda193c..c234c5c7f 100755
--- a/e107_plugins/pm/pm.php
+++ b/e107_plugins/pm/pm.php
@@ -1,886 +1,950 @@
toGlyph('fa-paperclip'));
+ }
+ else
+ {
+
+ define('ATTACHMENT_ICON', "
");
+ }
+ }
-if(!defined('ATTACHMENT_ICON'))
-{
if(deftrue('BOOTSTRAP') && deftrue('FONTAWESOME'))
{
- define('ATTACHMENT_ICON', $tp->toGlyph('fa-paperclip'));
+ define('PM_DELETE_ICON', $tp->toGlyph('fa-trash', 'fw=1'));
}
else
{
-
- define('ATTACHMENT_ICON', "
");
+ define("PM_DELETE_ICON", "
");
}
-}
-if(deftrue('BOOTSTRAP') && deftrue('FONTAWESOME'))
-{
- define('PM_DELETE_ICON', $tp->toGlyph('fa-trash', 'fw=1'));
-}
-else
-{
- define("PM_DELETE_ICON","
");
-}
+ $qs = explode('.', e_QUERY);
+ $action = varset($qs[0], 'inbox');
+ if(!$action)
+ {
+ $action = 'inbox';
+ }
-$qs = explode('.', e_QUERY);
-$action = varset($qs[0],'inbox');
-if (!$action) $action = 'inbox';
+ if(!empty($_GET['mode']))
+ {
+ $action = $tp->filter($_GET['mode']);
+ }
+ /*
+ if($action == 'textarea' || $action == 'input')
+ {
+ if($qs[1] == 'pm_to') {
+ require_once(e_HANDLER.'user_select_class.php');
+ $us = new user_select;
+ $us->popup();
+ exit;
+ }
+ }*/
-if(!empty($_GET['mode']))
-{
- $action = $tp->filter($_GET['mode']);
-}
-/*
-if($action == 'textarea' || $action == 'input')
-{
- if($qs[1] == 'pm_to') {
- require_once(e_HANDLER.'user_select_class.php');
- $us = new user_select;
- $us->popup();
+ $pm_proc_id = intval(varset($qs[1], 0));
+
+ //$pm_prefs = $sysprefs->getArray('pm_prefs');
+
+ $pm_prefs = e107::getPlugPref('pm');
+
+
+ $pm_prefs['perpage'] = intval($pm_prefs['perpage']);
+ if($pm_prefs['perpage'] == 0)
+ {
+ $pm_prefs['perpage'] = 10;
+ }
+
+ if(!isset($pm_prefs['pm_class']) || !check_class($pm_prefs['pm_class']))
+ {
+ require_once(HEADERF);
+ $ns->tablerender(LAN_PM, LAN_PM_12);
+ require_once(FOOTERF);
exit;
}
-}*/
-$pm_proc_id = intval(varset($qs[1],0));
-
-//$pm_prefs = $sysprefs->getArray('pm_prefs');
-
-$pm_prefs = e107::getPlugPref('pm');
+ //setScVar('pm_handler_shortcodes','pmPrefs', $pm_prefs);
+ $pmManager = new pmbox_manager($pm_prefs);
-$pm_prefs['perpage'] = intval($pm_prefs['perpage']);
-if($pm_prefs['perpage'] == 0)
-{
- $pm_prefs['perpage'] = 10;
-}
-
-if(!isset($pm_prefs['pm_class']) || !check_class($pm_prefs['pm_class']))
-{
- require_once(HEADERF);
- $ns->tablerender(LAN_PM, LAN_PM_12);
- require_once(FOOTERF);
- exit;
-}
-
-//setScVar('pm_handler_shortcodes','pmPrefs', $pm_prefs);
-$pmManager = new pmbox_manager($pm_prefs);
-//setScVar('pm_handler_shortcodes','pmManager', &$pmManager);
+ //setScVar('pm_handler_shortcodes','pmManager', &$pmManager);
-
-
-class pm_extended extends private_message
-{
- protected $pmManager = NULL;
-
- /**
- * Constructor
- *
- * @param array $prefs - pref settings for PM plugin
- * @return none
- */
- public function __construct($prefs, $manager)
+ class pm_extended extends private_message
{
- $this->pmManager = $manager;
- parent::__construct($prefs);
- }
+ protected $pmManager = null;
-
- /**
- * Show the 'Send to' form
- * @param array|int $to_uid - a PM block of message to reply to, or UID of user to send to
- *
- * @return string text for display
- */
- function show_send($to_uid)
- {
- $pm_info = array();
- $pm_outbox = $this->pmManager->pm_getInfo('outbox');
-
- if (is_array($to_uid))
+ /**
+ * Constructor
+ *
+ * @param array $prefs - pref settings for PM plugin
+ * @return none
+ */
+ public function __construct($prefs, $manager)
{
- $pm_info = $to_uid; // We've been passed a 'reply to' PM
- $to_uid = $pm_info['pm_from'];
+ $this->pmManager = $manager;
+ parent::__construct($prefs);
}
-
- if(!empty($to_uid))
+ /**
+ * Show the 'Send to' form
+ * @param array|int $to_uid - a PM block of message to reply to, or UID of user to send to
+ *
+ * @return string text for display
+ */
+ function show_send($to_uid)
{
+ $pm_info = array();
+ $pm_outbox = $this->pmManager->pm_getInfo('outbox');
- if($this->canSendTo($to_uid) == false)
+ if(is_array($to_uid))
{
- return "
".LAN_PM_114."
";// sending to this user is not permitted.
+ $pm_info = $to_uid; // We've been passed a 'reply to' PM
+ $to_uid = $pm_info['pm_from'];
}
- $sql2 = e107::getDb('sql2');
- if($sql2->select('user', 'user_name', 'user_id = '.intval($to_uid))) //TODO add a check for userclass.
+
+ if(!empty($to_uid))
{
- $row = $sql2->fetch();
- $pm_info['from_name'] = $row['user_name'];
- $pm_info['pm_from'] = intval($to_uid);
+
+ if($this->canSendTo($to_uid) == false)
+ {
+ return "" . LAN_PM_114 . "
";// sending to this user is not permitted.
+ }
+
+ $sql2 = e107::getDb('sql2');
+ if($sql2->select('user', 'user_name', 'user_id = ' . intval($to_uid))) //TODO add a check for userclass.
+ {
+ $row = $sql2->fetch();
+ $pm_info['from_name'] = $row['user_name'];
+ $pm_info['pm_from'] = intval($to_uid);
+ }
+ else
+ {
+ return "" . LAN_PM_115 . "
";
+ }
+
+ }
+
+ //echo "Show_send: {$to_uid} from {$pm_info['from_name']} is happening
";
+
+ if($pm_outbox['outbox']['filled'] >= 100)
+ {
+ return str_replace('{PERCENT}', $pm_outbox['outbox']['filled'], LAN_PM_13);
+ }
+
+ // $tpl_file = THEME.'pm_template.php';
+// include_once(is_readable($tpl_file) ? $tpl_file : e_PLUGIN.'pm/pm_template.php');
+
+ if(THEME_LEGACY === true)
+ {
+ include_once(THEME . 'pm_template.php');
+ $PM_SEND_PM = $this->updateTemplate($PM_SEND_PM);
+ }
+
+ if(empty($PM_SEND_PM))
+ {
+ $PM_SEND_PM = e107::getTemplate('pm', 'pm', 'send');
+ }
+
+ $enc = (check_class($this->pmPrefs['attach_class']) ? "enctype='multipart/form-data'" : '');
+ // setScVar('pm_handler_shortcodes','pmInfo', $pm_info);
+
+ $sc = e107::getScBatch('pm', true, 'pm');
+ $sc->setVars($pm_info);
+ $sc->wrapper('pm');
+
+// $PM_SEND_PM = $this->updateTemplate($PM_SEND_PM);
+
+ $text = "';
+
+ return $text;
+ }
+
+
+ /**
+ * Show inbox
+ * @param int $start - offset into list
+ *
+ * @return string text for display
+ */
+
+ function show_inbox($start = 0)
+ {
+ $tp = e107::getParser();
+
+// $tpl_file = THEME.'pm_template.php';
+// include(is_readable($tpl_file) ? $tpl_file : e_PLUGIN.'pm/pm_template.php');
+ if(THEME_LEGACY === true)
+ {
+ include_once(THEME . 'pm_template.php');
+
+ // Is updateTemplate really necessary for v2.x templates?
+ $PM_INBOX = array();
+ $PM_INBOX['start'] = $this->updateTemplate($PM_INBOX_HEADER);
+ $PM_INBOX['item'] = $this->updateTemplate($PM_INBOX_TABLE);
+ $PM_INBOX['empty'] = $this->updateTemplate($PM_INBOX_EMPTY);
+ $PM_INBOX['end'] = $this->updateTemplate($PM_INBOX_FOOTER);
+ }
+
+ if(empty($PM_INBOX))
+ {
+ $PM_INBOX = e107::getTemplate('pm', 'pm', 'inbox');
+ }
+
+ $pm_blocks = $this->block_get();
+ $pmlist = $this->pm_get_inbox(USERID, $start, $this->pmPrefs['perpage']);
+
+ // setScVar('pm_handler_shortcodes', 'pmNextPrev', array('start' => $start, 'total' => $pmlist['total_messages']));
+
+ $sc = e107::getScBatch('pm', true, 'pm');
+ $sc->pmNextPrev = array('start' => $start, 'total' => $pmlist['total_messages']);
+ $sc->wrapper('pm');
+
+// Is updateTemplate really necessary for v2.x templates?
+ /*
+ $PM_INBOX_HEADER = $this->updateTemplate($PM_INBOX['start']);
+ $PM_INBOX_TABLE = $this->updateTemplate($PM_INBOX['item']);
+ $PM_INBOX_EMPTY = $this->updateTemplate($PM_INBOX['empty']);
+ $PM_INBOX_FOOTER = $this->updateTemplate($PM_INBOX['end']);
+ */
+ $txt = "";
+
+
+ return $txt;
}
- //echo "Show_send: {$to_uid} from {$pm_info['from_name']} is happening
";
-
- if($pm_outbox['outbox']['filled'] >= 100)
+
+
+ /**
+ * Show outbox
+ * @param int $start - offset into list
+ *
+ * @return string text for display
+ */
+ function show_outbox($start = 0)
{
- return str_replace('{PERCENT}', $pm_outbox['outbox']['filled'], LAN_PM_13);
- }
- // $tpl_file = THEME.'pm_template.php';
-// include_once(is_readable($tpl_file) ? $tpl_file : e_PLUGIN.'pm/pm_template.php');
- if(THEME_LEGACY){
- include_once(THEME.'pm_template.php');
- $PM_SEND_PM = $this->updateTemplate($PM_SEND_PM);
- }
- if (!$PM_SEND_PM){$PM_SEND_PM = e107::getTemplate('pm', 'pm', 'send');}
+ $tp = e107::getParser();
- $enc = (check_class($this->pmPrefs['attach_class']) ? "enctype='multipart/form-data'" : '');
- // setScVar('pm_handler_shortcodes','pmInfo', $pm_info);
-
- $sc = e107::getScBatch('pm',true, 'pm');
- $sc->setVars($pm_info);
- $sc->wrapper('pm');
-
-// $PM_SEND_PM = $this->updateTemplate($PM_SEND_PM);
-
- $text = "';
- return $text;
- }
-
-
- /**
- * Show inbox
- * @param int $start - offset into list
- *
- * @return string text for display
- */
-
- function show_inbox($start = 0)
- {
- $tp = e107::getParser();
-
// $tpl_file = THEME.'pm_template.php';
// include(is_readable($tpl_file) ? $tpl_file : e_PLUGIN.'pm/pm_template.php');
- if(THEME_LEGACY){
- include_once(THEME.'pm_template.php');
-
- // Is updateTemplate really necessary for v2.x templates?
- $PM_INBOX['start'] = $this->updateTemplate($PM_INBOX_HEADER);
- $PM_INBOX['item'] = $this->updateTemplate($PM_INBOX_TABLE);
- $PM_INBOX['empty'] = $this->updateTemplate($PM_INBOX_EMPTY);
- $PM_INBOX['end'] = $this->updateTemplate($PM_INBOX_FOOTER);
- }
- if (!$PM_INBOX){$PM_INBOX = e107::getTemplate('pm', 'pm', 'inbox');}
-
- $pm_blocks = $this->block_get();
- $pmlist = $this->pm_get_inbox(USERID, $start, $this->pmPrefs['perpage']);
-
- // setScVar('pm_handler_shortcodes', 'pmNextPrev', array('start' => $start, 'total' => $pmlist['total_messages']));
-
- $sc = e107::getScBatch('pm',true, 'pm');
- $sc->pmNextPrev = array('start' => $start, 'total' => $pmlist['total_messages']);
- $sc->wrapper('pm');
-
-// Is updateTemplate really necessary for v2.x templates?
-/*
- $PM_INBOX_HEADER = $this->updateTemplate($PM_INBOX['start']);
- $PM_INBOX_TABLE = $this->updateTemplate($PM_INBOX['item']);
- $PM_INBOX_EMPTY = $this->updateTemplate($PM_INBOX['empty']);
- $PM_INBOX_FOOTER = $this->updateTemplate($PM_INBOX['end']);
-*/
- $txt = "";
-
- return $txt;
- }
-
-
- /**
- * Show outbox
- * @param int $start - offset into list
- *
- * @return string text for display
- */
- function show_outbox($start = 0)
- {
- $tp = e107::getParser();
-
-// $tpl_file = THEME.'pm_template.php';
-// include(is_readable($tpl_file) ? $tpl_file : e_PLUGIN.'pm/pm_template.php');
- if(THEME_LEGACY){
- include_once(THEME.'pm_template.php');
-
- // Is updateTemplate really necessary for v2.x templates?
- $PM_OUTBOX['start'] = $this->updateTemplate($PM_OUTBOX_HEADER);
- $PM_OUTBOX['item'] = $this->updateTemplate($PM_OUTBOX_TABLE);
- $PM_OUTBOX['empty'] = $this->updateTemplate($PM_OUTBOX_EMPTY);
- $PM_OUTBOX['end'] = $this->updateTemplate($PM_OUTBOX_FOOTER);
- }
- if (!$PM_OUTBOX){$PM_OUTBOX = e107::getTemplate('pm', 'pm', 'outbox');}
-
- $pmlist = $this->pm_get_outbox(USERID, $start, $this->pmPrefs['perpage']);
- // setScVar('pm_handler_shortcodes', 'pmNextPrev', array('start' => $start, 'total' => $pmlist['total_messages']));
-
- $sc = e107::getScBatch('pm', true, 'pm');
- $sc->pmNextPrev = array('start' => $start, 'total' => $pmlist['total_messages']);
- $sc->wrapper('pm');
-
-// Is updateTemplate really necessary for v2.x templates?
-/*
- $PM_OUTBOX_HEADER = $this->updateTemplate($PM_OUTBOX['start']);
- $PM_OUTBOX_TABLE = $this->updateTemplate($PM_OUTBOX['item']);
- $PM_OUTBOX_EMPTY = $this->updateTemplate($PM_OUTBOX['empty']);
- $PM_OUTBOX_FOOTER = $this->updateTemplate($PM_OUTBOX['end']);
-*/
- $txt = "';
+
+ return $txt;
}
- else
+
+
+ /**
+ * Show details of a pm
+ * @param int $pmid - DB ID for PM
+ * @param string $comeFrom - inbox|outbox - determines whether inbox or outbox is shown after PM
+ *
+ * @return string text for display
+ */
+ function show_pm($pmid, $comeFrom = '')
{
- $txt .= $tp->parseTemplate($PM_OUTBOX['empty'], true, $sc);
- }
- $txt .= $tp->parseTemplate($PM_OUTBOX['end'], true, $sc);
- $txt .= '';
- return $txt;
- }
-
-
- /**
- * Show details of a pm
- * @param int $pmid - DB ID for PM
- * @param string $comeFrom - inbox|outbox - determines whether inbox or outbox is shown after PM
- *
- * @return string text for display
- */
- function show_pm($pmid, $comeFrom = '')
- {
- $ns = e107::getRender();
+ $ns = e107::getRender();
// $tpl_file = THEME.'pm_template.php';
// include_once(is_readable($tpl_file) ? $tpl_file : e_PLUGIN.'pm/pm_template.php');
- if(THEME_LEGACY){
- include_once(THEME.'pm_template.php');
- $PM_SHOW = $this->updateTemplate($PM_SHOW);
- }
- if (!$PM_SHOW){$PM_SHOW = e107::getTemplate('pm', 'pm', 'show');}
+ if(THEME_LEGACY === true)
+ {
+ $PM_SHOW = null;
+ include_once(THEME . 'pm_template.php');
+ $PM_SHOW = $this->updateTemplate($PM_SHOW);
+ }
- $pm_info = $this->pm_get($pmid);
+ if(empty($PM_SHOW))
+ {
+ $PM_SHOW = e107::getTemplate('pm', 'pm', 'show');
+ }
- $sc = e107::getScBatch('pm',true, 'pm');
- $sc->setVars($pm_info);
- $sc->wrapper('pm');
+ $pm_info = $this->pm_get($pmid);
- if($pm_info['pm_to'] != USERID && $pm_info['pm_from'] != USERID)
- {
- $ns->tablerender(LAN_PM, LAN_PM_60);
- return;
+ $sc = e107::getScBatch('pm', true, 'pm');
+ $sc->setVars($pm_info);
+ $sc->wrapper('pm');
- }
+ if($pm_info['pm_to'] != USERID && $pm_info['pm_from'] != USERID)
+ {
+ $ns->tablerender(LAN_PM, LAN_PM_60);
+ return null;
+ }
- if($pm_info['pm_read'] == 0 && $pm_info['pm_to'] == USERID)
- { // Inbox
- $now = time();
- $pm_info['pm_read'] = $now;
- $this->pm_mark_read($pmid, $pm_info);
- }
+ if($pm_info['pm_read'] == 0 && $pm_info['pm_to'] == USERID)
+ { // Inbox
+ $now = time();
+ $pm_info['pm_read'] = $now;
+ $this->pm_mark_read($pmid, $pm_info);
+ }
- $sc->pmMode = $comeFrom;
+ $sc->pmMode = $comeFrom;
// $PM_SHOW = $this->updateTemplate($PM_SHOW);
- $txt = e107::getParser()->parseTemplate($PM_SHOW, true, $sc);
+ $txt = e107::getParser()->parseTemplate($PM_SHOW, true, $sc);
- if($comeFrom == 'outbox')
- {
- $bread = array('text'=> LAN_PLUGIN_PM_OUTBOX, 'url'=>e107::url('pm','index').'?mode=outbox');
- }
- else
- {
- $bread = array('text'=> LAN_PLUGIN_PM_INBOX, 'url'=>e107::url('pm','index').'?mode=inbox');
- }
-
- $ns->tablerender(LAN_PM, $this->breadcrumb($bread ,'#'.$pmid).$txt);
-
- if (!$comeFrom)
- {
- if ($pm_info['pm_from'] == USERID) { $comeFrom = 'outbox'; }
- }
-
- // Need to show inbox or outbox from start
- if ($comeFrom == 'outbox')
- { // Show Outbox
-
- $caption = '';
- if(!deftrue('BOOTSTRAP')){ $caption .= LAN_PM." - ".LAN_PLUGIN_PM_OUTBOX; }
- $ns->tablerender($caption, $this->show_outbox(), 'PM');
- }
- else
- { // Show Inbox
- $caption = '';
- if(!deftrue('BOOTSTRAP')){ $caption .= LAN_PM." - ".LAN_PLUGIN_PM_INBOX; }
- $ns->tablerender($caption, $this->show_inbox(), 'PM');
- }
- }
-
-
- /**
- * Show list of blocked users
- * @param int $start - not used at present; offset into list
- *
- * @return string text for display
- */
- public function showBlocked($start = 0)
- {
- $tp = e107::getParser();
-// $tpl_file = THEME.'pm_template.php';
-// include(is_readable($tpl_file) ? $tpl_file : e_PLUGIN.'pm/pm_template.php');
- if(THEME_LEGACY){
- include_once(THEME.'pm_template.php');
-
- // Is updateTemplate really necessary for v2.x templates?
- $PM_BLOCKED['start'] = $this->updateTemplate($PM_BLOCKED_HEADER);
- $PM_BLOCKED['item'] = $this->updateTemplate($PM_BLOCKED_TABLE);
- $PM_BLOCKED['empty'] = $this->updateTemplate($PM_BLOCKED_EMPTY);
- $PM_BLOCKED['end'] = $this->updateTemplate($PM_BLOCKED_FOOTER);
- }
- if (!$PM_BLOCKED){$PM_BLOCKED = e107::getTemplate('pm', 'pm', 'blocked');}
-
- $pmBlocks = $this->block_get_user(); // TODO - handle pagination, maybe (is it likely to be necessary?)
-
- $sc = e107::getScBatch('pm',TRUE, 'pm');
- $sc->pmBlocks = $pmBlocks;
- $sc->wrapper('pm');
-
-// Is updateTemplate really necessary for v2.x templates?
-/*
- $PM_BLOCKED_HEADER = $this->updateTemplate($PM_BLOCKED['start']);
- $PM_BLOCKED_TABLE = $this->updateTemplate($PM_BLOCKED['item']);
- $PM_BLOCKED_EMPTY = $this->updateTemplate($PM_BLOCKED['empty']);
- $PM_BLOCKED_FOOTER = $this->updateTemplate($PM_BLOCKED['end']);
-*/
-
- $txt = "';
- return $txt;
- }
-
-
- /**
- * Send a PM based on $_POST parameters
- *
- * @return string text for display
- */
- function post_pm()
- {
- // print_a($_POST);
-
- if(!check_class($this->pmPrefs['pm_class']))
- {
- return LAN_PM_12;
- }
-
- $pm_info = $this->pmManager->pm_getInfo('outbox');
-
- if($pm_info['outbox']['total'] != $_POST['numsent'])
- {
- return LAN_PM_14;
- }
-
- if(isset($_POST['pm_userclass']) && ($_POST['pm_userclass'] == e_UC_NOBODY))
- {
- $_POST['pm_userclass'] = false;
- }
-
- if(isset($_POST['user']))
- {
- $_POST['pm_to'] = $_POST['user'];
- }
-
- if(isset($_POST['pm_to']))
- {
- $msg = '';
- if(!empty($_POST['pm_userclass']))
+ $tp = e107::getParser();
+// $tpl_file = THEME.'pm_template.php';
+// include(is_readable($tpl_file) ? $tpl_file : e_PLUGIN.'pm/pm_template.php');
+ if(THEME_LEGACY === true)
{
- if(!check_class($this->pmPrefs['opt_userclass']))
+ include_once(THEME . 'pm_template.php');
+
+ // Is updateTemplate really necessary for v2.x templates?
+ $PM_BLOCKED = array();
+ $PM_BLOCKED['start'] = $this->updateTemplate($PM_BLOCKED_HEADER);
+ $PM_BLOCKED['item'] = $this->updateTemplate($PM_BLOCKED_TABLE);
+ $PM_BLOCKED['empty'] = $this->updateTemplate($PM_BLOCKED_EMPTY);
+ $PM_BLOCKED['end'] = $this->updateTemplate($PM_BLOCKED_FOOTER);
+ }
+
+ if(empty($PM_BLOCKED))
+ {
+ $PM_BLOCKED = e107::getTemplate('pm', 'pm', 'blocked');
+ }
+
+ $pmBlocks = $this->block_get_user(); // TODO - handle pagination, maybe (is it likely to be necessary?)
+
+ $sc = e107::getScBatch('pm', true, 'pm');
+ $sc->pmBlocks = $pmBlocks;
+ $sc->wrapper('pm');
+
+// Is updateTemplate really necessary for v2.x templates?
+ /*
+ $PM_BLOCKED_HEADER = $this->updateTemplate($PM_BLOCKED['start']);
+ $PM_BLOCKED_TABLE = $this->updateTemplate($PM_BLOCKED['item']);
+ $PM_BLOCKED_EMPTY = $this->updateTemplate($PM_BLOCKED['empty']);
+ $PM_BLOCKED_FOOTER = $this->updateTemplate($PM_BLOCKED['end']);
+ */
+
+ $txt = "';
- if(count($to_array) == 1)
- {
- $_POST['pm_to'] = $to_array[0];
- }
+ return $txt;
+ }
- if(check_class($this->pmPrefs['multi_class']) && count($to_array) > 1)
+
+ /**
+ * Send a PM based on $_POST parameters
+ *
+ * @return string text for display
+ */
+ function post_pm()
+ {
+ // print_a($_POST);
+
+ if(!check_class($this->pmPrefs['pm_class']))
+ {
+ return LAN_PM_12;
+ }
+
+ $pm_info = $this->pmManager->pm_getInfo('outbox');
+
+ if($pm_info['outbox']['total'] != $_POST['numsent'])
+ {
+ return LAN_PM_14;
+ }
+
+ if(isset($_POST['pm_userclass']) && ($_POST['pm_userclass'] == e_UC_NOBODY))
+ {
+ $_POST['pm_userclass'] = false;
+ }
+
+ if(isset($_POST['user']))
+ {
+ $_POST['pm_to'] = $_POST['user'];
+ }
+
+ if(isset($_POST['pm_to']))
+ {
+ $msg = '';
+ if(!empty($_POST['pm_userclass']))
{
- foreach($to_array as $to)
+ if(!check_class($this->pmPrefs['opt_userclass']))
{
- if($to_info = $this->pm_getuid($to))
- { // Check whether sender is blocked - if so, add one to count
- if(!e107::getDb()->update('private_msg_block',"pm_block_count=pm_block_count+1 WHERE pm_block_from = '".USERID."' AND pm_block_to = '".e107::getParser()->toDB($to)."'"))
- {
- $_POST['to_array'][] = $to_info;
+ return LAN_PM_15;
+ }
+ elseif((!check_class($_POST['pm_userclass']) || !check_class($this->pmPrefs['multi_class'])) && !ADMIN)
+ {
+ return LAN_PM_16;
+ }
+ }
+ else
+ {
+ $to_array = explode(",", str_replace(" ", "", $_POST['pm_to']));
+ $to_array = array_unique($to_array);
+
+ if(count($to_array) == 1)
+ {
+ $_POST['pm_to'] = $to_array[0];
+ }
+
+ if(check_class($this->pmPrefs['multi_class']) && count($to_array) > 1)
+ {
+ foreach($to_array as $to)
+ {
+ if($to_info = $this->pm_getuid($to))
+ { // Check whether sender is blocked - if so, add one to count
+ if(!e107::getDb()->update('private_msg_block', "pm_block_count=pm_block_count+1 WHERE pm_block_from = '" . USERID . "' AND pm_block_to = '" . e107::getParser()->toDB($to) . "'"))
+ {
+ $_POST['to_array'][] = $to_info;
+ }
}
}
}
- }
- else
- {
- if($to_info = $this->pm_getuid($_POST['pm_to']))
+ else
{
- $_POST['to_info'] = $to_info;
+ if($to_info = $this->pm_getuid($_POST['pm_to']))
+ {
+ $_POST['to_info'] = $to_info;
+ }
+ else
+ {
+ return LAN_PM_17;
+ }
+
+ if(e107::getDb()->update('private_msg_block', "pm_block_count=pm_block_count+1 WHERE pm_block_from = '" . USERID . "' AND pm_block_to = '{$to_info['user_id']}'"))
+ {
+ return LAN_PM_18 . $to_info['user_name'];
+ }
+ }
+ }
+
+ if(isset($_POST['receipt']))
+ {
+ if(!check_class($this->pmPrefs['receipt_class']))
+ {
+ unset($_POST['receipt']);
+ }
+ }
+
+ $totalsize = strlen($_POST['pm_message']);
+
+ $maxsize = intval($this->pmPrefs['attach_size']) * 1024;
+
+ foreach(array_keys($_FILES['file_userfile']['size']) as $fid)
+ {
+ if($maxsize > 0 && $_FILES['file_userfile']['size'][$fid] > $maxsize)
+ {
+ $msg .= str_replace("{FILENAME}", $_FILES['file_userfile']['name'][$fid], LAN_PM_62) . "
";
+ $_FILES['file_userfile']['size'][$fid] = 0;
+ }
+ $totalsize += $_FILES['file_userfile']['size'][$fid];
+ }
+
+ if(intval($this->pmPrefs['pm_limits']) > 0)
+ {
+ if($this->pmPrefs['pm_limits'] == '1')
+ {
+ if($pm_info['outbox']['total'] == $pm_info['outbox']['limit'])
+ {
+ return LAN_PM_19;
+ }
}
else
{
- return LAN_PM_17;
- }
-
- if(e107::getDb()->update('private_msg_block',"pm_block_count=pm_block_count+1 WHERE pm_block_from = '".USERID."' AND pm_block_to = '{$to_info['user_id']}'"))
- {
- return LAN_PM_18.$to_info['user_name'];
- }
- }
- }
-
- if(isset($_POST['receipt']))
- {
- if(!check_class($this->pmPrefs['receipt_class']))
- {
- unset($_POST['receipt']);
- }
- }
-
- $totalsize = strlen($_POST['pm_message']);
-
- $maxsize = intval($this->pmPrefs['attach_size']) * 1024;
-
- foreach(array_keys($_FILES['file_userfile']['size']) as $fid)
- {
- if($maxsize > 0 && $_FILES['file_userfile']['size'][$fid] > $maxsize)
- {
- $msg .= str_replace("{FILENAME}", $_FILES['file_userfile']['name'][$fid], LAN_PM_62)."
";
- $_FILES['file_userfile']['size'][$fid] = 0;
- }
- $totalsize += $_FILES['file_userfile']['size'][$fid];
- }
-
- if(intval($this->pmPrefs['pm_limits']) > 0)
- {
- if($this->pmPrefs['pm_limits'] == '1')
- {
- if($pm_info['outbox']['total'] == $pm_info['outbox']['limit'])
- {
- return LAN_PM_19;
- }
- }
- else
- {
- if($pm_info['outbox']['size'] + $totalsize > $pm_info['outbox']['limit'])
- {
- return LAN_PM_21;
- }
- }
- }
-
-
- if(!empty($_POST['uploaded']))
- {
- if(check_class($this->pmPrefs['attach_class']))
- {
- $_POST['uploaded'] = $this->processAttachments();
-
- foreach($_POST['uploaded'] as $var)
- {
- if(!empty($var['message']))
+ if($pm_info['outbox']['size'] + $totalsize > $pm_info['outbox']['limit'])
{
- $msg .= $var['message']."
";
+ return LAN_PM_21;
}
+ }
+ }
+
+
+ if(!empty($_POST['uploaded']))
+ {
+ if(check_class($this->pmPrefs['attach_class']))
+ {
+ $_POST['uploaded'] = $this->processAttachments();
+
+ foreach($_POST['uploaded'] as $var)
+ {
+ if(!empty($var['message']))
+ {
+ $msg .= $var['message'] . "
";
+ }
+
+ }
+ }
+ else
+ {
+ $msg .= LAN_PM_23 . '
';
+ unset($_POST['uploaded']);
}
}
- else
- {
- $msg .= LAN_PM_23.'
';
- unset($_POST['uploaded']);
- }
+ $_POST['from_id'] = USERID;
+
+ return $msg . $this->add($_POST);
}
-
- $_POST['from_id'] = USERID;
-
- return $msg.$this->add($_POST);
- }
- }
-
-
- function processAttachments()
- {
- $randnum = rand(1000, 9999);
- $type = 'attachment+'.$randnum.'_';
- return e107::getFile()->getUploaded("attachments",$type, array('max_file_count'=>3));
- }
-
-
-
-
- function breadcrumb($type='',$other)
- {
- if(!deftrue('BOOTSTRAP'))
- {
- return null;
}
- $array = array();
- $array[0] = array('text'=>LAN_PM, 'url'=>e107::url('pm','index'));
- if(is_string($type))
+ function processAttachments()
{
- $array[1] = array('text'=>$type, 'url'=>null);
- }
- elseif(is_array($type))
- {
- $array[1] = $type;
+ $randnum = rand(1000, 9999);
+ $type = 'attachment+' . $randnum . '_';
+
+ return e107::getFile()->getUploaded("attachments", $type, array('max_file_count' => 3));
}
- if($other)
+
+ function breadcrumb($type = '', $other)
{
- $array[2] = array('text'=>$other, 'url'=>null);
- }
-
- return e107::getForm()->breadcrumb($array);
-
- }
-
-}
-
-
-
-
-
-/**
- * Look up users matching a keyword, output a list of those found
- * Direct echo
- */
-function pm_user_lookup()
-{
- $sql = e107::getDb();
-
- $tp = e107::getParser();
-
- $query = "SELECT * FROM #user WHERE user_name REGEXP '^".$tp->filter($_POST['keyword'],'w')."' ";
- if($sql->gen($query))
- {
- echo '[';
- while($row = $sql->fetch())
- {
- $u[] = "{\"caption\":\"".$row['user_name']."\",\"value\":".$row['user_id']."}";
- }
-
- echo implode(",",$u);
- echo ']';
- }
- exit;
-}
-
-
-
-
-//$pm =& new private_message;
-$pm = new pm_extended($pm_prefs, $pmManager);
-
-$message = '';
-$pmSource = '';
-if (isset($_POST['pm_come_from']))
-{
- $pmSource = $tp->toDB($_POST['pm_come_from']);
-}
-elseif (isset($qs[2]))
-{
- $pmSource = $tp->toDB($qs[2]);
-}
-
-
-
-//Auto-delete message, if timeout set in admin
-$del_qry = array();
-$read_timeout = intval($pm_prefs['read_timeout']);
-$unread_timeout = intval($pm_prefs['unread_timeout']);
-if($read_timeout > 0)
-{
- $timeout = time()-($read_timeout * 86400);
- $del_qry[] = "(pm_sent < {$timeout} AND pm_read > 0)";
-}
-if($unread_timeout > 0)
-{
- $timeout = time()-($unread_timeout * 86400);
- $del_qry[] = "(pm_sent < {$timeout} AND pm_read = 0)";
-}
-if(count($del_qry) > 0)
-{
- $qry = implode(' OR ', $del_qry).' AND (pm_from = '.USERID.' OR pm_to = '.USERID.')';
- if($sql->select('private_msg', 'pm_id', $qry))
- {
- $delList = $sql->db_getList();
- foreach($delList as $p)
- {
- $pm->del($p['pm_id'], TRUE);
- }
- }
-}
-
-
-if('del' == $action || isset($_POST['pm_delete_selected']))
-{
- if(isset($_POST['pm_delete_selected']))
- {
- foreach(array_keys($_POST['selected_pm']) as $id)
- {
- $message .= LAN_PM_24.": {$id}
";
- $message .= $pm->del($id);
- }
- }
- if('del' == $action)
- {
- $message = $pm->del($pm_proc_id);
- }
- if ($pmSource)
- {
- $action = $pmSource;
- }
- else
- {
- if(substr($_SERVER['HTTP_REFERER'], -5) == 'inbox')
- {
- $action = 'inbox';
- }
- elseif(substr($_SERVER['HTTP_REFERER'], -6) == 'outbox')
- {
- $action = 'outbox';
- }
- }
- $pm_proc_id = 0;
- unset($qs);
-}
-
-
-if('delblocked' == $action || isset($_POST['pm_delete_blocked_selected']))
-{
- if(isset($_POST['pm_delete_blocked_selected']))
- {
- foreach(array_keys($_POST['selected_pm']) as $id)
- {
- $message .= LAN_PM_70.": {$id}
";
- $message .= $pm->block_del($id).'
';
- }
- }
- elseif('delblocked' == $action)
- {
- $message = $pm->block_del($pm_proc_id);
- }
- $action = 'blocked';
- $pm_proc_id = 0;
- unset($qs);
-}
-
-
-if('block' == $action)
-{
- $message = $pm->block_add($pm_proc_id);
- $action = 'inbox';
- $pm_proc_id = 0;
-}
-
-
-if('unblock' == $action)
-{
- $message = $pm->block_del($pm_proc_id);
- $action = 'inbox';
- $pm_proc_id = 0;
-}
-
-
-if('get' == $action)
-{
- $pm->send_file($pm_proc_id, intval($qs[2]));
- exit;
-}
-
-
-require_once(HEADERF);
-
-if(isset($_POST['postpm']))
-{
- $message = $pm->post_pm();
- $action = 'outbox';
-}
-
-$mes = e107::getMessage();
-
-if($message != '')
-{
- $mes->add($message);
-// $ns->tablerender('', "". $message."
");
-}
-
-
-//-----------------------------------------
-// DISPLAY TASKS
-//-----------------------------------------
-switch ($action)
-{
- case 'send' :
- $ns->tablerender(LAN_PM, $pm->breadcrumb(LAN_PLUGIN_PM_NEW). $mes->render() . $pm->show_send($pm_proc_id));
- break;
-
- case 'reply' :
- $pmid = $pm_proc_id;
- if($pm_info = $pm->pm_get($pmid))
- {
- if($pm_info['pm_to'] != USERID)
+ if(!deftrue('BOOTSTRAP'))
{
- $ns->tablerender(LAN_PM, $pm->breadcrumb(LAN_PM_55).$mes->render() . LAN_PM_56);
+ return null;
}
- else
+
+ $array = array();
+ $array[0] = array('text' => LAN_PM, 'url' => e107::url('pm', 'index'));
+
+ if(is_string($type))
{
- $ns->tablerender(LAN_PM, $pm->breadcrumb(LAN_PM_55). $mes->render() . $pm->show_send($pm_info));
+ $array[1] = array('text' => $type, 'url' => null);
}
+ elseif(is_array($type))
+ {
+ $array[1] = $type;
+ }
+
+ if($other)
+ {
+ $array[2] = array('text' => $other, 'url' => null);
+ }
+
+ return e107::getForm()->breadcrumb($array);
+
+ }
+
+ }
+
+
+ /**
+ * Look up users matching a keyword, output a list of those found
+ * Direct echo
+ */
+ function pm_user_lookup()
+ {
+ $sql = e107::getDb();
+
+ $tp = e107::getParser();
+
+ $query = "SELECT * FROM #user WHERE user_name REGEXP '^" . $tp->filter($_POST['keyword'], 'w') . "' ";
+ if($sql->gen($query))
+ {
+ echo '[';
+ while($row = $sql->fetch())
+ {
+ $u[] = "{\"caption\":\"" . $row['user_name'] . "\",\"value\":" . $row['user_id'] . "}";
+ }
+
+ echo implode(",", $u);
+ echo ']';
+ }
+ exit;
+ }
+
+
+ //$pm =& new private_message;
+ $pm = new pm_extended($pm_prefs, $pmManager);
+
+ $message = '';
+ $pmSource = '';
+ if(isset($_POST['pm_come_from']))
+ {
+ $pmSource = $tp->toDB($_POST['pm_come_from']);
+ }
+ elseif(isset($qs[2]))
+ {
+ $pmSource = $tp->toDB($qs[2]);
+ }
+
+
+ //Auto-delete message, if timeout set in admin
+ $del_qry = array();
+ $read_timeout = intval($pm_prefs['read_timeout']);
+ $unread_timeout = intval($pm_prefs['unread_timeout']);
+ if($read_timeout > 0)
+ {
+ $timeout = time() - ($read_timeout * 86400);
+ $del_qry[] = "(pm_sent < {$timeout} AND pm_read > 0)";
+ }
+ if($unread_timeout > 0)
+ {
+ $timeout = time() - ($unread_timeout * 86400);
+ $del_qry[] = "(pm_sent < {$timeout} AND pm_read = 0)";
+ }
+ if(count($del_qry) > 0)
+ {
+ $qry = implode(' OR ', $del_qry) . ' AND (pm_from = ' . USERID . ' OR pm_to = ' . USERID . ')';
+ if($sql->select('private_msg', 'pm_id', $qry))
+ {
+ $delList = $sql->db_getList();
+ foreach($delList as $p)
+ {
+ $pm->del($p['pm_id'], true);
+ }
+ }
+ }
+
+
+ if('del' == $action || isset($_POST['pm_delete_selected']))
+ {
+ if(isset($_POST['pm_delete_selected']))
+ {
+ foreach(array_keys($_POST['selected_pm']) as $id)
+ {
+ $message .= LAN_PM_24 . ": {$id}
";
+ $message .= $pm->del($id);
+ }
+ }
+ if('del' == $action)
+ {
+ $message = $pm->del($pm_proc_id);
+ }
+ if($pmSource)
+ {
+ $action = $pmSource;
}
else
{
- $ns->tablerender(LAN_PM, $pm->breadcrumb(LAN_PM_55). $mes->render() . LAN_PM_57);
+ if(substr($_SERVER['HTTP_REFERER'], -5) == 'inbox')
+ {
+ $action = 'inbox';
+ }
+ elseif(substr($_SERVER['HTTP_REFERER'], -6) == 'outbox')
+ {
+ $action = 'outbox';
+ }
}
- break;
-
- case 'inbox' :
- $caption = LAN_PM;
- if(!deftrue('BOOTSTRAP')){ $caption .= ' - '.LAN_PLUGIN_PM_INBOX; }
-
- $ns->tablerender($caption, $pm->breadcrumb(LAN_PLUGIN_PM_INBOX). $mes->render() . $pm->show_inbox($pm_proc_id), 'PM');
- break;
-
- case 'outbox' :
- $caption = LAN_PM;
- if(!deftrue('BOOTSTRAP')){ $caption .= ' - '.LAN_PLUGIN_PM_OUTBOX; }
- $ns->tablerender($caption, $pm->breadcrumb(LAN_PLUGIN_PM_OUTBOX).$mes->render() . $pm->show_outbox($pm_proc_id), 'PM');
- break;
-
- case 'show' :
-
- $pm->show_pm($pm_proc_id, $pmSource);
- break;
-
- case 'blocked' :
- $caption = LAN_PM;
- if(!deftrue('BOOTSTRAP')){ $caption .= ' - '.LAN_PM_66; }
- $ns->tablerender($caption, $pm->breadcrumb('blocked').$mes->render() . $pm->showBlocked($pm_proc_id), 'PM');
- break;
-}
+ $pm_proc_id = 0;
+ unset($qs);
+ }
-require_once(FOOTERF);
-exit;
+ if('delblocked' == $action || isset($_POST['pm_delete_blocked_selected']))
+ {
+ if(isset($_POST['pm_delete_blocked_selected']))
+ {
+ foreach(array_keys($_POST['selected_pm']) as $id)
+ {
+ $message .= LAN_PM_70 . ": {$id}
";
+ $message .= $pm->block_del($id) . '
';
+ }
+ }
+ elseif('delblocked' == $action)
+ {
+ $message = $pm->block_del($pm_proc_id);
+ }
+ $action = 'blocked';
+ $pm_proc_id = 0;
+ unset($qs);
+ }
+
+
+ if('block' == $action)
+ {
+ $message = $pm->block_add($pm_proc_id);
+ $action = 'inbox';
+ $pm_proc_id = 0;
+ }
+
+
+ if('unblock' == $action)
+ {
+ $message = $pm->block_del($pm_proc_id);
+ $action = 'inbox';
+ $pm_proc_id = 0;
+ }
+
+
+ if('get' == $action)
+ {
+ $pm->send_file($pm_proc_id, intval($qs[2]));
+ exit;
+ }
+
+
+ require_once(HEADERF);
+
+ if(isset($_POST['postpm']))
+ {
+ $message = $pm->post_pm();
+ $action = 'outbox';
+ }
+
+ $mes = e107::getMessage();
+
+ if($message != '')
+ {
+ $mes->add($message);
+// $ns->tablerender('', "". $message."
");
+ }
+
+
+ //-----------------------------------------
+ // DISPLAY TASKS
+ //-----------------------------------------
+ switch($action)
+ {
+ case 'send' :
+ $ns->tablerender(LAN_PM, $pm->breadcrumb(LAN_PLUGIN_PM_NEW) . $mes->render() . $pm->show_send($pm_proc_id));
+ break;
+
+ case 'reply' :
+ $pmid = $pm_proc_id;
+
+ if($pm_info = $pm->pm_get($pmid))
+ {
+ if($pm_info['pm_to'] != USERID)
+ {
+ $ns->tablerender(LAN_PM, $pm->breadcrumb(LAN_PM_55) . $mes->render() . LAN_PM_56);
+ }
+ else
+ {
+ $ns->tablerender(LAN_PM, $pm->breadcrumb(LAN_PM_55) . $mes->render() . $pm->show_send($pm_info));
+ }
+ }
+ else
+ {
+ $ns->tablerender(LAN_PM, $pm->breadcrumb(LAN_PM_55) . $mes->render() . LAN_PM_57);
+ }
+ break;
+
+ case 'inbox' :
+ $caption = LAN_PM;
+
+ if(THEME_LEGACY === true)
+ {
+ $caption .= ' - ' . LAN_PLUGIN_PM_INBOX;
+ }
+
+ $ns->tablerender($caption, $pm->breadcrumb(LAN_PLUGIN_PM_INBOX) . $mes->render() . $pm->show_inbox($pm_proc_id), 'PM');
+ break;
+
+ case 'outbox' :
+ $caption = LAN_PM;
+
+ if(THEME_LEGACY === true)
+ {
+ $caption .= ' - ' . LAN_PLUGIN_PM_OUTBOX;
+ }
+
+ $ns->tablerender($caption, $pm->breadcrumb(LAN_PLUGIN_PM_OUTBOX) . $mes->render() . $pm->show_outbox($pm_proc_id), 'PM');
+ break;
+
+ case 'show' :
+
+ $pm->show_pm($pm_proc_id, $pmSource);
+ break;
+
+ case 'blocked' :
+ $caption = LAN_PM;
+
+ if(THEME_LEGACY === true)
+ {
+ $caption .= ' - ' . LAN_PM_66;
+ }
+
+ $ns->tablerender($caption, $pm->breadcrumb('blocked') . $mes->render() . $pm->showBlocked($pm_proc_id), 'PM');
+ break;
+ }
+
+
+ require_once(FOOTERF);
+ exit;
?>