diff options
author | MaZderMind | 2015-11-08 16:31:29 +0100 |
---|---|---|
committer | MaZderMind | 2015-11-08 16:31:29 +0100 |
commit | 0d91cc5f111fac882f1bb375c2bf426195c9cae2 (patch) | |
tree | 255e2f352f204fac8090cc837287167d3714f600 | |
parent | a0b2129479ba10561811847c0651df8b55c8a6ba (diff) |
finish overview-page
-rw-r--r-- | assets/css/_allconferences.less | 25 | ||||
-rw-r--r-- | assets/css/_structure.less | 1 | ||||
-rw-r--r-- | configs/conferences/31c3/main.less | 21 | ||||
-rw-r--r-- | index.php | 31 | ||||
-rw-r--r-- | model/Conferences.php | 32 | ||||
-rw-r--r-- | template/about.phtml | 2 | ||||
-rw-r--r-- | template/allconferences.phtml | 33 | ||||
-rw-r--r-- | view/allconferences.php | 8 |
8 files changed, 128 insertions, 25 deletions
diff --git a/assets/css/_allconferences.less b/assets/css/_allconferences.less new file mode 100644 index 0000000..d8a14aa --- /dev/null +++ b/assets/css/_allconferences.less @@ -0,0 +1,25 @@ +body.allconferences { + text-align: center; + + .conference { + a { + font-size: @jumbo-font-size; + line-height: @jumbo-line-height; + + @media (max-width: @screen-xs-min) { + font-size: @jumbo-font-size-xs; + } + + display: block; + text-align: center; + + &:hover { + text-decoration: none; + } + } + + p { + margin-top: @line-height-computed; + } + } +} diff --git a/assets/css/_structure.less b/assets/css/_structure.less index 2082e38..d6e4257 100644 --- a/assets/css/_structure.less +++ b/assets/css/_structure.less @@ -88,3 +88,4 @@ body { @import "_closed.less"; @import "_embed.less"; @import "_feedback.less"; +@import "_allconferences.less"; diff --git a/configs/conferences/31c3/main.less b/configs/conferences/31c3/main.less new file mode 100644 index 0000000..a60d3b4 --- /dev/null +++ b/configs/conferences/31c3/main.less @@ -0,0 +1,21 @@ +@import "../../../assets/css/_structure.less"; + +// conference specific styles here + +// often configured values (and their defaults): +// +// @brand-primary: #337ab7; +// @text-color: @gray-dark; +// +// @link-color: @brand-primary; +// @link-hover-color: darken(@link-color, 15%); +// +// @navbar-default-color: #777777; +// @navbar-default-bg: #f8f8f8; +// +// @navbar-default-link-color: #777; +// @navbar-default-link-hover-color: #333; + +body { + background-color: red; +} @@ -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); diff --git a/model/Conferences.php b/model/Conferences.php index 9f87388..10a3172 100644 --- a/model/Conferences.php +++ b/model/Conferences.php @@ -5,9 +5,16 @@ class Conferences extends ModelBase const MANDATOR_DIR = 'configs/conferences/'; public static function getConferences() { - return array_values(array_filter(scandir(forceslash(Conferences::MANDATOR_DIR)), function($el) { - return $el[0] != '.'; - })); + $conferences = []; + foreach(scandir(forceslash(Conferences::MANDATOR_DIR)) as $el) + { + if($el[0] == '.') + continue; + + $conferences[$el] = Conferences::getConferenceInformation($el); + } + + return $conferences; } public static function getConferencesCount() { return count(Conferences::getConferences()); @@ -15,7 +22,10 @@ class Conferences extends ModelBase public static function getActiveConferences() { return array_values(array_filter( - Conferences::getConferences(), ['Conferences', 'isActive'] + Conferences::getConferences(), + function($info) { + return $info['active']; + } )); } @@ -24,22 +34,28 @@ class Conferences extends ModelBase } public static function exists($mandator) { - return in_array($mandator, Conferences::getConferences()); + return array_key_exists($mandator, Conferences::getConferences()); } - public static function isActive($mandator) { + public static function getConferenceInformation($mandator) { if(isset($GLOBALS['CONFIG'])) $saved_config = $GLOBALS['CONFIG']; Conferences::load($mandator); $conf = new Conference(); - $active = !$conf->isClosed(); + $info = [ + 'slug' => $mandator, + 'link' => forceslash($mandator), + 'active' => !$conf->isClosed(), + 'title' => $conf->getTitle(), + 'description' => $conf->getDescription(), + ]; unset($GLOBALS['CONFIG']); if(isset($saved_config)) $GLOBALS['CONFIG'] = $saved_config; - return $active; + return $info; } public static function hasCustomStyles($mandator) { diff --git a/template/about.phtml b/template/about.phtml index 68aa2fb..eee4896 100644 --- a/template/about.phtml +++ b/template/about.phtml @@ -6,7 +6,7 @@ <p> If you like what we're doing, you can flattr us:<br /><br /> <a href="https://flattr.com/thing/3755795/"> - <img src="assets/img/flattrbutton.png" alt="Flattr this" /> + <img src="<?=h($assets)?>/img/flattrbutton.png" alt="Flattr this" /> </a> </p> diff --git a/template/allconferences.phtml b/template/allconferences.phtml new file mode 100644 index 0000000..2d47b82 --- /dev/null +++ b/template/allconferences.phtml @@ -0,0 +1,33 @@ +<div class="container"> + <h1><?=h($title)?></h1> + <p>We are currently active on multiple Conferences. Please choose which one you want access.</p> + + <br><br> + + <div class="row clearfix"> + <? $count = count($conferences) ?> + <? foreach($conferences as $idx => $info): ?> + <? + // when we have more then 3 conferences, all but the last 3 will be displayed with 1/3 width + if($count - $idx <= ($count % 3)) + $w = 12/($count%3); + else + $w = 12/3; + ?> + + <div class=" + clearfix + conference + col-xs-12 + col-md-<?=h($w)?> + "> + <div class="panel panel-default"> + <div class="panel-body"> + <a href="<?=h($info['link'])?>"><?=h($info['title'])?></a> + <p><?=h($info['description'])?></p> + </div> + </div> + </div> + <? endforeach ?> + </div> +</div> diff --git a/view/allconferences.php b/view/allconferences.php new file mode 100644 index 0000000..8cce073 --- /dev/null +++ b/view/allconferences.php @@ -0,0 +1,8 @@ +<?php + +echo $tpl->render(array( + 'page' => 'allconferences', + 'title' => 'Multiple Conferences', + + 'conferences' => Conferences::getActiveConferences(), +)); |