From 4c52028f555c361c232cbee166fa62522c66af5b Mon Sep 17 00:00:00 2001 From: MaZderMind Date: Fri, 6 Nov 2015 16:45:55 +0100 Subject: experimental multi-client capability --- index.php | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 51 insertions(+), 5 deletions(-) (limited to 'index.php') diff --git a/index.php b/index.php index ccdd77b..0a527d4 100644 --- a/index.php +++ b/index.php @@ -4,7 +4,56 @@ if(!ini_get('short_open_tag')) die('`short_open_tag = On` is required'); require_once('lib/helper.php'); -require_once('config.php'); + +$route = @$_GET['route']; +$route = rtrim($route, '/'); + +if($route == '') +{ + // list of clients + $clients = array_values(array_filter(array_map(function($file) + { + $info = pathinfo($file); + + if($info['extension'] == 'php') + return $info['filename']; + + }, scandir('configs/clients/')))); + + + if(count($clients) == 0) + { + // no clients + // error + + die('no clients'); + } + else if(count($clients) == 1) + { + // one client + // redirect + + header('Location: '.baseurl().$clients[0].'/'); + exit; + } + else + { + // multiple clients + // show overview + + // TODO Template + print_r($clients); + exit; + } +} +else +{ + list($client, $route) = explode('/', $route, 2); + + $GLOBALS['CLIENT'] = $client; + require_once('configs/clients/'.$client.'.php'); +} + require_once('lib/PhpTemplate.php'); require_once('lib/Exceptions.php'); @@ -22,9 +71,6 @@ require_once('model/Stream.php'); require_once('model/Relive.php'); require_once('model/Upcoming.php'); -$route = @$_GET['route']; -$route = rtrim($route, '/'); - $conference = new Conference(); $tpl = new PhpTemplate('template/page.phtml'); @@ -71,7 +117,7 @@ try { $dir = forceslash(sys_get_temp_dir()); $css_file = Less_Cache::Get([ - 'assets/css/main.less' => '../assets/css/', + 'assets/css/main.less' => '../../assets/css/', ], [ 'sourceMap' => true, 'compress' => true, -- cgit v1.2.3 From efe1f83a7cc419df700dfe36ef11da20607d8eae Mon Sep 17 00:00:00 2001 From: MaZderMind Date: Sun, 8 Nov 2015 14:40:30 +0100 Subject: implement mandator handling, supporting different styles per mandantor --- index.php | 106 +++++++++++++++++++++++++++++++------------------------------- 1 file changed, 53 insertions(+), 53 deletions(-) (limited to 'index.php') diff --git a/index.php b/index.php index 0a527d4..f12d914 100644 --- a/index.php +++ b/index.php @@ -5,35 +5,47 @@ if(!ini_get('short_open_tag')) require_once('lib/helper.php'); -$route = @$_GET['route']; -$route = rtrim($route, '/'); +require_once('lib/PhpTemplate.php'); +require_once('lib/Exceptions.php'); +require_once('lib/less.php/Less.php'); -if($route == '') -{ - // list of clients - $clients = array_values(array_filter(array_map(function($file) - { - $info = pathinfo($file); +require_once('model/ModelBase.php'); +require_once('model/Conferences.php'); +require_once('model/Conference.php'); +require_once('model/Feedback.php'); +require_once('model/Schedule.php'); +require_once('model/Overview.php'); +require_once('model/Room.php'); +require_once('model/RoomTab.php'); +require_once('model/RoomSelection.php'); +require_once('model/Stream.php'); +require_once('model/Relive.php'); +require_once('model/Upcoming.php'); - if($info['extension'] == 'php') - return $info['filename']; - }, scandir('configs/clients/')))); +$route = @$_GET['route']; +$route = rtrim($route, '/'); +@list($mandator, $route) = explode('/', $route, 2); +if(!$mandator) +{ + // root requested - if(count($clients) == 0) + if(Conferences::getActiveConferencesCount() == 0) { // no clients // error - die('no clients'); + var_dump('no clients'); + exit; } - else if(count($clients) == 1) + else if(Conferences::getActiveConferencesCount() == 1) { // one client // redirect - header('Location: '.baseurl().$clients[0].'/'); + $clients = Conferences::getActiveConferences(); + header('Location: '.forceslash( baseurl() . $clients[0] )); exit; } else @@ -42,35 +54,23 @@ if($route == '') // show overview // TODO Template - print_r($clients); + $clients = Conferences::getActiveConferences(); + var_dump('multiple clients'); + var_dump($clients); exit; } } -else +else if(!Conferences::exists($mandator)) { - list($client, $route) = explode('/', $route, 2); - - $GLOBALS['CLIENT'] = $client; - require_once('configs/clients/'.$client.'.php'); + // old url OR wrong client OR + // -> error + die('unknown conference '.$mandator); } +Conferences::load($mandator); -require_once('lib/PhpTemplate.php'); -require_once('lib/Exceptions.php'); -require_once('lib/less.php/Less.php'); - -require_once('model/ModelBase.php'); -require_once('model/Conference.php'); -require_once('model/Feedback.php'); -require_once('model/Schedule.php'); -require_once('model/Overview.php'); -require_once('model/Room.php'); -require_once('model/RoomTab.php'); -require_once('model/RoomSelection.php'); -require_once('model/Stream.php'); -require_once('model/Relive.php'); -require_once('model/Upcoming.php'); +// PER-CONFERENCE CODE $conference = new Conference(); $tpl = new PhpTemplate('template/page.phtml'); @@ -96,7 +96,7 @@ if(startswith('//', @$GLOBALS['CONFIG']['BASEURL'])) ob_start(); try { - + // ALWAYS AVAILABLE ROUTES if($route == 'feedback/read') { require('view/feedback-read.php'); @@ -114,29 +114,25 @@ try { else if($route == 'gen/main.css') { - $dir = forceslash(sys_get_temp_dir()); - - $css_file = Less_Cache::Get([ - 'assets/css/main.less' => '../../assets/css/', - ], [ - 'sourceMap' => true, - 'compress' => true, - 'relativeUrls' => true, - - 'cache_dir' => $dir, - ]); - - $css = file_get_contents($dir.$css_file); - header('Content-Type: text/css'); - header('Content-Length: '.strlen($css)); - print($css); + if(Conferences::hasCustomStyles($mandator)) + { + handle_lesscss_request( + Conferences::getCustomStyles($mandator), + '../../'.Conferences::getCustomStylesDir($mandator) + ); + } + else { + handle_lesscss_request('assets/css/main.less', '../../assets/css/'); + } } + // HAS-NOT-BEGUN VIEW else if(!$conference->hasBegun()) { require('view/not-started.php'); } + // ROUTES AVAILABLE AFTER BUT NOT BEFORE THE CONFERENCE else if(preg_match('@^relive/([0-9]+)$@', $route, $m)) { $_GET = array( @@ -150,11 +146,14 @@ try { require('view/relive.php'); } + + // HAS-ENDED VIEW else if($conference->hasEnded()) { require('view/closed.php'); } + // ROUTES AVAILABLE ONLY DURING THE CONFERENCE else if($route == '') { require('view/overview.php'); @@ -226,6 +225,7 @@ try { require('view/embed.php'); } + // UNKNOWN ROUTE else { throw new NotFoundException(); -- cgit v1.2.3 From a0b2129479ba10561811847c0651df8b55c8a6ba Mon Sep 17 00:00:00 2001 From: MaZderMind Date: Sun, 8 Nov 2015 15:15:53 +0100 Subject: Support an All-Conference-Closed Screen and mutliple Schedules & Relive-URLs --- index.php | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'index.php') diff --git a/index.php b/index.php index f12d914..cdd58a7 100644 --- a/index.php +++ b/index.php @@ -12,6 +12,7 @@ require_once('lib/less.php/Less.php'); require_once('model/ModelBase.php'); require_once('model/Conferences.php'); require_once('model/Conference.php'); +require_once('model/GenericConference.php'); require_once('model/Feedback.php'); require_once('model/Schedule.php'); require_once('model/Overview.php'); @@ -26,17 +27,35 @@ require_once('model/Upcoming.php'); $route = @$_GET['route']; $route = rtrim($route, '/'); +// GLOBAL CSS (for conferences overview) +if($route == 'gen/main.css') +{ + handle_lesscss_request('assets/css/main.less', '../assets/css/'); + exit; +} + @list($mandator, $route) = explode('/', $route, 2); if(!$mandator) { // root requested + $tpl = new PhpTemplate('template/page.phtml'); + $tpl->set(array( + 'baseurl' => forceslash(baseurl()), + 'route' => $route, + 'canonicalurl' => forceslash(baseurl()).forceslash($route), + 'assemblies' => './template/assemblies/', + 'assets' => 'assets/', + + 'conference' => new GenericConference(), + )); + if(Conferences::getActiveConferencesCount() == 0) { // no clients // error - var_dump('no clients'); + require('view/allclosed.php'); exit; } else if(Conferences::getActiveConferencesCount() == 1) @@ -79,6 +98,7 @@ $tpl->set(array( 'route' => $route, 'canonicalurl' => forceslash(baseurl()).forceslash($route), 'assemblies' => './template/assemblies/', + 'assets' => '../assets/', 'conference' => $conference, 'feedback' => new Feedback(), -- cgit v1.2.3 From 0d91cc5f111fac882f1bb375c2bf426195c9cae2 Mon Sep 17 00:00:00 2001 From: MaZderMind Date: Sun, 8 Nov 2015 16:31:29 +0100 Subject: finish overview-page --- index.php | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) (limited to 'index.php') diff --git a/index.php b/index.php index cdd58a7..a26f391 100644 --- a/index.php +++ b/index.php @@ -34,22 +34,23 @@ if($route == 'gen/main.css') exit; } +// generic template +$tpl = new PhpTemplate('template/page.phtml'); +$tpl->set(array( + 'baseurl' => forceslash(baseurl()), + 'route' => $route, + 'canonicalurl' => forceslash(baseurl()).forceslash($route), + 'assemblies' => './template/assemblies/', + 'assets' => 'assets/', + + 'conference' => new GenericConference(), +)); + @list($mandator, $route) = explode('/', $route, 2); if(!$mandator) { // root requested - $tpl = new PhpTemplate('template/page.phtml'); - $tpl->set(array( - 'baseurl' => forceslash(baseurl()), - 'route' => $route, - 'canonicalurl' => forceslash(baseurl()).forceslash($route), - 'assemblies' => './template/assemblies/', - 'assets' => 'assets/', - - 'conference' => new GenericConference(), - )); - if(Conferences::getActiveConferencesCount() == 0) { // no clients @@ -72,10 +73,7 @@ if(!$mandator) // multiple clients // show overview - // TODO Template - $clients = Conferences::getActiveConferences(); - var_dump('multiple clients'); - var_dump($clients); + require('view/allconferences.php'); exit; } } @@ -83,7 +81,8 @@ else if(!Conferences::exists($mandator)) { // old url OR wrong client OR // -> error - die('unknown conference '.$mandator); + require('view/404.php'); + exit; } Conferences::load($mandator); -- cgit v1.2.3 From aec65f8a241d3810d5e7a029f861bc6090b65cb9 Mon Sep 17 00:00:00 2001 From: MaZderMind Date: Sun, 8 Nov 2015 17:17:16 +0100 Subject: better exception-handling in mandator-code --- index.php | 104 ++++++++++++++++++++++++++++++++++---------------------------- 1 file changed, 57 insertions(+), 47 deletions(-) (limited to 'index.php') diff --git a/index.php b/index.php index a26f391..b7fe5da 100644 --- a/index.php +++ b/index.php @@ -24,71 +24,81 @@ require_once('model/Relive.php'); require_once('model/Upcoming.php'); -$route = @$_GET['route']; -$route = rtrim($route, '/'); - -// GLOBAL CSS (for conferences overview) -if($route == 'gen/main.css') -{ - handle_lesscss_request('assets/css/main.less', '../assets/css/'); - exit; -} +ob_start(); +try { + $route = @$_GET['route']; + $route = rtrim($route, '/'); -// generic template -$tpl = new PhpTemplate('template/page.phtml'); -$tpl->set(array( - 'baseurl' => forceslash(baseurl()), - 'route' => $route, - 'canonicalurl' => forceslash(baseurl()).forceslash($route), - 'assemblies' => './template/assemblies/', - 'assets' => 'assets/', + // GLOBAL CSS (for conferences overview) + if($route == 'gen/main.css') + { + handle_lesscss_request('assets/css/main.less', '../assets/css/'); + exit; + } - 'conference' => new GenericConference(), -)); + // generic template + $tpl = new PhpTemplate('template/page.phtml'); + $tpl->set(array( + 'baseurl' => forceslash(baseurl()), + 'route' => $route, + 'canonicalurl' => forceslash(baseurl()).forceslash($route), + 'assemblies' => './template/assemblies/', + 'assets' => 'assets/', -@list($mandator, $route) = explode('/', $route, 2); -if(!$mandator) -{ - // root requested + 'conference' => new GenericConference(), + )); - if(Conferences::getActiveConferencesCount() == 0) + @list($mandator, $route) = explode('/', $route, 2); + if(!$mandator) { - // no clients - // error + // root requested - require('view/allclosed.php'); - exit; - } - else if(Conferences::getActiveConferencesCount() == 1) - { - // one client - // redirect + if(Conferences::getActiveConferencesCount() == 0) + { + // no clients + // error - $clients = Conferences::getActiveConferences(); - header('Location: '.forceslash( baseurl() . $clients[0] )); - exit; + require('view/allclosed.php'); + exit; + } + else if(Conferences::getActiveConferencesCount() == 1) + { + // one client + // redirect + + $clients = Conferences::getActiveConferences(); + header('Location: '.forceslash( baseurl() . $clients[0]['link'] )); + exit; + } + else + { + // multiple clients + // show overview + + require('view/allconferences.php'); + exit; + } } - else + else if(!Conferences::exists($mandator)) { - // multiple clients - // show overview - - require('view/allconferences.php'); + // old url OR wrong client OR + // -> error + require('view/404.php'); exit; } + + Conferences::load($mandator); } -else if(!Conferences::exists($mandator)) +catch(Exception $e) { - // old url OR wrong client OR - // -> error - require('view/404.php'); - exit; + ob_clean(); + require('view/500.php'); } -Conferences::load($mandator); // PER-CONFERENCE CODE +$GLOBALS['MANDATOR'] = $mandator; $conference = new Conference(); $tpl = new PhpTemplate('template/page.phtml'); -- cgit v1.2.3 From 61c9cf52b0c015951351b47148cdecb47c680bfa Mon Sep 17 00:00:00 2001 From: MaZderMind Date: Sun, 8 Nov 2015 20:36:34 +0100 Subject: global streams api --- index.php | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'index.php') diff --git a/index.php b/index.php index b7fe5da..c3199ee 100644 --- a/index.php +++ b/index.php @@ -29,13 +29,21 @@ try { $route = @$_GET['route']; $route = rtrim($route, '/'); - // GLOBAL CSS (for conferences overview) + // GLOBAL ROUTES if($route == 'gen/main.css') { + // global css (for conferences overview) handle_lesscss_request('assets/css/main.less', '../assets/css/'); exit; } + else if($route == 'streams/v1.json') + { + require('view/streams-json-v1.php'); + exit; + } + + // generic template $tpl = new PhpTemplate('template/page.phtml'); $tpl->set(array( @@ -136,11 +144,6 @@ try { require('view/schedule-json.php'); } - else if($route == 'streams/v1.json') - { - require('view/streams-json-v1.php'); - } - else if($route == 'gen/main.css') { if(Conferences::hasCustomStyles($mandator)) -- cgit v1.2.3 From a16d784ae8bb17db0cdb276ea0fc886965d069a6 Mon Sep 17 00:00:00 2001 From: MaZderMind Date: Tue, 10 Nov 2015 18:53:33 +0100 Subject: fix ssl-links in multi-mandator-mode --- index.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'index.php') diff --git a/index.php b/index.php index c3199ee..f9e416f 100644 --- a/index.php +++ b/index.php @@ -125,8 +125,8 @@ $tpl->set(array( if(startswith('//', @$GLOBALS['CONFIG']['BASEURL'])) { $tpl->set(array( - 'httpsurl' => forceslash('https:'.$GLOBALS['CONFIG']['BASEURL']).forceslash($route), - 'httpurl' => forceslash('http:'. $GLOBALS['CONFIG']['BASEURL']).forceslash($route), + 'httpsurl' => forceslash(forceslash('https:'.$GLOBALS['CONFIG']['BASEURL']).@$GLOBALS['MANDATOR']).forceslash($route), + 'httpurl' => forceslash(forceslash('http:'. $GLOBALS['CONFIG']['BASEURL']).@$GLOBALS['MANDATOR']).forceslash($route), )); } -- cgit v1.2.3