1) { $codeblok = 1; } // Zo niet voer dan codeblok 2 uit en het template is het hoofdthema else { $codeblok = 2; $template = $hoofdthema; } // Hack voor schone url's zonder index.php if ($schoneurl == 1) { $locatie = '/index.php'.$locatie.''; } /* Opdelen in stukjes aan de hand van de slash. Het adres uit de adresbalk wordt gesplitst in stukjes /stukje/stukje/ enz en via een ingewikkeld if, else systeem waar een hoop denkwerk inzit wordt bepaald waar de persoon zich bevindt op de website. */ $stukjes = explode("/", $locatie); // Als stukje 2 voorkomt in de templatelijst is het een template // Plak .php er weer aanvast voor vergelijking met de bestandnamen in de template lijst $templates if (isset($stukjes[2])) { $mogelijkthema = ''.$stukjes[2].'.php'; if (in_array("$mogelijkthema", $templates)) { $template = $stukjes[2]; } else{ $codeblok = 2; $template = $hoofdthema; } } /* Zo niet dus als het niet de template is dan is $stukjes[2] het level of gelijk de soort en de templatenaam is de hoofdtemplate zoals ingesteld is in de database. */ // als je je op de index bevindt dan is het te gebruiken template logischerwijs het hoofdthema if ($locatie == '/' OR $locatie == '/index.php') { $codeblok = 2; $template = $hoofdthema; $bevindzichop = "indexhoofdsite"; } /*_________________________________________________________________________________________________________________*/ /* Je weet nu de template die gebruikt moet worden $template = je hoofdsite of een themasite en de gegevens voor die site worden nu uit de database gehaald. Haal de site gegevens op uit de database uit de tabel sitessttings. Deze kun je opgeven op de beheer pagina. */ $template= invoerveld($template); $sql = "SELECT * FROM ".$prefix."_sitessettings WHERE sitenaam='$template'"; mysql_query("SET CHARACTER SET UTF8"); $resultsites = mysql_query($sql); $sitegegevens = mysql_fetch_array($resultsites); $templatemap = uitvoerveld($sitegegevens['templatemap']); $sitetitel = uitvoerveld($sitegegevens['sitetitel']); $siteleus = uitvoerveld($sitegegevens['siteleus']); $sitebeschrijving = uitvoertekst($sitegegevens['sitebeschrijving']); $sitewelkomstekst = uitvoertekst($sitegegevens['sitewelkomstekst']); $multilevel = uitvoerveld($sitegegevens['multilevel']); $aantallevels = intval($sitegegevens['aantallevels']); $actiefpagina = intval($sitegegevens['actiefpagina']); $weergavepagina = intval($sitegegevens['weergavepagina']); $paginamtitel = uitvoerveld($sitegegevens['paginamtitel']); $paginaalias = uitvoerveld($sitegegevens['paginaalias']); $paginawelkomstekst = uitvoertekst($sitegegevens['paginawelkomstekst']); $wmenupagina = intval($sitegegevens['wmenupagina']); $actiefweblog = intval($sitegegevens['actiefweblog']); $weergaveweblog = intval($sitegegevens['weergaveweblog']); $weblogmtitel = uitvoerveld($sitegegevens['weblogmtitel']); $weblogalias = uitvoerveld($sitegegevens['weblogalias']); $weblogwelkomstekst = uitvoertekst($sitegegevens['weblogwelkomstekst']); $wmenuweblog = intval($sitegegevens['wmenuweblog']); $actiefwoordenboek = intval($sitegegevens['actiefwoordenboek']); $weergavewoordenboek = intval($sitegegevens['weergavewoordenboek']); $woordenboekmtitel = uitvoerveld($sitegegevens['woordenboekmtitel']); $woordenboekalias = uitvoerveld($sitegegevens['woordenboekalias']); $woordenboekwelkomstekst = uitvoertekst($sitegegevens['woordenboekwelkomstekst']); $wmenuwoordenboek = intval($sitegegevens['wmenuwoordenboek']); $actieffaq = uitvoerveld($sitegegevens['actieffaq']); $weergavefaq = uitvoerveld($sitegegevens['weergavefaq']); $faqmtitel = uitvoerveld($sitegegevens['faqmtitel']); $faqalias = uitvoerveld($sitegegevens['faqalias']); $faqswelkomstekst = uitvoertekst($sitegegevens['faqswelkomstekst']); $wmenufaq = uitvoerveld($sitegegevens['wmenufaq']); $actieflinks = uitvoerveld($sitegegevens['actieflinks']); $weergavelinks = uitvoerveld($sitegegevens['weergavelinks']); $linksmtitel = uitvoerveld($sitegegevens['linksmtitel']); $linksalias = uitvoerveld($sitegegevens['linksalias']); $linkswelkomstekst = uitvoertekst($sitegegevens['linkswelkomstekst']); $wmenulinks = uitvoerveld($sitegegevens['wmenulinks']); $weergavefotoalbum = intval($sitegegevens['weergavefotoalbum']); $fotoalbummtitel = uitvoerveld($sitegegevens['fotoalbummtitel']); $fotoalbumalias = uitvoerveld($sitegegevens['fotoalbumalias']); $actiefforum = uitvoerveld($sitegegevens['actiefforum']); $forummtitel = uitvoerveld($sitegegevens['forummtitel']); $forumwelkomstekst = uitvoertekst($sitegegevens['forumwelkomstekst']); $wwbeveiligd = uitvoerveld($sitegegevens['wwbeveiligd']); $wwintro = uitvoertekst($sitegegevens['wwintro']); $taaltegenhanger = uitvoerveld($sitegegevens['taaltegenhanger']); $taalt = uitvoerveld($sitegegevens['taalt']); $taal = uitvoerveld($sitegegevens['taal']); $footertekst = uitvoertekst($sitegegevens['footertekst']); $keuzedropdown = intval($sitegegevens['keuzedropdown']); $drtoonlinks = intval($sitegegevens['drtoonlinks']); $homeindropdown = intval($sitegegevens['homeindropdown']); $drtoplevel = intval($sitegegevens['drtoplevel']); $weblogdrsort = intval($sitegegevens['weblogdrsort']); $woordenboekdrsort = intval($sitegegevens['woordenboekdrsort']); $faqdrsort = intval($sitegegevens['faqdrsort']); $linksdrsort = intval($sitegegevens['linksdrsort']); $forumdrsort = intval($sitegegevens['forumdrsort']); $weergaveforum = intval($sitegegevens['weergaveforum']); // Forum heeft vaste alias $forumalias = "forum"; // Vaste Nederlandse en Engels aliassen voor profiel en registreren, inloggen, uitloggen en bekijk profiel $registrerenaliasnl = "registreren"; $registrerenaliasen = "register"; $profielaliasnl = "mijnprofiel"; $profielaliasen = "myprofile"; $uitlogaliasnl = "uitloggen"; $uitlogaliasen = "logout"; $bekijkprofielaliasen = "viewprofile"; $bekijkprofielaliasnl = "bekijkprofiel"; if (empty($templatemap)) { $templatemap = $template; } /*_________________________________________________________________________________________________________________*/ // Taalbestand invoegen require_once(''.$relpad.'taalbestanden/taalalgemeen.php'); // Taalbestand invoegen require_once(''.$relpad.'taalbestanden/taalfotoalbum.php'); /*_________________________________________________________________________________________________________________*/ /* Array CMS onderdelen-aliassen. Wordt later ookgebruikt om te kijken of er geen ongeldige soorten worden opgegeven door in te tikken. */ $soorten = array($paginaalias, $weblogalias, $woordenboekalias, $faqalias, $linksalias, $fotoalbumalias, $forumalias, $registrerenaliasnl, $registrerenaliasen, $profielaliasnl, $profielaliasen, $bekijkprofielaliasnl, $bekijkprofielaliasen, $uitlogaliasnl, $uitlogaliasen); /*_________________________________________________________________________________________________________________*/ // Kijken welke level-url-aliassen er zijn opgegeven function bepaallevelurlaliassen() { global $prefix, $template; $mlevels = array(); $sql = "SELECT lurlalias FROM ".$prefix."_levelintros WHERE sitenaam='$template'"; mysql_query("SET CHARACTER SET UTF8"); $resultlevel = mysql_query($sql); while ($rowlevel = mysql_fetch_array($resultlevel)) { $mlevels[] = uitvoerveld($rowlevel['lurlalias']); } return $mlevels; } $mlevels = bepaallevelurlaliassen(); /*_________________________________________________________________________________________________________________*/ /* Array maken soort-alias versus echte onderdeelnaam. Als vastgesteld is dat een stukje een soort is moet je weten of die alias een pagina, weblog, woordenboekpagina, faq, forum of link is. Stel dus dat je voor weblog opgeeft mijnweblog dan moet het systeem weten dat het om het onderdeel weblog gaat etc. */ $keuzetabel = array ( "$paginaalias" => "paginas", "$weblogalias" => "weblog", "$woordenboekalias" => "woordenboek", "$faqalias" => "faq", "$linksalias" => "links", "$fotoalbumalias" => "fotoalbum", "registreren" => "registreren", "register" => "registreren", "mijnprofiel" => "bewerkprofiel", "myprofile" => "bewerkprofiel", "bekijkprofiel" => "bekijkprofiel", "viewprofile" => "bekijkprofiel", "uitloggen" => "uitloggen", "logout" => "uitloggen", "forum" => "forum"); /*_________________________________________________________________________________________________________________*/ // functie volgende pagina (wordt gebruikt voor het fotoalbum) function volgendepagina($volgendepagina) { global $taal; $paginavtaal = array('nederlands' => 'pagina', 'engels' => 'page'); if (preg_match("/[^a-zA-Z0-9\._-]+/",$volgendepagina) AND !preg_match($regex2, $volgendepagina)) { // redirect naar index header( 'refresh: 0; url='.$abspad); die(); } $volgendepagina = explode($paginavtaal[$taal], $volgendepagina); if (isset($volgendepagina[1])) { $volgendepagina = invoerveld($volgendepagina[1]); } else { $volgendepagina = 1; } $volgendepagina = intval($volgendepagina); return $volgendepagina; } /*_________________________________________________________________________________________________________________*/ /* De functie bevindzichopextra wordt gebruikt in het code blok daaronder zodat niet telkens hetzelfde stukje code herhaald hoeft te worden. Zowel het onderdeel Normale Pagina's als het onderdeel Woordenboek hebben ook een url-alias voor een hoofdcategorie waar ze zich in bevinden. Een serie kun je het noemen. Hier wordt bepaald of het om de serie-url-alias gaat of om een daadwerkelijke paginanaam. */ function bevindzichopextra($soort, $pagina) { global $prefix, $keuzetabel, $template, $wmenuwoordenboek; if ($keuzetabel[$soort] == "paginas") { // selecteer alle serie-aliassen $sql = "SELECT malias FROM ".$prefix."_paginamenus WHERE themasite='$template'"; mysql_query("SET CHARACTER SET UTF8"); $resultmalias = mysql_query($sql); $arrmalias = array(); while ($rowmalias = mysql_fetch_array($resultmalias)) { $malias = uitvoerveld($rowmalias['malias']); $arrmalias[] = $malias; } if (!empty($pagina) AND in_array($pagina, $arrmalias)) { $bevindzichop = "seriestudies"; } else { $bevindzichop = "pagina"; } } elseif ($keuzetabel[$soort] == "woordenboek") { // selecteer alle serie-aliassen $sql = "SELECT walias FROM ".$prefix."_woordenboekpaginas WHERE themasite='$template'"; mysql_query("SET CHARACTER SET UTF8"); $resultmaliasw = mysql_query($sql); $arrmaliasw = array(); while ($rowmaliasw = mysql_fetch_array($resultmaliasw)) { $maliasw = uitvoerveld($rowmaliasw['walias']); $arrmaliasw[] = $maliasw; } if (!empty($pagina) AND in_array($pagina, $arrmaliasw)) { $bevindzichop = "seriewoordenboek"; } else { $bevindzichop = "pagina"; } } elseif ($keuzetabel[$soort] == "forum") { $bevindzichop = "forum"; } elseif ($keuzetabel[$soort] == "registreren") { $bevindzichop = "registreren"; } elseif ($keuzetabel[$soort] == "bewerkprofiel") { $bevindzichop = "bewerkprofiel"; } elseif ($keuzetabel[$soort] == "bekijkprofiel") { $bevindzichop = "bekijkprofiel"; } elseif ($keuzetabel[$soort] == "uitloggen") { $bevindzichop = "uitloggen"; } else { $bevindzichop = "pagina"; } return $bevindzichop; } /*_________________________________________Uitvoeren codeblok 1 of codeblok 2_______________________________________*/ //De variabelen $bevindzichop en $pagina worden bepaald // Bepaal $bevindzichop en $pagina als codeblok 1 uitgevoerd moet worden = Thema site if ($codeblok == 1) { if (isset($stukjes[3])) { // en $stukjes[3] de level of gelijk de soort //=> bepaal of $stukjes[3] de level of de soort is if (in_array("$stukjes[3]", $soorten)) { // zo ja dan is $stukjes[3] de soort $soort = $stukjes[3]; // na soort komt altijd de pagina dus $stukjes[4] is de pagina if (isset($stukjes[4])) { $pagina = $stukjes[4]; $bevindzichop = bevindzichopextra($soort, $pagina); if (isset($stukjes[5])) { $volgendepagina = volgendepagina($stukjes[5]); } else { $volgendepagina = 1; } if (isset($stukjes[5]) AND isfotoalbum($stukjes[4], $welofgeenpaginasmeerekenen=1) AND isafbeelding($stukjes[5])) { $bevindzichop = "fotoweergeven"; $naamfotoalbum = $stukjes[4]; $naamfoto = $stukjes[5]; } if ($bevindzichop == "forum") { $forumactie = $stukjes[4]; if (isset($stukjes[5])) { $forumid = $stukjes[5]; } } if ($bevindzichop == "registreren") { $registratienaam = $stukjes[4]; if (isset($stukjes[5])) { $registratiecode = $stukjes[5]; } } if ($bevindzichop == "bekijkprofiel") { $profielnaam = $stukjes[4]; } } else { if ($keuzetabel[$soort] == "forum") { $bevindzichop = "forum"; } elseif ($keuzetabel[$soort] == "registreren") { $bevindzichop = "registreren"; } elseif ($keuzetabel[$soort] == "bewerkprofiel") { $bevindzichop = "bewerkprofiel"; } elseif ($keuzetabel[$soort] == "bekijkprofiel") { $bevindzichop = "bekijkprofiel"; } elseif ($keuzetabel[$soort] == "uitloggen") { $bevindzichop = "uitloggen"; } else { $bevindzichop = "indexsoort"; } } } elseif ($multilevel == "ja" AND in_array("$stukjes[3]", $mlevels)) { $level = $stukjes[3]; // als $stukjes[3] het level is dan is $stukjes[4] de soort maar toch even controleren in geval van typefouten if (isset($stukjes[4])) { if (in_array("$stukjes[4]", $soorten)) { $soort = $stukjes[4]; // na soort komt altijd de pagina dus $stukjes[5] is de pagina if (isset($stukjes[5])) { $pagina = $stukjes[5]; $bevindzichop = bevindzichopextra($soort, $pagina); if (isset($stukjes[6])) { $volgendepagina = volgendepagina($stukjes[6]); } else { $volgendepagina = 1; } if (isset($stukjes[6]) AND isfotoalbum($stukjes[5], $welofgeenpaginasmeerekenen=1) AND isafbeelding($stukjes[6])) { $bevindzichop = "fotoweergeven"; $naamfotoalbum = $stukjes[5]; $naamfoto = $stukjes[6]; } if ($bevindzichop == "forum") { $forumactie = $stukjes[5]; if (isset($stukjes[6])) { $forumid = $stukjes[6]; } } if ($bevindzichop == "registreren") { $registratienaam = $stukjes[5]; if (isset($stukjes[6])) { $registratiecode = $stukjes[6]; } } if ($bevindzichop == "bekijkprofiel") { $profielnaam = $stukjes[5]; } } else { if ($keuzetabel[$soort] == "forum") { $bevindzichop = "forum"; } elseif ($keuzetabel[$soort] == "registreren") { $bevindzichop = "registreren"; } elseif ($keuzetabel[$soort] == "bewerkprofiel") { $bevindzichop = "bewerkprofiel"; } elseif ($keuzetabel[$soort] == "bekijkprofiel") { $bevindzichop = "bekijkprofiel"; } elseif ($keuzetabel[$soort] == "uitloggen") { $bevindzichop = "uitloggen"; } else { $bevindzichop = "indexsoort"; } } } else { $bevindzichop = "indexlevel"; } } else { $bevindzichop = "indexlevel"; } } else { $bevindzichop = "indexthemasite"; } } else { $bevindzichop = "indexthemasite"; } } // Bepaal $bevindzichop en $pagina als codeblok 1 uitgevoerd moet worden = Hoofdsite if ($codeblok == 2) { if (isset($stukjes[2])) { //=> bepaal of $stukjes[2] de level of de soort is if (in_array("$stukjes[2]", $soorten)) { // zo ja dan is $stukjes[2] de soort $soort = $stukjes[2]; // na soort komt altijd de pagina dus $stukjes[3] is de pagina if (isset($stukjes[3])) { $pagina = $stukjes[3]; $bevindzichop = bevindzichopextra($soort, $pagina); if (isset($stukjes[4])) { $volgendepagina = volgendepagina($stukjes[4]); } else { $volgendepagina = 1; } if (isset($stukjes[4]) AND isfotoalbum($stukjes[3], $welofgeenpaginasmeerekenen=1) AND isafbeelding($stukjes[4])) { $bevindzichop = "fotoweergeven"; $naamfotoalbum = $stukjes[3]; $naamfoto = $stukjes[4]; } if ($bevindzichop == "forum") { $forumactie = $stukjes[3]; if (isset($stukjes[4])) { $forumid = $stukjes[4]; } } if ($bevindzichop == "registreren") { $registratienaam = $stukjes[3]; if (isset($stukjes[4])) { $registratiecode = $stukjes[4]; } } if ($bevindzichop == "bekijkprofiel") { $profielnaam = $stukjes[3]; } } else { if ($keuzetabel[$soort] == "forum") { $bevindzichop = "forum"; } elseif ($keuzetabel[$soort] == "registreren") { $bevindzichop = "registreren"; } elseif ($keuzetabel[$soort] == "bewerkprofiel") { $bevindzichop = "bewerkprofiel"; } elseif ($keuzetabel[$soort] == "bekijkprofiel") { $bevindzichop = "bekijkprofiel"; } elseif ($keuzetabel[$soort] == "uitloggen") { $bevindzichop = "uitloggen"; } else { if (empty($stukjes[2])) { $bevindzichop = "indexhoofdsite"; } else { $bevindzichop = "indexsoort"; } } } } else { // zo niet dan is $stukjes[2] het level of er is een typefout gemaakt dus toch controleren of het een level is if ($multilevel == "ja" AND in_array("$stukjes[2]", $mlevels)) { $level = $stukjes[2]; // als $stukjes[2] het level is dan is $stukjes[3] de soort maar toch even controleren in geval van typefouten if (isset($stukjes[3])) { if (in_array("$stukjes[3]", $soorten)) { $soort = $stukjes[3]; // na soort komt altijd de pagina dus $stukjes[4] is de pagina if (isset($stukjes[4])) { $pagina = $stukjes[4]; $bevindzichop = bevindzichopextra($soort, $pagina); if (isset($stukjes[5])) { $volgendepagina = volgendepagina($stukjes[5]); } else { $volgendepagina = 1; } if (isset($stukjes[5]) AND isfotoalbum($stukjes[4], $welofgeenpaginasmeerekenen=1) AND isafbeelding($stukjes[5])) { $bevindzichop = "fotoweergeven"; $naamfotoalbum = $stukjes[4]; $naamfoto = $stukjes[5]; } if ($bevindzichop == "forum") { $forumactie = $stukjes[4]; if (isset($stukjes[5])) { $forumid = $stukjes[5]; } } if ($bevindzichop == "registreren") { $registratienaam = $stukjes[4]; if (isset($stukjes[5])) { $registratiecode = $stukjes[5]; } } if ($bevindzichop == "bekijkprofiel") { $profielnaam = $stukjes[4]; } } else { if ($keuzetabel[$soort] == "forum") { $bevindzichop = "forum"; } elseif ($keuzetabel[$soort] == "registreren") { $bevindzichop = "registreren"; } elseif ($keuzetabel[$soort] == "bewerkprofiel") { $bevindzichop = "bewerkprofiel"; } elseif ($keuzetabel[$soort] == "bekijkprofiel") { $bevindzichop = "bekijkprofiel"; } elseif ($keuzetabel[$soort] == "uitloggen") { $bevindzichop = "uitloggen"; } else { $bevindzichop = "indexsoort"; } } } else { $bevindzichop = "indexlevel"; } } else { $bevindzichop = "indexlevel"; } } else{ $bevindzichop = "indexhoofdsite"; } } } else { $bevindzichop = "indexhoofdsite"; } } /*__________________________________________________________________________________________________________________*/ // Failsafes // Controle ongeldige paginanamen. // Pagina mag alleen letters en cijfers bevatten en _ en - bevatten, verder niks (muv regex2 - zie security.php) if (isset($pagina)) { if (preg_match("/[^a-zA-Z0-9\._-]+/",$pagina) AND !preg_match($regex2, $pagina)) { // redirect naar index header( 'refresh: 0; url='.$abspad); die(); } // De paginanaam (= url-alias) is nooit langer dan 25 tekens if (strlen($pagina) > 25) { $bevindzichop = "indexhoofdsite"; } } if (stristr($locatie, "//")) { // $bevindzichop = "indexthemasite"; $bevindzichop = "indexhoofdsite"; } /* Ingebouwde controle als je vergeten bent een alias voor soort op te geven dus een alias voor bijvoorbeeld pagina's, weblog enz */ if (!empty($soort)) { $selecttabel = $keuzetabel[$soort]; } else { $selecttabel = ''; } /*__________________________________________________________________________________________________________________*/ ?>