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); }
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; }
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; }
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); } } }