/** * Improved requestAction. AutoRenders by default * * @param mixed $url * @param array $params If set to true, the return value of the controller * action is returned instead of the renderred output * @return mixed */ public static function requestAction($url, $params = array()) { if (is_bool($params)) { $params = array('return' => $params); } $params += array('return' => false, 'requested' => true); $params += array('bare' => $params['requested']); if (is_array($url)) { $url = self::url(array('base' => false) + $url); } else { $url = r('{$lang}', SlConfigure::read('I18n.lang'), $url); } // just in case... self::getInstance(); $savedCollections = SlConfigure::rememberCollections(); self::push(empty($params['requested']), $url); ob_start(); $result = Object::requestAction($url, $params); $html = ob_get_clean(); self::pop(); SlConfigure::restoreCollections($savedCollections); if ($html && (is_string($result) || empty($result))) { $result .= $html; } if ($result instanceof AppError && !$params['return']) { $result = $html; } return $result; }