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