<?php
/**
 * pragmaMx  Content Management System
 * Copyright (c) 2007 pragmaMx Dev Team - http://pragmaMx.org
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * $Source: /home/www/dps3311/home/cvsroot/pragmamx/pragmamx_01/includes/mx_modrewrite.php,v $
 * $Revision: 1.14 $
 * $Author: tora60 $
 * $Date: 2007/05/02 20:18:47 $
 */

/**
 * kein Test wegen direktaufruf, weil diese Datei bereits in der mod.php
 * includet wird, wenn die mainfile noch nicht geladen ist und auch keine
 * Fehler verursachen kann
 *
 * zur Kontrollausgabe, um zu sehen, welche Regeln importiert wurden und was
 * in $content steht kann man die Variable "mod_rewrite_check" per GET uebergeben
 */

/**
 * Variablen deklarieren, weil in Funktion includet wird :-(
 */
global $modrew_prepareauto, $modrew_alternate;

/**
 * die URL's automatisch generieren fuer alles was ueber die modules.php laeuft?
 */
$modrew_prepareauto = true;

/**
 * Ansonsten werden nur die Ersetzungen des Array's $replace_arr beachtet und
 * es muss die .htaccess Dateie geaendert bzw. ergaenzt werden. Dieser Teil
 * sollte dann auskommentiert/entfernt werden:
 */
// dynamisches ersetzen in mod.php
// RewriteRule ^([^-]+)-(.+)\.html$ mod.php?$1&________________________$2 [L]
// RewriteRule ^([^-]+)\.html$ mod.php?$1 [L]
// RewriteRule ^([^-]+)\.html$ mod.php?$1 [L]
/**
 * durch was sollen bei automatischer Ersetzung, die erwuenschten Bindestriche in der URL ersetzt werden?
 */
$modrew_alternate = '~';

/**
 * Array mit allen Schluesseln und Werten zum Suchen & ersetzen zurueckgeben
 */
function mxGetModRewriteArray()
{
    /**
     * der zu suchende regulaere Ausdruck ist der Schluessel des Arrays der
     * ersetzende Wert ist der Wert des Arrays
     */
    // das Array initialisieren
    $replace_arr = array();
    // der Ordner mit den mod_rewrite rules
    $dir = dirname(__file__) . '/rewrite';
    // den Ordner oeffnen und in einer Schleife durchlaufen
    $handle = opendir($dir);
    if (!$handle) {
        if (MX_IS_ADMIN) {
            die('mod_rewrite Error:<br />folder <i>"' . $dir . '"</i> is missing!');
        }
        return $replace_arr;
    }
    // eventuell durch das includen der Dateien entstehenden output puffern
    ob_start();
    while ($file = readdir($handle)) {
        if (preg_match("#\.php$#", $file)) {
            // alle gefundenen php Dateien includen
            include($dir . '/' . $file);
            // wenn es eine Datei von Google-Tap ist...
            if (isset($urlin, $urlout)) {
                // aus den darin enthaltenen beiden Arrays, das entsprechende Array fuer mx-Modrewrite generieren
                foreach ($urlin as $i => $in) {
                    if (isset($urlout[$i])) {
                        $replace_arr[$in] = $urlout[$i];
                    }
                }
                // unbedingt vor dem naechsten Schleifendurchlauf aufraeumen
                unset($urlin, $urlout);
            }
        }
    }
    // den Ordner mit den rule wieder schliessen
    closedir($handle);
    // evtl. entstandenen output verwerfen
    ob_end_clean();
    // das neue Array zurueckgeben
    return $replace_arr;
}

/**
 * Alle in dem uebergebenen String enthaltenen Links umschreiben
 */
function mxPrepareModRewrite($content)
{
    global $modrew_prepareauto, $modrew_alternate;
    // / wenn kein Content
    if (empty($content)) {
        return $content;
    }
    // / die Regeln importieren
    static $replace_arr;
    if (!isset($replace_arr)) {
        $replace_arr = mxGetModRewriteArray();
    }
    // zur Kontrollausgabe, um zu sehen, welche Regeln importiert wurden und was in $content steht
    if (isset($_GET['mod_rewrite_check']) && MX_IS_ADMIN) {
        var_dump($replace_arr, $content);
    }

    if (!empty($replace_arr)) {
        $patterns = array_keys($replace_arr);
        $replaces = array_values($replace_arr);
        $content = @preg_replace($patterns, $replaces, $content);
    }
    // / nur wenn die Ersetzungen automatisch generiert werden sollen
    // / $modrew_prepareauto muss dazu auf TRUE gesetzt werden
    if ($modrew_prepareauto && $content) {
        // // ab hier werden die Ersetzungen automatisch generiert, nach Moeglichkeit hier nichts aendern !
      /*    $pattern  = '!(<a(?:[^>]+)href=["\']|<link>)(?:'.MX_BASE_URL.')?modules\.php\?([^'.$modrew_alternate.'\.\'"-%]+)(["\']|</link>)!i';
       */
         $pattern = '!(<a(?:[^>]+)href=["\']|<link>)(?:' . preg_quote(MX_BASE_URL, '!') . ')?modules\.php\?((?:[[:alnum:]\=&_.;]|&amp;)+)(#[^"\']+)?(["\']|</link>)!i';


        if (!preg_match_all($pattern, $content, $matches)) {
            return $content;
        }
        foreach($matches[2] as $i => $value) {
            // gewuenschte Bindestriche ersetzen

                     $x = str_replace(array('-', '&amp;'), array($modrew_alternate, '&'), $value);

        /*
            $x = $value;
            $x = str_replace(array('&szlig;', '&auml;', '&uuml;', '&ouml;' ), array('ß', 'ä', 'ü', 'ö' ), $x);

                                         $_p = str_replace(array('.','ä', 'ü', 'ö', 'Ä', 'Ü', 'Ö', 'ß'), array(',', 'ae', 'ue', 'oe', 'Ae', 'Ue', 'Oe', 'ss'), $_p);
        */

            $arr = explode('&', $x);
            $name = '';
            $newarr = array();
            $ilink = '';
            foreach($arr as $para) {

                if ($para === 'file=index' || $para === 'op=modload') {
                    continue;
                }
                $xar = explode('=', $para);


                if (!isset($xar[1])) {
                    $xar[1] = '';
                }
                if ($xar[0] === 'name') {
                    $name = $xar[1];
                } else {
                    $check = explode('#', $xar[1]);
                    if (isset($check[1])) {
                        $ilink = '#' . $check[1];
                        $xar[1] = $check[0];
                    }
                    $newarr[] = $xar[0] . '-' . $xar[1];
                }
            }
            $newstr = $name;
            if (count($newarr)) {
                $newstr .= '-' . (implode('-', $newarr));
            }


            $newstr .= '.html';
            if (strlen($newstr) < 255) {
                // der zu ersetzende String
                $old[$i] = $matches[0][$i];
                // der neue String
                $new[$i] = $matches[1][$i] . MX_BASE_URL . $newstr . $ilink . $matches[3][$i] . $matches[4][$i];
            }
        }
        if (isset($old)) {
            $content = str_replace($old, $new, $content);

/*
                                         $content = str_replace(array('.','ä', 'ü', 'ö', 'Ä', 'Ü', 'Ö', 'ß'), array(',', 'ae', 'ue', 'oe', 'Ae', 'Ue', 'Oe', 'ss'), $content);
*/
            //Moderewrite Erweiterung (News, Downloads, Web_Links)
// Umlaute
$umlaute = array("ä", "ü", "ö", "Ä", "Ü", "Ö", "ß");
$ersetzung = array("ae", "ue", "oe", "Ae", "Ue", "Oe", "ss");
  global $prefix;


//FAQS Categorie (CID)
preg_match_all('#FAQ-myfaq-yes-id_cat-(\d*)#', $content, $faq, PREG_SET_ORDER);
			foreach ($faq as $faq1){

			$faq2[0] = preg_replace('#FAQ-myfaq-yes-id_cat-#', '', $faq1[0]);
			$abfrage = "SELECT id_cat, categories FROM " . $prefix . "_faqcategories WHERE id_cat = '$faq2[0]'";
  				$ergebnis = mysql_query($abfrage);
  					while($row = mysql_fetch_array($ergebnis))
    				{

						$titel_faq_rewrite = $row["categories"];
						$titel_faq_rewrite = str_replace($umlaute, $ersetzung, $titel_faq_rewrite);
						$titel_faq_rewrite = preg_replace('#\W#', "-", $titel_faq_rewrite);
						$titel_faq_rewrite = preg_replace('#---#', "-", $titel_faq_rewrite);
						$titel_faq_rewrite = preg_replace('#--#', "-", $titel_faq_rewrite);

						$titel_faq_fert = "FAQ-Helpfile-";

						$titel_faq_fert.= $titel_faq_rewrite."-";
						$titel_faq_fert .= $faq2[0];
						$replace = "#".$faq1[0]."(?!\d)#";
						$content = preg_replace($replace, $titel_faq_fert, $content);
									}

					}
########################

//DOWNLOADS	DETAILS LID

			preg_match_all('#Downloads-op-view-lid-(\d*)#', $content, $down, PREG_SET_ORDER);
			foreach ($down as $down1){

			$down2[0] = preg_replace('#Downloads-op-view-lid-#', '', $down1[0]);
			$abfrage = "SELECT title, lid FROM " . $prefix . "_downloads_downloads WHERE lid = '$down2[0]'";
  				$ergebnis = mysql_query($abfrage);
  					while($row = mysql_fetch_array($ergebnis))
    				{

						$titel_down_rewrite = $row["title"];
						$titel_down_rewrite = str_replace($umlaute, $ersetzung, $titel_down_rewrite);
						$titel_down_rewrite = preg_replace('#\W#', "-", $titel_down_rewrite);
						$titel_down_rewrite = preg_replace('#---#', "-", $titel_down_rewrite);
						$titel_down_rewrite = preg_replace('#--#', "-", $titel_down_rewrite);
						$titel_down_fert = "Downloads-lid-";
						$titel_down_fert.= "$titel_down_rewrite-";
						$titel_down_fert.= $down2[0];
						$replace = "#".$down1[0]."(?!\d)#";
						$content = preg_replace($replace, $titel_down_fert, $content);
									}

					}
//Downloads Categorie (CID)
preg_match_all('#Downloads-cid-(\d*)#', $content, $down, PREG_SET_ORDER);
			foreach ($down as $down1){

			$down2[0] = preg_replace('#Downloads-cid-#', '', $down1[0]);
			$abfrage = "SELECT title, cid FROM " . $prefix . "_downloads_categories WHERE cid = '$down2[0]'";
  				$ergebnis = mysql_query($abfrage);
  					while($row = mysql_fetch_array($ergebnis))
    				{

						$titel_down_rewrite = $row["title"];
						$titel_down_rewrite = str_replace($umlaute, $ersetzung, $titel_down_rewrite);
						$titel_down_rewrite = preg_replace('#\W#', "-", $titel_down_rewrite);
						$titel_down_rewrite = preg_replace('#---#', "-", $titel_down_rewrite);
						$titel_down_rewrite = preg_replace('#--#', "-", $titel_down_rewrite);
						$titel_down_fert = "Downloads-cid-";
						$titel_down_fert.= "$titel_down_rewrite-";
						$titel_down_fert.= $down2[0];
						$replace = "#".$down1[0]."(?!\d)#";
						$content = preg_replace($replace, $titel_down_fert, $content);
									}

					}
//Web_Links Categorie

preg_match_all('#Web_Links-cid-(\d*)#', $content, $links, PREG_SET_ORDER);
			foreach ($links as $links1){

			$links2[0] = preg_replace('#Web_Links-cid-#', '', $links1[0]);
			$abfrage = "SELECT title, cid FROM " . $prefix . "_links_categories WHERE cid = '$links2[0]'";
  				$ergebnis = mysql_query($abfrage);
  					while($row = mysql_fetch_array($ergebnis))
    				{

						$titel_links_rewrite = $row["title"];
						$titel_links_rewrite = str_replace($umlaute, $ersetzung, $titel_links_rewrite);
						$titel_links_rewrite = preg_replace('#\W#', "-", $titel_links_rewrite);
						$titel_links_rewrite = preg_replace('#---#', "-", $titel_links_rewrite);
						$titel_links_rewrite = preg_replace('#--#', "-", $titel_links_rewrite);
						$titel_links_fert = "Web_Links-cid-";
						$titel_links_fert.= "$titel_links_rewrite-";
						$titel_links_fert.= $links2[0];
						$replace = "#".$links1[0]."(?!\d)#";
						$content = preg_replace($replace, $titel_links_fert, $content);
									}

					}
//Web_Links Details
preg_match_all('#Web_Links-op-view-lid-(\d*)#', $content, $links, PREG_SET_ORDER);
			foreach ($links as $links1){

			$links2[0] = preg_replace('#Web_Links-op-view-lid-#', '', $links1[0]);
			$abfrage = "SELECT title, lid FROM " . $prefix . "_links_links WHERE lid = '$links2[0]'";
  				$ergebnis = mysql_query($abfrage);
  					while($row = mysql_fetch_array($ergebnis))
    				{

						$titel_links_rewrite = $row["title"];
						$titel_links_rewrite = str_replace($umlaute, $ersetzung, $titel_links_rewrite);
						$titel_links_rewrite = preg_replace('#\W#', "-", $titel_links_rewrite);
						$titel_links_rewrite = preg_replace('#---#', "-", $titel_links_rewrite);
						$titel_links_rewrite = preg_replace('#--#', "-", $titel_links_rewrite);
						$titel_links_fert = "Web_Links-lid-";
						$titel_links_fert.= "$titel_links_rewrite-";
						$titel_links_fert.= $links2[0];
						$replace = "#".$links1[0]."(?!\d)#";
						$content = preg_replace($replace, $titel_links_fert, $content);
									}

					}
// News Categorie
preg_match_all('#News-file-categories-catid-(\d*)#', $content, $news, PREG_SET_ORDER);
			foreach ($news as $news1){

			$news2[0] = preg_replace('#News-file-categories-catid-#', '', $news1[0]);
			$abfrage = "SELECT title, catid FROM " . $prefix . "_stories_cat WHERE catid = '$news2[0]'";
  				$ergebnis = mysql_query($abfrage);
  					while($row = mysql_fetch_array($ergebnis))
    				{

						$titel_news_rewrite = $row["title"];
						$titel_news_rewrite = str_replace($umlaute, $ersetzung, $titel_news_rewrite);
						$titel_news_rewrite = preg_replace('#\W#', "-", $titel_news_rewrite);
						$titel_news_rewrite = preg_replace('#---#', "-", $titel_news_rewrite);
						$titel_news_rewrite = preg_replace('#--#', "-", $titel_news_rewrite);
						$titel_news_fert = "News-cat-";
						$titel_news_fert.= "$titel_news_rewrite-";
						$titel_news_fert.= $news2[0];
						$replace = "#".$news1[0]."(?!\d)#";
						$content = preg_replace($replace, $titel_news_fert, $content);
									}

					}
//News Details
preg_match_all('#News-file-article-sid-(\d*)#', $content, $news, PREG_SET_ORDER);
			foreach ($news as $news1){

			$news2[0] = preg_replace('#News-file-article-sid-#', '', $news1[0]);
			$abfrage = "SELECT title, sid FROM " . $prefix . "_stories WHERE sid = '$news2[0]'";
  				$ergebnis = mysql_query($abfrage);
  					while($row = mysql_fetch_array($ergebnis))
    				{

						$titel_news_rewrite = $row["title"];
						$titel_news_rewrite = str_replace($umlaute, $ersetzung, $titel_news_rewrite);
						$titel_news_rewrite = preg_replace('#\W#', "-", $titel_news_rewrite);
						$titel_news_rewrite = preg_replace('#---#', "-", $titel_news_rewrite);
						$titel_news_rewrite = preg_replace('#--#', "-", $titel_news_rewrite);
						$titel_news_fert = "News-sid-";
						$titel_news_fert.= "$titel_news_rewrite-";
						$titel_news_fert.= $news2[0];
						$replace = "#".$news1[0]."(?!\d)#";
						$content = preg_replace($replace, $titel_news_fert, $content);
									}

					}

##################################

//Kleinanzeigen Kategorien
preg_match_all('#Kleinanzeigen-a_op-viewadd-cid-(\d*)#', $content, $adds, PREG_SET_ORDER);
			foreach ($adds as $adds1){

			$adds2[0] = preg_replace('#Kleinanzeigen-a_op-viewadd-cid-#', '', $adds1[0]);
			$abfrage = "SELECT title, cid FROM " . $prefix . "_add_categories WHERE cid = '$adds2[0]'";
  				$ergebnis = mysql_query($abfrage);
  					while($row = mysql_fetch_array($ergebnis))
    				{

						$titel_adds_rewrite = $row["title"];
						$titel_adds_rewrite = str_replace($umlaute, $ersetzung, $titel_adds_rewrite);
						$titel_adds_rewrite = preg_replace('#\W#', "-", $titel_adds_rewrite);
						$titel_adds_rewrite = preg_replace('#---#', "-", $titel_adds_rewrite);
						$titel_adds_rewrite = preg_replace('#--#', "-", $titel_adds_rewrite);
						$titel_adds_fert = "Kleinanzeigen-cid-";
						$titel_adds_fert.= "$titel_adds_rewrite-";
						$titel_adds_fert.= $adds2[0];
						$replace = "#".$adds1[0]."(?!\d)#";
						$content = preg_replace($replace, $titel_adds_fert, $content);
									}

					}

//Kleinanzeigen Details
preg_match_all('#Kleinanzeigen-a_op-visit-lid-(\d*)#', $content, $adds, PREG_SET_ORDER);
			foreach ($adds as $adds1){

			$adds2[0] = preg_replace('#Kleinanzeigen-a_op-visit-lid-#', '', $adds1[0]);
			$abfrage = "SELECT title, lid FROM " . $prefix . "_add_adds WHERE lid = '$adds2[0]'";
  				$ergebnis = mysql_query($abfrage);
  					while($row = mysql_fetch_array($ergebnis))
    				{

						$titel_adds_rewrite = $row["title"];
						$titel_adds_rewrite = str_replace($umlaute, $ersetzung, $titel_adds_rewrite);
						$titel_adds_rewrite = preg_replace('#\W#', "-", $titel_adds_rewrite);
						$titel_adds_rewrite = preg_replace('#---#', "-", $titel_adds_rewrite);
						$titel_adds_rewrite = preg_replace('#--#', "-", $titel_adds_rewrite);
						$titel_adds_fert = "Kleinanzeigen-lid-";
						$titel_adds_fert.= "$titel_adds_rewrite-";
						$titel_adds_fert.= $adds2[0];
						$replace = "#".$adds1[0]."(?!\d)#";
						$content = preg_replace($replace, $titel_adds_fert, $content);
									}

					}
###########################################
// Content Categorie
preg_match_all('#Content-cid-(\d*)#', $content, $content_, PREG_SET_ORDER);
			foreach ($content_ as $content_1){

			$content_2[0] = preg_replace('#Content-cid-#', '', $content_1[0]);
			$abfrage = "SELECT title, cid FROM " . $prefix . "_pages_categories WHERE cid = '$content_2[0]'";
  				$ergebnis = mysql_query($abfrage);
  					while($row = mysql_fetch_array($ergebnis))
    				{

						$titel_content__rewrite = $row["title"];
						$titel_content__rewrite = str_replace($umlaute, $ersetzung, $titel_content__rewrite);
						$titel_content__rewrite = preg_replace('#\W#', "-", $titel_content__rewrite);
						$titel_content__rewrite = preg_replace('#---#', "-", $titel_content__rewrite);
						$titel_content__rewrite = preg_replace('#--#', "-", $titel_content__rewrite);
						$titel_content__fert = "Content-cid-";
						$titel_content__fert.= "$titel_content__rewrite-";
						$titel_content__fert.= $content_2[0];
						$replace = "#".$content_1[0]."(?!\d)#";
						$content = preg_replace($replace, $titel_content__fert, $content);
									}

					}


//Content Details  Page
preg_match_all('#Content-pid-(\d*)#', $content, $content_, PREG_SET_ORDER);
			foreach ($content_ as $content_1){

			$content_2[0] = preg_replace('#Content-pid-#', '', $content_1[0]);
			$abfrage = "SELECT title, pid FROM " . $prefix . "_pages WHERE pid = '$content_2[0]'";
  				$ergebnis = mysql_query($abfrage);
  					while($row = mysql_fetch_array($ergebnis))
    				{

						$titel_content__rewrite = $row["title"];
						$titel_content__rewrite = str_replace($umlaute, $ersetzung, $titel_content__rewrite);
						$titel_content__rewrite = preg_replace('#\W#', "-", $titel_content__rewrite);
						$titel_content__rewrite = preg_replace('#---#', "-", $titel_content__rewrite);
						$titel_content__rewrite = preg_replace('#--#', "-", $titel_content__rewrite);
						$titel_content__fert = "Content-pid-";
						$titel_content__fert.= "$titel_content__rewrite-";
						$titel_content__fert.= $content_2[0];
						$replace = "#".$content_1[0]."(?!\d)#";
						$content = preg_replace($replace, $titel_content__fert, $content);
									}

					}


###########################################################################

//Preview Details  Page
preg_match_all('#Reviews-rop-showcontent-id-(\d*)#', $content, $reviews, PREG_SET_ORDER);
			foreach ($reviews as $reviews1){

			$reviews2[0] = preg_replace('#Reviews-rop-showcontent-id-#', '', $reviews1[0]);
			$abfrage = "SELECT title, id FROM " . $prefix . "_reviews WHERE id = '$reviews2[0]'";
  				$ergebnis = mysql_query($abfrage);
  					while($row = mysql_fetch_array($ergebnis))
    				{

						$titel_reviews_rewrite = $row["title"];
						$titel_reviews_rewrite = str_replace($umlaute, $ersetzung, $titel_reviews_rewrite);
						$titel_reviews_rewrite = preg_replace('#\W#', "-", $titel_reviews_rewrite);
						$titel_reviews_rewrite = preg_replace('#---#', "-", $titel_reviews_rewrite);
						$titel_reviews_rewrite = preg_replace('#--#', "-", $titel_reviews_rewrite);
						$titel_reviews_fert = "Reviews-Produkt-";
						$titel_reviews_fert.= "$titel_reviews_rewrite-";
						$titel_reviews_fert.= $reviews2[0];
						$replace = "#".$reviews1[0]."(?!\d)#";
						$content = preg_replace($replace, $titel_reviews_fert, $content);
									}

					}


###########################################################################

        }
    }
    return $content;
}



/**
 * Die per umgeschriebener URL dem Script uebergebene Request Parameter
 * wieder in eine verwendbare Form bringen
 */
function mxUndoModRewrite()
{
    global $modrew_alternate, $PHP_SELF;
    $name = '';
    $get = array();
    if (isset($_GET['name'])) {
        $name = $_GET['name'];
    } else if (strpos($_SERVER['QUERY_STRING'], '&________________________') === false) {
        $name = str_replace('..', '', $_SERVER['QUERY_STRING']);
    } else {
        list($name, $querystring) = explode('&________________________', $_SERVER['QUERY_STRING']);
        unset($_GET['________________________' . $querystring], $_REQUEST['________________________' . $querystring]);
        $che = explode('-', $querystring);
        $che = array_chunk($che, 2);
        foreach($che as $part) {
            $key = @str_replace($modrew_alternate, '-', $part[0]);
            $value = @str_replace($modrew_alternate, '-', $part[1]);
            $get[$key] = $value;
        }
    }

    if ($name != 'mxcredit' && !file_exists(MX_DOC_ROOT . '/modules/' . $name . '/.')) {
        switch (true) {
            case file_exists(MX_DOC_ROOT . '/modules/' . ucfirst($name) . '/.'):
                $name = ucfirst($name);
                break;
            case file_exists(MX_DOC_ROOT . '/modules/' . strtolower($name) . '/.'):
                $name = strtolower($name);
                break;
            case file_exists(MX_DOC_ROOT . '/modules/' . strtoupper($name) . '/.'):
                $name = strtoupper($name);
                break;
            case file_exists(MX_DOC_ROOT . '/modules/' . ucwords($name) . '/.'):
                $name = ucwords($name);
                break;
            default:
                header('HTTP/1.1 301 Moved Permanently');
                header("Refresh: 2;url=./?moderror=" . urlencode($name));
        }
    }
    unset($_GET[$name], $_REQUEST[$name], $get[$name]);

    $_GET = array_merge(array('name' => $name), $get, $_GET);
    $new = '';
    foreach ($_GET as $key => $value) {
        $new .= '&' . $key . '=' . $value;
    }

    $_SERVER['QUERY_STRING'] = trim($new, '& ');
    $_SERVER["PHP_SELF"] = rtrim(dirname($_SERVER["PHP_SELF"]), '/') . '/modules.php';
    $_SERVER['SCRIPT_NAME'] = $_SERVER["PHP_SELF"];
    $_SERVER['SCRIPT_FILENAME'] = rtrim(dirname($_SERVER['SCRIPT_FILENAME']), '/') . '/modules.php';
    if (isset($PHP_SELF)) {
        $PHP_SELF = $_SERVER["PHP_SELF"];
    }
}

