/** * View a message * * @param object $database JDatabase * @param string $option Name of the component * @param object $member Current member * @param integer $mid MEssage ID * @return void */ public function message($database, $option, $member, $mid) { $xmessage = new \Hubzero\Message\Message($database); $xmessage->load($mid); $xmessage->message = stripslashes($xmessage->message); $xmr = new \Hubzero\Message\Recipient($database); $xmr->loadRecord($mid, $member->get('uidNumber')); $xmessage->message = str_replace("\n", "\n ", $xmessage->message); $UrlPtrn = "[^=\"\\'](https?:|mailto:|ftp:|gopher:|news:|file:)" . "([^ |\\/\"\\']*\\/)*([^ |\\t\\n\\/\"\\']*[A-Za-z0-9\\/?=&~_])"; $xmessage->message = preg_replace_callback("/{$UrlPtrn}/", array($this, 'autolink'), $xmessage->message); $xmessage->message = nl2br($xmessage->message); $xmessage->message = str_replace("\t", ' ', $xmessage->message); if (substr($xmessage->component, 0, 4) == 'com_') { $xmessage->component = substr($xmessage->component, 4); } $xseen = new \Hubzero\Message\Seen($database); $xseen->mid = $mid; $xseen->uid = $member->get('uidNumber'); $xseen->loadRecord(); if (User::get('id') == $member->get('uidNumber')) { if (!$xseen->whenseen || $xseen->whenseen == $database->getNullDate()) { $xseen->mid = $mid; $xseen->uid = $member->get('uidNumber'); $xseen->whenseen = Date::toSql(); $xseen->store(true); } } if (substr($xmessage->type, -8) == '_message') { $u = User::getInstance($xmessage->created_by); $from = '<a href="' . Route::url('index.php?option=' . $option . '&id=' . $u->get('id')) . '">' . $u->get('name') . '</a>' . "\n"; } else { $from = Lang::txt('PLG_MEMBERS_MESSAGES_SYSTEM', $xmessage->component); } $view = $this->view('message', 'default'); $view->option = $option; $view->member = $member; $view->xmr = $xmr; $view->xmessage = $xmessage; $view->from = $from; foreach ($this->getErrors() as $error) { $view->setError($error); } return $view->loadTemplate(); }
/** * Show a message * * @return string */ protected function _view() { //get the message id $message = Request::getVar('msg', '', 'get'); //if there is no message id show all sent messages if (!$message) { return $this->_sent(); } //insantiate db $database = App::get('db'); // Load the message and parse it $xmessage = new \Hubzero\Message\Message($database); $xmessage->load($message); $xmessage->message = stripslashes($xmessage->message); $xmessage->message = str_replace("\n", "\n ", $xmessage->message); $xmessage->message = preg_replace_callback("/[^=\"\\'](https?:|mailto:|ftp:|gopher:|news:|file:)" . "([^ |\\/\"\\']*\\/)*([^ |\\t\\n\\/\"\\']*[A-Za-z0-9\\/?=&~_])/", array('plgGroupsMessages', 'autolink'), $xmessage->message); $xmessage->message = nl2br($xmessage->message); $xmessage->message = str_replace("\t", ' ', $xmessage->message); if (substr($xmessage->component, 0, 4) == 'com_') { $xmessage->component = substr($xmessage->component, 4); } // Instantiate the view $view = $this->view('default', 'message'); // Pass the view some info $view->option = $this->_option; $view->group = $this->group; $view->authorized = $this->authorized; $view->xmessage = $xmessage; $view->no_html = Request::getInt('no_html', 0); foreach ($this->getErrors() as $error) { $view->setError($error); } // Return the output return $view->loadTemplate(); }