Example #1
0
 /**
  * Handle page redirection.
  *
  * @param Page $page
  * @param Curry_Request $r
  * @return Page
  */
 public function redirectPage(Page $page, Curry_Request $r)
 {
     while ($page && $page->getRedirectMethod()) {
         switch ($page->getRedirectMethod()) {
             case PagePeer::REDIRECT_METHOD_CLONE:
                 if ($page->getRedirectUrl() !== null) {
                     readfile($page->getRedirectUrl());
                     exit;
                 }
                 $redirectPage = $page->getActualRedirectPage();
                 if ($redirectPage && $redirectPage !== $page) {
                     $page = $redirectPage;
                 } else {
                     return $page;
                 }
                 break;
             default:
                 $code = $page->getRedirectMethod() == PagePeer::REDIRECT_METHOD_PERMANENT ? 301 : 302;
                 url($page->getFinalUrl(), $r->get)->redirect($code);
                 break;
         }
     }
     return $page;
 }