コード例 #1
0
 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);
 }
コード例 #2
0
 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;
 }
コード例 #3
0
ファイル: Listener.php プロジェクト: Sywooch/forums
 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);
         }
     }
 }
コード例 #4
0
 public static function saveLayoutEditorRendered($enabled)
 {
     self::$_saveLayoutEditorRendered = $enabled;
 }