예제 #1
0
 /**
  * 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();
 }
예제 #2
0
 /**
  * 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", '&nbsp;&nbsp;&nbsp;&nbsp;', $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();
 }