Ejemplo n.º 1
0
 /**
  * RESOLVE_FROM_PATHLIST()
  *
  * @param  $path  string  URL to look up in pathlist
  * @return        boolean
  */
 function resolve_from_pathlist($path)
 {
     global $SEO42_URLS, $REX;
     if (isset($SEO42_URLS[$path])) {
         $status = isset($SEO42_URLS[$path]['status']) ? $SEO42_URLS[$path]['status'] : 200;
         switch ($status) {
             case 301:
             case 302:
             case 303:
             case 307:
                 $redirect = array('id' => $SEO42_URLS[$path]['id'], 'clang' => $SEO42_URLS[$path]['clang'], 'status' => $status);
                 self::redirect($redirect);
                 return true;
             default:
                 // offline 404 mode
                 $article = OOArticle::getArticleById($SEO42_URLS[$path]['id'], $SEO42_URLS[$path]['clang']);
                 if ($REX['ADDON']['seo42']['settings']['offline_404_mode'] && is_object($article) && $article->getValue('status') == 0) {
                     seo42::set404ResponseFlag();
                     if (seo42_utils::isBackendUserLoggedIn()) {
                         self::setArticleId($SEO42_URLS[$path]['id'], $SEO42_URLS[$path]['clang']);
                         seo42::setOffline404ModeFlag(true);
                     } else {
                         self::setArticleId($REX['NOTFOUND_ARTICLE_ID'], $SEO42_URLS[$path]['clang']);
                     }
                     return true;
                 }
                 // default
                 if (isset($SEO42_URLS[$path]['params'])) {
                     self::populateGlobals($SEO42_URLS[$path]['params'], false);
                 }
                 self::setArticleId($SEO42_URLS[$path]['id'], $SEO42_URLS[$path]['clang']);
                 return true;
         }
     }
     return false;
 }