Example #1
0
 public function renderJson()
 {
     $options = XenForo_Application::get('options');
     $maxid = Dark_TaigaChat_Helper_Global::processMessagesForView($this->_params, $this);
     $template = $this->createTemplateObject($this->_templateName, $this->_params);
     $template->setParams($this->_params);
     if (!empty($this->_params['taigachat']['publichtml'])) {
         $template->setLanguageId(XenForo_Phrase::getLanguageId());
         $template->setStyleId($options->defaultStyleId);
     }
     $rendered = $template->render();
     $rendered = preg_replace('/\\s+<\\/(.*?)>\\s+</si', ' </$1> <', $rendered);
     $rendered = preg_replace('/\\s+<(.*?)([ >])/si', ' <$1$2', $rendered);
     $params = array("templateHtml" => $rendered, "reverse" => $options->dark_taigachat_direction, "lastrefresh" => $maxid, "motd" => $this->_params['taigachat']['motd'], "numInChat" => $this->_params['taigachat']['numInChat']);
     if (!empty($this->_params['taigachat']['publichtml'])) {
         $params += array("_visitor_conversationsUnread" => "IGNORE", "_visitor_alertsUnread" => "IGNORE");
     }
     //$rendered = str_replace(array("\r", "\n", "\t"), "", $rendered);
     $derp = XenForo_ViewRenderer_Json::jsonEncodeForOutput($params, empty($this->_params['taigachat']['publichtml']));
     if (empty($this->_params['taigachat']['publichtml'])) {
         $extraHeaders = XenForo_Application::gzipContentIfSupported($derp);
         foreach ($extraHeaders as $extraHeader) {
             header("{$extraHeader['0']}: {$extraHeader['1']}", $extraHeader[2]);
         }
     }
     return $derp;
 }
 public static function listen(XenForo_FrontController $fc, XenForo_ControllerResponse_Abstract &$controllerResponse, XenForo_ViewRenderer_Abstract &$viewRenderer, array &$containerParams)
 {
     $options = XenForo_Application::get('options');
     if ($options->dark_taigachat_globalhook || $controllerResponse->controllerName == 'Dark_TaigaChat_ControllerPublic_TaigaChat' || $controllerResponse->controllerName == 'XenForo_ControllerPublic_Index') {
         $action = $controllerResponse->controllerAction;
         $action[0] = strtolower($action[0]);
         Dark_TaigaChat_Helper_Global::getTaigaChatStuff($controllerResponse, $action);
     }
 }
Example #3
0
 public function actionPopup()
 {
     if (method_exists('XFCP_Dark_TaigaChat_ControllerPublic_Index', 'actionPopup')) {
         $response = parent::actionPopup();
         if ($response instanceof XenForo_ControllerResponse_View) {
             Dark_TaigaChat_Helper_Global::getTaigaChatStuff($response, 'popup', $this);
         }
         return $response;
     }
 }
Example #4
0
 public function renderJson()
 {
     $options = XenForo_Application::get('options');
     $maxUpdate = Dark_TaigaChat_Helper_Global::processMessagesForView($this->_params, $this);
     $messages = $this->_params['taigachat']['messages'];
     if ($options->dark_taigachat_reverse) {
         $messages = array_reverse($messages);
     }
     $twelveHour = false;
     $template = $this->createTemplateObject("dark_taigachat_robots");
     if (!empty($this->_params['taigachat']['publichtml'])) {
         /** @var XenForo_Model_Language */
         $languageModel = XenForo_Model::create('XenForo_Model_Language');
         $language = $languageModel->getLanguageById(XenForo_Phrase::getLanguageId());
         if ($language['time_format'] == 'g:i A') {
             $twelveHour = true;
         }
         $template->setLanguageId(XenForo_Phrase::getLanguageId());
         $template->setStyleId($options->defaultStyleId);
     }
     $robots = $template->render();
     $outputMessages = array();
     $previous = null;
     $template = $this->createTemplateObject("dark_taigachat_message", $this->_params);
     if (!empty($this->_params['taigachat']['publichtml'])) {
         $template->setLanguageId(XenForo_Phrase::getLanguageId());
         $template->setStyleId($options->defaultStyleId);
     }
     foreach ($messages as &$message) {
         $template->setParam("message", $message);
         $rendered = $template->render();
         $rendered = preg_replace('/\\s+<\\/(.*?)>\\s+</si', ' </$1> <', $rendered);
         $rendered = preg_replace('/\\s+<(.*?)([ >])/si', ' <$1$2', $rendered);
         $outputMessages[] = array("id" => $message['id'], "previous" => empty($previous) ? 0 : $previous['id'], "last_update" => $message['last_update'], "html" => $rendered);
         $previous = $message;
     }
     $template = $this->createTemplateObject("dark_taigachat_online_users", $this->_params);
     if (!empty($this->_params['taigachat']['publichtml'])) {
         $template->setLanguageId(XenForo_Phrase::getLanguageId());
         $template->setStyleId($options->defaultStyleId);
     }
     $outputOnlineUsers = $template->render();
     $params = array("robots" => $robots, "messages" => $outputMessages, "messageIds" => $this->_params['taigachat']['messageIds'], "onlineUsers" => $outputOnlineUsers, "reverse" => $options->dark_taigachat_direction, "lastrefresh" => $maxUpdate, "motd" => $this->_params['taigachat']['motd'], "numInChat" => $this->_params['taigachat']['numInChat'], "twelveHour" => $twelveHour);
     if (!empty($this->_params['taigachat']['publichtml'])) {
         $params += array("_visitor_conversationsUnread" => "IGNORE", "_visitor_alertsUnread" => "IGNORE");
     }
     $jsonOutput = XenForo_ViewRenderer_Json::jsonEncodeForOutput($params, empty($this->_params['taigachat']['publichtml']));
     if (empty($this->_params['taigachat']['publichtml'])) {
         $extraHeaders = XenForo_Application::gzipContentIfSupported($jsonOutput);
         foreach ($extraHeaders as $extraHeader) {
             header("{$extraHeader['0']}: {$extraHeader['1']}", $extraHeader[2]);
         }
     }
     return $jsonOutput;
 }
Example #5
0
 public static function TemplateCreate($templateName, array &$params, XenForo_Template_Abstract $template)
 {
     if ($templateName == 'dark_taigachat') {
         $response = new stdClass();
         $response->viewName = "";
         $response->params = array();
         Dark_TaigaChat_Helper_Global::getTaigaChatStuff($response, "");
         //Zend_Debug::dump($response->params);
         $params = array_merge_recursive($params, $response->params);
     }
 }
Example #6
0
 public function renderJson()
 {
     $options = XenForo_Application::get('options');
     Dark_TaigaChat_Helper_Global::processMessagesForView($this->_params, $this);
     $this->_params['message'] = $this->_params['taigachat']['messages'][0];
     $template = $this->createTemplateObject($this->_templateName, $this->_params);
     $template->setParams($this->_params);
     $rendered = $template->render();
     $params = array("templateHtml" => $rendered, "editId" => $this->_params['taigachat']['editid']);
     $derp = XenForo_ViewRenderer_Json::jsonEncodeForOutput($params, true);
     return $derp;
 }
 public function getModule(&$options)
 {
     if (!($addon = $this->getModelFromCache('XenForo_Model_AddOn')->getAddOnById('TaigaChat')) || empty($addon['active'])) {
         return "killModule";
     }
     $response = new XenForo_ControllerResponse_View();
     $response->viewName = 'derp';
     $response->params = array();
     Dark_TaigaChat_Helper_Global::getTaigaChatStuff($response, 'index');
     $response->params += array('xenporta' => true);
     return $response->params;
 }
Example #8
0
 public static function TemplateHook($hookName, &$content, array $hookParams, XenForo_Template_Abstract $template)
 {
     switch ($hookName) {
         case 'dark_taigachat':
         case 'dark_taigachat_alt':
             $params = $template->getParams();
             if ($hookName == 'dark_taigachat_alt') {
                 $params['taigachat']['alt'] = true;
             }
             $params['taigachat']['room'] = 1;
             if (isset($hookParams['room'])) {
                 $params['taigachat']['room'] = $hookParams['room'];
             }
             $content .= $template->create('dark_taigachat', $params)->render();
             break;
         case 'dark_taigachat_online_users':
             $params = $template->getParams();
             $content .= $template->create('dark_taigachat_widget_online', $params)->render();
             break;
         case 'dark_taigachat_fake':
             $params = $template->getParams();
             $content .= $template->create('dark_taigachat_fake', $params)->render();
             break;
         case 'dark_taigachat_full':
             $params = $template->getParams();
             $params['taigachat']['room'] = 1;
             if (isset($hookParams['room'])) {
                 $params['taigachat']['room'] = $hookParams['room'];
             }
             $visitor = XenForo_Visitor::getInstance();
             $sessionModel = XenForo_Model::create('Dark_TaigaChat_Model_Session');
             $taigamodel = XenForo_Model::create("Dark_TaigaChat_Model_TaigaChat");
             $taigamodel->updateActivity($visitor['user_id'], false);
             $onlineUsers = $sessionModel->getSessionActivityQuickList($visitor->toArray(), array('cutOff' => array('>', $sessionModel->getOnlineStatusTimeout())), $visitor['user_id'] ? $visitor->toArray() : null);
             $onlineUsersTaiga = array();
             if ($options->dark_taigachat_sidebar) {
                 $onlineUsersTaiga = $taigamodel->getActivityUserList($visitor->toArray());
             }
             $params += array('taigachat' => array('onlineUsers' => $onlineUsers, 'sidebar_enabled' => true, 'online' => $onlineUsersTaiga));
             $response = new stdClass();
             $response->viewName = "Dark_TaigaChat_ViewPublic_TaigaChat_Index";
             $response->params = array();
             Dark_TaigaChat_Helper_Global::getTaigaChatStuff($response, "");
             $params = array_merge_recursive($params, $response->params);
             $content .= $template->create('dark_taigachat_full', $params)->render();
             break;
     }
 }
 public function actionPopup()
 {
     $visitor = XenForo_Visitor::getInstance();
     $options = XenForo_Application::get('options');
     $taigamodel = $this->_getTaigaChatModel();
     if (!$options->dark_taigachat_popupenabled) {
         throw $this->getErrorOrNoPermissionResponseException('');
     }
     $taigamodel->updateActivity($visitor['user_id']);
     $this->canonicalizeRequestUrl(XenForo_Link::buildPublicLink($options->dark_taigachat_route . '/popup'));
     $viewParams = array('request' => $this->_request);
     $response = new stdClass();
     $response->viewName = "";
     $response->params = array();
     Dark_TaigaChat_Helper_Global::getTaigaChatStuff($response, "popup");
     $viewParams['taigachat'] = $response->params['taigachat'];
     return $this->responseView('Dark_TaigaChat_ViewPublic_TaigaChat_Popup', 'dark_taigachat_popup', $viewParams);
 }