Exemple #1
0
 public function __toString()
 {
     $strings = array();
     $exceptions = array();
     foreach ($this->_arrays as $item) {
         if (is_string($item)) {
             $strings[] = $item;
         } elseif ($item instanceof XenForo_Template_Abstract) {
             try {
                 $strings[] = $item->render();
             } catch (Exception $e) {
                 $exceptions[] = $e;
             }
         } else {
             try {
                 $strings[] = strval($item);
             } catch (Exception $e) {
                 $exceptions[] = $e;
             }
         }
     }
     if (!empty($exceptions)) {
         if (WidgetFramework_Core::debugMode()) {
             // do this to display the exception (only done in our debug mode)
             var_dump($exceptions);
             exit;
         } else {
             // throw the first exception to let people know that something is wrong
             $e = reset($exceptions);
             throw $e;
         }
     }
     return implode($this->_glue, $strings);
 }
 public static function getViewObject(array $params, XenForo_Template_Abstract $templateObj)
 {
     if (isset($params[WidgetFramework_Core::PARAM_VIEW_OBJECT])) {
         return $params[WidgetFramework_Core::PARAM_VIEW_OBJECT];
     }
     $viewObj = $templateObj->getParam(WidgetFramework_Core::PARAM_VIEW_OBJECT);
     if (!empty($viewObj)) {
         return $viewObj;
     }
     if (empty(self::$_pseudoViewObj)) {
         if (!empty(WidgetFramework_Listener::$fc) and !empty(WidgetFramework_Listener::$viewRenderer)) {
             if (WidgetFramework_Listener::$viewRenderer instanceof XenForo_ViewRenderer_HtmlPublic) {
                 self::$_pseudoViewObj = new XenForo_ViewPublic_Base(WidgetFramework_Listener::$viewRenderer, WidgetFramework_Listener::$fc->getResponse());
             }
         }
     }
     if (!empty(self::$_pseudoViewObj)) {
         return self::$_pseudoViewObj;
     }
     if (WidgetFramework_Core::debugMode()) {
         // log the exception for admin examination (in our debug mode only)
         XenForo_Error::logException(new XenForo_Exception(sprintf('Unable to get view object for %s', $templateObj->getTemplateName())), false, '[bd] Widget Framework');
     }
     return null;
 }