// Direct Link is technology used for permanent link into deep place of the web. // This script is opened when mod_rewrite gets url with no page but with some // parameter (query string, separated by ?). The web is trying to find // script with the best language (for example DirectLink.en.php). Those scripts // are wrappers only. We can then look which language was used and generate // the right language version of link or selection. // // For example www.mlab.cz?xxx // // If there is invalid keyword (xxx in the example above) the script generates // selecteion HTML page (with table of posibilities). If the keyword is valid // (found in a list) then the page is automatically redirected to the right // place. We try to use user's prefered language. // // In the file DirectLink.inc there is list of keywords and links to go. // // Written by (c)miho2007 for www.mlab.cz
// Include redirect definitions (as an array) include_once("DirectLink.inc");
// Make all keywords upcase foreach($Redirect as $Key => $Value) { $RedirectUpper[strtoupper($Key)]=$Value; }
// Process language (extract lang from the name of the script) $Lang=$_SERVER[SCRIPT_FILENAME]; $Lang=preg_replace("/(?:.+)\.(.+)\.(.*)/i","$1",$Lang); if ($Lang==$_SERVER[SCRIPT_FILENAME]) $Lang="";
// If not found -> list all posibilities if ($RedirectToPage=="") { // Template File Name if ($Lang=="") $Lang="en"; $FileName="DirectLink.$Lang.tmpl";
// Read Template $Template=@file($FileName);
// Trim Lines if ($Template<>FALSE) { foreach($Template as $Key => $Line) { $Template[$Key]=rtrim($Line); } $Template=implode("\n",$Template); }
// Read parametrs from Template
// Dodělat tuto část včetně odsazení tabulky // <<DIRECTLINK Rychlý odkaz>> // <<REDIRECTION Přesměrování>> $Template=preg_replace("/.*<<DIRECTLINK +(.*)>>/im","",$Template); $Template=preg_replace("/.*<<REDIRECTION +(.*)>>/im","",$Template);
// Generate List (table) $Table =""; $Table.="<table>\n"; $Table.=" <tr>\n"; $Table.=" <th> Direct Link </th>\n"; $Table.=" <th> Redirected to </th>\n"; $Table.=" </tr>\n"; foreach($Redirect as $Key => $Value) { $Table.=" <tr>\n"; $Table.=" <td> $Key </td>\n"; $Table.=" <td> $Value </td>\n"; $Table.=" </tr>\n"; } $Table.="<table>\n";
// Put it into Template if ($Template<>"") print str_ireplace("<<TABLE>>", $Table, $Template); else print $Table; // We have No Template
// Finished return 0; } else { // We have redirection if ($Lang<>"") if (file_exists($_SERVER["DOCUMENT_ROOT"].$RedirectToPage.".".$Lang.".html")) $RedirectToPage.=".".$Lang.".html"; }