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