diff options
Diffstat (limited to 'index.php')
-rw-r--r-- | index.php | 88 |
1 files changed, 55 insertions, 33 deletions
@@ -1,7 +1,10 @@ <?php if(!ini_get('short_open_tag')) - die('`short_open_tag = On` is required'); + die("`short_open_tag = On` is required\n"); + +$GLOBALS['BASEDIR'] = dirname(__FILE__); +chdir($GLOBALS['BASEDIR']); require_once('config.php'); require_once('lib/helper.php'); @@ -27,6 +30,22 @@ require_once('model/Upcoming.php'); ob_start(); +if(isset($argv) && isset($argv[1])) +{ + require('lib/command-helper.php'); + + switch($argv[1]) + { + case 'download': + require('command/download.php'); + exit(0); + } + + stderr("Unknown Command: %s", $argv[1]); + exit(1); +} + + try { if(isset($_GET['htaccess'])) { @@ -59,7 +78,8 @@ try { 'route' => $route, 'canonicalurl' => forceslash(baseurl()).forceslash($route), 'assemblies' => 'template/assemblies/', - 'assets' => 'assets/', + 'assets' => forceslash('assets'), + 'conference_assets' => '/', 'conference' => new GenericConference(), )); @@ -113,7 +133,7 @@ try { // redirect $clients = Conferences::getActiveConferences(); - header('Location: '.forceslash( baseurl() . $clients[0]['link'] )); + header('Location: '.joinpath([baseurl(), $clients[0]->getSlug()])); exit; } else @@ -132,36 +152,43 @@ try { require('view/404.php'); exit; } - - Conferences::load($mandator); + else { + // fallthrough through to the main mandator-based routes + } } catch(Exception $e) { ob_clean(); - require('view/500.php'); + try { + require('view/500.php'); + exit; + } + catch(Exception $e) { + header("HTTP/1.1 500 Internal Server Error"); + header("Content-Type: text/plain"); + print_r($e); + exit; + } } - // PER-CONFERENCE CODE -$GLOBALS['MANDATOR'] = $mandator; -$conference = new Conference(); - -// update template information -$tpl->set(array( - 'baseurl' => forceslash(baseurl()), - 'route' => $route, - 'canonicalurl' => forceslash(baseurl()).forceslash($route), - 'assets' => '../assets/', - - 'conference' => $conference, - 'feedback' => new Feedback(), - 'schedule' => new Schedule(), - 'subtitles' => new Subtitles(), -)); - ob_start(); try { + $conference = Conferences::getConference($mandator); + + // update template information + $tpl->set(array( + 'baseurl' => forceslash(baseurl()), + 'route' => $route, + 'canonicalurl' => joinpath([baseurl(), $mandator, $route]), + 'conference_assets' => forceslash($mandator), + + 'conference' => $conference, + 'feedback' => $conference->getFeedback(), + 'schedule' => $conference->getSchedule(), + 'subtitles' => $conference->getSubtitles(), + )); // ALWAYS AVAILABLE ROUTES if($route == 'feedback/read') @@ -169,11 +196,6 @@ try { require('view/feedback-read.php'); } - else if($route == 'schedule.json') - { - require('view/schedule-json.php'); - } - else if($route == 'gen/main.css') { if(Conferences::hasCustomStyles($mandator)) @@ -204,6 +226,11 @@ try { require('view/multiview.php'); } + else if($route == 'about') + { + require('view/about.php'); + } + // HAS-NOT-BEGUN VIEW else if(!$conference->hasBegun()) { @@ -237,11 +264,6 @@ try { require('view/overview.php'); } - else if($route == 'about') - { - require('view/about.php'); - } - else if($route == 'feedback') { require('view/feedback.php'); |