HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/NVonken/mijneigenlied.com/wwwroot/Core/Core Tasks/rewrite.task.php
<?php

class rewriteTask
{
    public function __construct()
    {
        General::Load("Hatch");
        General::Load("HatchTranslation");
    }

    public function run()
    {
        $Request = trim(strtolower($_SERVER['REQUEST_URI']), '/');

        //If Not in Root, rebuild request uri
        if (defined("SETTING_ROOT") && SETTING_ROOT != "")
            $Request = substr($Request, strlen(SETTING_ROOT), strlen($Request));

        if (strpos($Request, '?') !== false)
            $Request = substr($Request, 0, strpos($Request, '?'));
        if (strpos($Request, '#') !== false)
            $Request = substr($Request, 0, strpos($Request, '#'));


        if (substr($Request, -5, 5) == '.html') {
            $path = substr($Request, 0, strlen($Request) - 5);
        } else {
            $path = $Request;
        }

        //get al lang list
        $langList = array();
        $dirLanguages = opendir("Core/Languages/");
        while (($fileLang = readdir($dirLanguages)) !== false) {
            if (is_dir("Core/Languages/" . $fileLang) && strpos($fileLang, ".") === false) {
                $langList[] = strtolower($fileLang);
            }
        }
        closedir($dirLanguages);

        //get a list of hatches
        $hatchTranslations = HatchTranslation::SelectAll();

        $hatchList = array();
        foreach ($hatchTranslations as $hatchTranslation) {
            $hatchList[General::UrlSafe($hatchTranslation->Name)] = $hatchTranslation->HatchId;
            //$hatchIds[strtolower($hatch->Name)] = $hatch->Id;
        }


        $get = explode('/', substr($path, 0));
        $j = 0;

        for ($i = 0; $i < count($get); $i++) {
            $skip = false;
            if ($i == 0 && in_array(strtolower($get[$i]), $langList)) {
                $skip = true;
                define("ACTIVE_LANGUAGE", strtoupper($get[$i]));
            }
            if (($i == 0 && !defined("ACTIVE_LANGUAGE") && isset($hatchList[$get[$i]])) ||
                ($i == 1 && defined("ACTIVE_LANGUAGE") && isset($hatchList[$get[$i]]))
            ) {
                $skip = true;
                $hatchTranslation = HatchTranslation::SelectByHatch($hatchList[$get[$i]], DEFAULT_LANGUAGE);
                define("ACTIVE_HATCH", $hatchTranslation->Name);
                define("ACTIVE_HATCH_ID", $hatchList[$get[$i]]);
            }

            if (!$skip) {
                if ($get[$i] != null) {
                    $_GET[$j + 1] = $get[$i];
                    $j++;
                }
            }
        }

        //load defaults
        $loadedDefaultLanguage = false;
        if (!defined("ACTIVE_LANGUAGE")) {
            define("ACTIVE_LANGUAGE", DEFAULT_LANGUAGE);
            $loadedDefaultLanguage = true;
        }
        $loadedDefaultHatch = false;
        if (!defined("ACTIVE_HATCH")) {

            define("ACTIVE_HATCH_ID", reset($hatchList));
            define("ACTIVE_HATCH", key($hatchList));
            $loadedDefaultHatch = true;
        }

        //define the base page url
        define("BASE_URL", SETTING_ROOT . (!$loadedDefaultLanguage ? "/" . strtolower(ACTIVE_LANGUAGE) : "") . (!$loadedDefaultHatch ? "/" . ACTIVE_HATCH : ""));

        if (isset($_GET[1]))
            define("BASE_URL_COMPONENT", BASE_URL . "/" . $_GET[1]);
        else
            define("BASE_URL_COMPONENT", BASE_URL);

        //alles even doorlopen
        foreach ($_GET AS $key => $value) {
            //Define van de Get
            define("GET_" . $key, $value);
        }
    }
}

?>