Exemplo n.º 1
0
 /**
  * Creates or updates the message and returns it.
  *
  * @param WiseChatMessage $message
  *
  * @return WiseChatMessage
  * @throws Exception On validation error
  */
 public function save($message)
 {
     global $wpdb;
     // low-level validation:
     if ($message->getTime() === null) {
         throw new Exception('Time cannot be null');
     }
     if ($message->getUserId() === null) {
         throw new Exception('User ID cannot be null');
     }
     if ($message->getUserName() === null) {
         throw new Exception('Username cannot be null');
     }
     if ($message->getText() === null) {
         throw new Exception('Text cannot be null');
     }
     if ($message->getChannelName() === null) {
         throw new Exception('Channel name cannot be null');
     }
     // prepare user data:
     $columns = array('time' => $message->getTime(), 'admin' => $message->isAdmin() ? 1 : 0, 'user' => $message->getUserName(), 'chat_user_id' => $message->getUserId(), 'text' => $message->getText(), 'channel' => $message->getChannelName(), 'ip' => $message->getIp());
     // update or insert:
     if ($message->getId() !== null) {
         $columns['user_id'] = $message->getWordPressUserId();
         $wpdb->update($this->table, $columns, array('id' => $message->getId()), '%s', '%d');
     } else {
         if ($message->getWordPressUserId() > 0) {
             $columns['user_id'] = $message->getWordPressUserId();
         }
         $wpdb->insert($this->table, $columns);
         $message->setId($wpdb->insert_id);
     }
     return $message;
 }
Exemplo n.º 2
0
 /**
  * Returns rendered user name for given message.
  *
  * @param WiseChatMessage $message
  *
  * @return string HTML source
  */
 public function getRenderedUserName($message)
 {
     $formattedUserName = $message->getUserName();
     $displayMode = $this->options->getIntegerOption('link_wp_user_name', 0);
     $styles = '';
     if ($displayMode > 0) {
         $messageUser = $message->getUser();
         if ($this->options->isOptionEnabled('allow_change_text_color') && $messageUser !== null && strlen($messageUser->getDataProperty('textColor')) > 0) {
             $styles = sprintf('style="color: %s"', $messageUser->getDataProperty('textColor'));
         }
     }
     if ($displayMode === 1) {
         $linkUserNameTemplate = $this->options->getOption('link_user_name_template', null);
         $wpUser = $message->getWordPressUserId() != null ? $this->usersDAO->getWpUserByID($message->getWordPressUserId()) : null;
         $userNameLink = null;
         if ($linkUserNameTemplate != null) {
             $variables = array('id' => $wpUser !== null ? $wpUser->ID : '', 'username' => $wpUser !== null ? $wpUser->user_login : $message->getUserName(), 'displayname' => $wpUser !== null ? $wpUser->display_name : $message->getUserName());
             $userNameLink = $this->getTemplatedString($variables, $linkUserNameTemplate);
         } else {
             if ($wpUser !== null) {
                 $userNameLink = get_author_posts_url($wpUser->ID, $wpUser->display_name);
             }
         }
         if ($userNameLink != null) {
             $formattedUserName = sprintf("<a href='%s' target='_blank' rel='nofollow' %s>%s</a>", $userNameLink, $styles, $formattedUserName);
         }
     } else {
         if ($displayMode === 2) {
             $replyTag = '@' . $formattedUserName . ':';
             $title = htmlspecialchars($this->options->getOption('message_insert_into_message', 'Insert into message') . ': ' . $replyTag, ENT_COMPAT);
             $formattedUserName = sprintf("<a href='javascript://' class='wcMessageUserReplyTo' %s title='%s'>%s</a>", $styles, $title, $formattedUserName);
         }
     }
     return $formattedUserName;
 }