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);
}
}
}
?>