Example #1
0
 public function sendNotificationToWatchUsersOnReply(array $reply, array $thread = null, array $noAlerts = array())
 {
     if (isset($reply['message'])) {
         /*
         	HIDE IN THREAD/POST EMAIL ALERT
         	The argument false of the parsingProtection function must be used here.
         */
         $reply['message'] = BBM_Protection_Helper_ContentProtection::parsingProtection($reply['message'], false);
     }
     return parent::sendNotificationToWatchUsersOnReply($reply, $thread, $noAlerts);
 }
Example #2
0
 public function getSearchResultsForDisplay(array $results, array $viewingUser = null)
 {
     $parent = parent::getSearchResultsForDisplay($results, $viewingUser = null);
     if (isset($parent['results']) && is_array($parent['results'])) {
         foreach ($parent['results'] as &$result) {
             //Hide in search results - the word will still be found, but it won't be displayed in the preview
             if (isset($result['content']['message'])) {
                 $result['content']['message'] = BBM_Protection_Helper_ContentProtection::parsingProtection($result['content']['message']);
             }
         }
     }
     return $parent;
 }
Example #3
0
 public function fillOutNewsFeedItems(array $newsFeed, array $viewingUser)
 {
     $parent = parent::fillOutNewsFeedItems($newsFeed, $viewingUser);
     if (!is_array($parent)) {
         return $parent;
     }
     foreach ($parent as &$item) {
         if (isset($item['content']['message'])) {
             $item['content']['message'] = BBM_Protection_Helper_ContentProtection::parsingProtection($item['content']['message']);
         }
     }
     return $parent;
 }
Example #4
0
 public static function controllerPreView(XenForo_FrontController $fc, XenForo_ControllerResponse_Abstract &$controllerResponse, XenForo_ViewRenderer_Abstract &$viewRenderer, array &$containerParams)
 {
     /* Listener - Execution order: #2 */
     self::$_isControllerAdmin = strstr($controllerResponse->controllerName, 'ControllerAdmin') ? true : false;
     self::$_controllerName = isset($controllerResponse->controllerName) ? $controllerResponse->controllerName : NULL;
     self::$_controllerAction = isset($controllerResponse->controllerAction) ? $controllerResponse->controllerAction : NULL;
     self::$_viewName = isset($controllerResponse->viewName) ? $controllerResponse->viewName : NULL;
     self::$_isJson = $viewRenderer instanceof XenForo_ViewRenderer_Json ? true : false;
     if (XenForo_Application::get('options')->get('Bbm_ContentProtection') && self::$_isControllerAdmin === false) {
         if (self::$_isJson == true) {
             /***
              *  Protect Json Response here. It will not work with the controllerPostView listener (will generate an error)
              **/
             if (isset($controllerResponse->params['post']['message'])) {
                 /***
                  *	Use for: 	- Edit inline
                  *			- Thread fast preview (small popup when mouse over title)
                  *			- Thread/post/conversation edit preview
                  **/
                 $controllerResponse->params['post']['message'] = self::parsingProtection($controllerResponse->params['post']['message']);
             }
             if (isset($controllerResponse->params['quote'])) {
                 /***
                  *	Use for: 	- Quotes
                  **/
                 $controllerResponse->params['quote'] = self::parsingProtection($controllerResponse->params['quote'], true, 'quotes');
             }
         }
     }
     if (self::$_debug == 'pre' && self::$_isControllerAdmin === false) {
         $visitor = XenForo_Visitor::getInstance();
         if ($visitor['is_admin']) {
             Zend_Debug::dump($controllerResponse);
         }
     }
     /*Extra function to hide tags in Thread fast preview*/
     if (self::$_isJson == true && self::$_viewName == 'XenForo_ViewPublic_Thread_Preview' && XenForo_Application::get('options')->get('Bbm_HideTagsInFastPreview')) {
         if (isset($controllerResponse->params['post']['message'])) {
             if (XenForo_Application::get('options')->get('Bbm_HideTagsInFastPreviewInvisible')) {
                 $formatter = XenForo_BbCode_Formatter_Base::create('BBM_Protection_BbCode_Formatter_BbCode_Eradicator', false);
                 $formatter->setAllTagsAsProtected();
                 $formatter->invisibleMode();
             } else {
                 $formatter = XenForo_BbCode_Formatter_Base::create('BBM_Protection_BbCode_Formatter_BbCode_Lupin', false);
             }
             $parser = new XenForo_BbCode_Parser($formatter);
             $extraStates = array('bbmContentProtection' => true);
             $controllerResponse->params['post']['message'] = $parser->render($controllerResponse->params['post']['message'], $extraStates);
         }
     }
 }