コード例 #1
0
ファイル: sl.php プロジェクト: sandulungu/StarLight
 /**
  * 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;
 }