public static function control() { global $REX; $myself = 'url_control'; $addon = $REX['ADDON'][$myself]['addon']; $rewriter = $REX['ADDON'][$myself]['rewriter']; // http://www.domain.de/kategorie/artikel.html $url_full = parent::getFullRequestedUrl(); $parse = parse_url($url_full); $url_path = $parse['path']; $sql = rex_sql::factory(); //$sql->debugsql = true; $sql->setQuery('SELECT * FROM ' . $REX['TABLE_PREFIX'] . 'url_control_manager WHERE status = "1" AND ( url = "' . mysql_real_escape_string($url_full) . '" OR url = "' . mysql_real_escape_string($url_path) . '" ) '); if ($sql->getRows() == 1) { $method = $sql->getValue('method'); $params = unserialize($sql->getValue('method_parameters')); switch ($method) { case 'article': $article_id = (int) $params['article']['article_id']; $clang = (int) $params['article']['clang']; if ($params['article']['action'] == 'view') { return array('article_id' => $article_id, 'clang' => $clang); } elseif ($params['article']['action'] == 'redirect') { $a = OOArticle::getArticleById((int) $params['article']['article_id'], (int) $params['article']['clang']); if ($a instanceof OOArticle) { if (isset($rewriter[$addon]['get_url'])) { $func = $rewriter[$addon]['get_url']; $url = call_user_func($func, $article_id, $clang); } else { $url = $a->getUrl(); } } //$url = rex_getUrl((int) $params['article']['article_id'], (int) $params['article']['clang']); self::redirect($a->getUrl(), $params['http_type']['code']); } break; case 'target_url': $url = $params['target_url']['url']; self::redirect($url, $params['http_type']['code']); break; } } return false; }
public static function init() { global $REX; self::$rex_server = $REX['SERVER']; url_generate::init(); }
/** * gibt alle Urls einer Tabelle zurück * */ public static function getUrlsByTable($table_name) { $ids = self::getIds($table_name); if ($ids) { $save = array(); foreach ($ids as $id => $path) { $save[$id] = parent::getCleanUrl($path); } return $save; } }
$be_page->setHref('index.php?page=' . $addon . '&subpage=' . $mysubpage); $REX['ADDON']['pages'][$addon][] = $be_page; } } if ($rewriter[$addon]['subpages']) { foreach ($mysubpages as $mysubpage) { $REX['ADDON'][$addon]['SUBPAGES'][] = array($mysubpage, $I18N->msg('b_' . $mysubpage)); } } } $subpage = rex_request('subpage', 'string'); if (rex_request('page', 'string') == $addon && in_array($subpage, $mysubpages)) { $file = str_replace('control_', '', $subpage); $REX['ADDON']['navigation'][$addon]['path'] = $REX['INCLUDE_PATH'] . '/addons/' . $addon . '/plugins/' . $myself . '/pages/' . $file . '.php'; } if ($REX['MOD_REWRITE'] !== false && !$REX['SETUP']) { require_once $basedir . '/lib/url_control.php'; require_once $basedir . '/lib/url_generate.php'; require_once $basedir . '/lib/url_manager.php'; $extension_point = $rewriter[$addon]['extension_point']; $extension_function = $rewriter[$addon]['extension_function']; rex_register_extension($extension_point, 'url_control::' . $extension_function); if (isset($rewriter[$addon]['sitemap_extension_point']) && isset($rewriter[$addon]['sitemap_extension_function'])) { $sitemap_extension_point = $rewriter[$addon]['sitemap_extension_point']; $sitemap_extension_function = $rewriter[$addon]['sitemap_extension_function']; rex_register_extension($sitemap_extension_point, 'url_control::' . $sitemap_extension_function); } rex_register_extension('ADDONS_INCLUDED', 'url_control::extension_register_extensions', '', REX_EXTENSION_EARLY); url_control::init(); //rex_register_extension('ADDONS_INCLUDED', 'url_control::init'); }