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