public function prepareParams() { if (!empty($this->_params['_preparedParams'])) { return; } $this->_params['_preparedParams'] = true; $widget = $this->_params['widget']; $widget['_ajaxLoadParams'] = $this->_params['ajaxLoadParams']; $position = 'wf_widget_ajax'; $hookPosition = 'hook:wf_widget_ajax'; if (!empty($widget['_ajaxLoadParams'][WidgetFramework_WidgetRenderer::PARAM_IS_HOOK])) { $widget['position'] = $hookPosition; $widget['template_for_hooks'] = array($hookPosition => array($position)); } else { $widget['position'] = $position; } $widgets = array($widget['widget_id'] => $widget); $core = WidgetFramework_Core::getInstance(); $core->removeAllWidgets(); $core->addWidgets($widgets); $_REQUEST['_getRender'] = 1; $_REQUEST['_getRenderAsTemplateHtml'] = 1; $_REQUEST['_renderedIds'] = $widget['widget_id']; WidgetFramework_Listener::saveLayoutEditorRendered(true); }
public function renderJson() { /** @var XenForo_ViewRenderer_Json $jsonRenderer */ $jsonRenderer = $this->_renderer; $output = $jsonRenderer->getDefaultOutputArray(__CLASS__, $this->_params, $this->_templateName); $output = array_intersect_key($output, array_flip(array('css', 'js'))); if (!empty($this->_params['_renderedIds'])) { foreach (explode(',', $this->_params['_renderedIds']) as $renderedId) { $rendered = WidgetFramework_Listener::getLayoutEditorRendered($renderedId); if (is_string($rendered)) { $output['rendered'][$renderedId] = $rendered; } elseif (is_array($rendered)) { if (!empty($rendered['normalizedGroupId'])) { $groupRendered = WidgetFramework_Listener::getLayoutEditorRendered($rendered['normalizedGroupId']); if (is_string($groupRendered)) { $output['rendered'][$rendered['normalizedGroupId']] = $groupRendered; } } } } } if (!empty($this->_params['_getRenderAsTemplateHtml'])) { $output['templateHtml'] = ''; if (!empty($output['rendered'])) { $output['templateHtml'] = reset($output['rendered']); unset($output['rendered']); } } return $output; }
public static function front_controller_pre_view(XenForo_FrontController $fc, XenForo_ControllerResponse_Abstract &$controllerResponse, XenForo_ViewRenderer_Abstract &$viewRenderer, array &$containerParams) { self::$fc = $fc; self::$viewRenderer = $viewRenderer; if ($viewRenderer instanceof XenForo_ViewRenderer_HtmlPublic) { WidgetFramework_Core::getInstance()->bootstrap(); } if (defined('WIDGET_FRAMEWORK_LOADED')) { if ($controllerResponse instanceof XenForo_ControllerResponse_View) { WidgetFramework_WidgetRenderer::markTemplateToProcess($controllerResponse); } } }
public static function saveLayoutEditorRendered($enabled) { self::$_saveLayoutEditorRendered = $enabled; }