/** * 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(); } }