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