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 message content.
  *
  * @param WiseChatMessage $message
  *
  * @return string HTML source
  */
 private function getRenderedMessageContent($message)
 {
     $formattedMessage = htmlspecialchars($message->getText(), ENT_QUOTES, 'UTF-8');
     /** @var WiseChatLinksPostFilter $linksFilter */
     $linksFilter = WiseChatContainer::get('rendering/filters/post/WiseChatLinksPostFilter');
     $formattedMessage = $linksFilter->filter($formattedMessage, $this->options->isOptionEnabled('allow_post_links'));
     /** @var WiseChatAttachmentsPostFilter $attachmentsFilter */
     $attachmentsFilter = WiseChatContainer::get('rendering/filters/post/WiseChatAttachmentsPostFilter');
     $formattedMessage = $attachmentsFilter->filter($formattedMessage, $this->options->isOptionEnabled('enable_attachments_uploader'), $this->options->isOptionEnabled('allow_post_links'));
     /** @var WiseChatImagesPostFilter $imagesFilter */
     $imagesFilter = WiseChatContainer::get('rendering/filters/post/WiseChatImagesPostFilter');
     $formattedMessage = $imagesFilter->filter($formattedMessage, $this->options->isOptionEnabled('allow_post_images'), $this->options->isOptionEnabled('allow_post_links'));
     /** @var WiseChatYouTubePostFilter $youTubeFilter */
     $youTubeFilter = WiseChatContainer::get('rendering/filters/post/WiseChatYouTubePostFilter');
     $formattedMessage = $youTubeFilter->filter($formattedMessage, $this->options->isOptionEnabled('enable_youtube'), $this->options->isOptionEnabled('allow_post_links'), $this->options->getIntegerOption('youtube_width', 186), $this->options->getIntegerOption('youtube_height', 105));
     if ($this->options->isOptionEnabled('enable_twitter_hashtags')) {
         /** @var WiseChatHashtagsPostFilter $hashTagsFilter */
         $hashTagsFilter = WiseChatContainer::get('rendering/filters/post/WiseChatHashtagsPostFilter');
         $formattedMessage = $hashTagsFilter->filter($formattedMessage);
     }
     if ($this->options->isOptionEnabled('emoticons_enabled', true)) {
         /** @var WiseChatEmoticonsFilter $emoticonsFilter */
         $emoticonsFilter = WiseChatContainer::get('rendering/filters/post/WiseChatEmoticonsFilter');
         $formattedMessage = $emoticonsFilter->filter($formattedMessage);
     }
     if ($this->options->isOptionEnabled('multiline_support')) {
         $formattedMessage = str_replace("\n", '<br />', $formattedMessage);
     }
     return $formattedMessage;
 }