示例#1
0
/**
 * Add the facebook app url in front
 *
 * @param string $internal_uri
 * @return string
 * @author fabriceb
 * @since 2009-06-03
 */
function fb_url_for()
{
    $arguments = func_get_args();
    $host = '';
    $fb_parameters = '';
    if (sfFacebook::inCanvas()) {
        $host = sfConfig::get('app_facebook_app_url');
    } else {
        $fb_parameters = '?' . sfFacebook::getFacebookSigParameters(sfContext::getInstance()->getRequest());
    }
    return $host . call_user_func_array('url_for', $arguments) . $fb_parameters;
}
 /**
  * redirects depnding on in canvas or not
  *
  * @param $url
  * @param $statusCode
  * @return mixed sfView::NONE or sfStopException
  * @author fabriceb
  * @since Jun 8, 2009 fabriceb
  */
 public static function redirect($url, $statusCode = 302)
 {
     $context = sfContext::getInstance();
     $response = $context->getResponse();
     if (self::inCanvas()) {
         $url = sfConfig::get('app_facebook_app_url') . $context->getController()->genUrl($url, false);
         $text = '<fb:redirect url="' . $url . '"/>';
         $response->setContent(sfContext::getInstance()->getResponse()->getContent() . $text);
         return sfView::NONE;
     } else {
         $fb_parameters = '?' . sfFacebook::getFacebookSigParameters(sfContext::getInstance()->getRequest());
         $url = $context->getController()->genUrl($url, true) . $fb_parameters;
         $response->clearHttpHeaders();
         $response->setStatusCode($statusCode);
         $response->setHttpHeader('Location', $url);
         $response->setContent(sprintf('<html><head><meta http-equiv="refresh" content="%d;url=%s"/></head></html>', 0, htmlspecialchars($url, ENT_QUOTES, sfConfig::get('sf_charset'))));
         $response->send();
         throw new sfStopException();
     }
 }