aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaZderMind2015-11-08 16:31:29 +0100
committerMaZderMind2015-11-08 16:31:29 +0100
commit0d91cc5f111fac882f1bb375c2bf426195c9cae2 (patch)
tree255e2f352f204fac8090cc837287167d3714f600
parenta0b2129479ba10561811847c0651df8b55c8a6ba (diff)
finish overview-page
Diffstat (limited to '')
-rw-r--r--assets/css/_allconferences.less25
-rw-r--r--assets/css/_structure.less1
-rw-r--r--configs/conferences/31c3/main.less21
-rw-r--r--index.php31
-rw-r--r--model/Conferences.php32
-rw-r--r--template/about.phtml2
-rw-r--r--template/allconferences.phtml33
-rw-r--r--view/allconferences.php8
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;
+}
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);
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(),
+));