5 * @author Jan Altensen (Stricted)
6 * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
7 * @copyright 2013-2015 Jan Altensen (Stricted)
13 public function __construct ($module = '') {
15 $pages = glob(DNS_DIR
.'/lib/'.(empty($module) ?
'' : $module.'/').'page/*Page.class.php');
16 if (isset($_GET["page"]) && !empty($_GET["page"])) {
17 if (strtolower($_GET["page"]) != "abstract") {
18 foreach ($pages as $page) {
19 $page = str_replace('Page.class.php', '', basename($page));
20 if (strtolower($_GET["page"]) == strtolower($page)) {
21 $class = "\\dns".(empty($module) ?
'' : "\\".$module)."\\page\\".$page."Page";
22 if (class_exists($class) && is_subclass_of($class, '\\dns\\page\\AbstractPage')) {
31 $className = '\\dns'.(empty($module) ?
'' : '\\'.$module).'\\page\\IndexPage';
34 if (!User
::isLoggedIn() && $className != '\dns\page\LoginPage' && $className != '\dns\page\ApiPage') {
35 DNS
::getTPL()->display('login.tpl');
39 if (DNS
::getSession()->username
!== null) {
40 DNS
::getTPL()->assign(array("username" => DNS
::getSession()->username
));
43 if (empty($className)) {
44 @header
('HTTP/1.0 404 Not Found');
45 DNS
::getTPL()->assign(array("activeMenuItem" => '', "error" => 'The link you are trying to reach is no longer available or invalid.'));
46 DNS
::getTPL()->display('error.tpl');
50 // handle offline mode
51 if (defined('OFFLINE') && OFFLINE
) {
52 $admin = User
::isAdmin();
55 if (defined($className . '::AVAILABLE_DURING_OFFLINE_MODE') && constant($className . '::AVAILABLE_DURING_OFFLINE_MODE')) {
59 if (!$admin && !$available) {
60 @header
('HTTP/1.1 503 Service Unavailable');
61 DNS
::getTPL()->display('offline.tpl');
69 catch (\Exception
$e) {
70 if ($e->getCode() == 404) {
71 @header
('HTTP/1.0 404 Not Found');
73 else if ($e->getCode() == 403) {
74 @header
('HTTP/1.0 403 Forbidden');
78 DNS
::getTPL()->assign(array("activeMenuItem" => '', "error" => $e->getMessage()));
79 DNS
::getTPL()->display('error.tpl');