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 function renderHtml() { header('Cache-Control: public, max-age=31536000'); header('Content-Type: application/javascript'); $templateObject = XenForo_Application::getFc()->getDependencies()->createTemplateObject($this->_templateName); $templateObject->setLanguageId(XenForo_Phrase::getLanguageId()); $templateObject->setStyleId(XenForo_Application::get('options')->defaultStyleId); echo $templateObject->render(); exit; }
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; }
/** * Constructor. * * @param string $emailTitle Title of the email template * @param array $params Key-value params to pass to email template * @param integer|null $languageId Language of email; if null, uses language of current user (if setup) */ public function __construct($emailTitle, array $params, $languageId = null) { if ($languageId === null) { $languageId = XenForo_Phrase::getLanguageId(); } else { if (!$languageId) { $languageId = XenForo_Application::get('options')->defaultLanguageId; } } $this->_emailTitle = $emailTitle; $this->_params = $params; $this->_languageId = $languageId; if (!isset(self::$_emailCache[$emailTitle][$languageId])) { self::$_preCache[$emailTitle] = true; } if (!XenForo_Application::isRegistered('languages')) { XenForo_Application::set('languages', XenForo_Model::create('XenForo_Model_Language')->getAllLanguagesForCache()); } }
/** * Performs any pre-view rendering setup, such as getting style information and * ensuring the correct data is registered. * * @param XenForo_ControllerResponse_Abstract|null $controllerResponse */ public function preRenderView(XenForo_ControllerResponse_Abstract $controllerResponse = null) { parent::preRenderView($controllerResponse); XenForo_Template_Abstract::setLanguageId(XenForo_Phrase::getLanguageId()); $properties = XenForo_Application::get('adminStyleProperties'); XenForo_Template_Helper_Core::setStyleProperties($properties); $this->_defaultTemplateParams['_styleModifiedDate'] = XenForo_Application::get('adminStyleModifiedDate'); }
/** * Performs any pre-view rendering setup, such as getting style information and * ensuring the correct data is registered. * * @param XenForo_ControllerResponse_Abstract|null $controllerResponse */ public function preRenderView(XenForo_ControllerResponse_Abstract $controllerResponse = null) { parent::preRenderView($controllerResponse); if (!empty($this->_viewStateChanges['styleId'])) { $styleId = $this->_viewStateChanges['styleId']; $forceStyleId = true; } else { $user = XenForo_Visitor::getInstance(); $styleId = !empty($user['style_id']) ? $user['style_id'] : 0; $forceStyleId = $user['is_admin'] ? true : false; } XenForo_Template_Abstract::setLanguageId(XenForo_Phrase::getLanguageId()); $styles = XenForo_Application::isRegistered('styles') ? XenForo_Application::get('styles') : XenForo_Model::create('XenForo_Model_Style')->getAllStyles(); if ($styleId && isset($styles[$styleId]) && ($styles[$styleId]['user_selectable'] || $forceStyleId)) { $style = $styles[$styleId]; } else { $defaultStyleId = XenForo_Application::get('options')->defaultStyleId; $style = isset($styles[$defaultStyleId]) ? $styles[$defaultStyleId] : reset($styles); } $defaultProperties = XenForo_Application::get('defaultStyleProperties'); if ($style) { $properties = XenForo_Helper_Php::safeUnserialize($style['properties']); XenForo_Template_Helper_Core::setStyleProperties(XenForo_Application::mapMerge($defaultProperties, $properties)); XenForo_Template_Public::setStyleId($style['style_id']); } else { XenForo_Template_Helper_Core::setStyleProperties($defaultProperties); } // setup the default template params if ($style) { $this->_defaultTemplateParams['visitorStyle'] = $style; } // expose the user fields info array $this->_defaultTemplateParams['userFieldsInfo'] = XenForo_Application::get('userFieldsInfo'); }