aboutsummaryrefslogtreecommitdiff
path: root/model
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--model/Conferences.php77
-rw-r--r--model/GenericConference.php67
-rw-r--r--model/Room.php2
3 files changed, 145 insertions, 1 deletions
diff --git a/model/Conferences.php b/model/Conferences.php
new file mode 100644
index 0000000..9396a48
--- /dev/null
+++ b/model/Conferences.php
@@ -0,0 +1,77 @@
+<?php
+
+class Conferences extends ModelBase
+{
+ const MANDATOR_DIR = 'configs/conferences/';
+
+ public static function getConferences() {
+ $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());
+ }
+
+ public static function getActiveConferences() {
+ return array_values(array_filter(
+ Conferences::getConferences(),
+ function($info) {
+ return $info['active'];
+ }
+ ));
+ }
+
+ public static function getActiveConferencesCount() {
+ return count(Conferences::getActiveConferences());
+ }
+
+ public static function exists($mandator) {
+ return array_key_exists($mandator, Conferences::getConferences());
+ }
+
+ public static function getConferenceInformation($mandator) {
+ if(isset($GLOBALS['CONFIG']))
+ $saved_config = $GLOBALS['CONFIG'];
+
+ Conferences::load($mandator);
+ $conf = new Conference();
+ $info = [
+ 'slug' => $mandator,
+ 'link' => forceslash($mandator),
+ 'active' => !$conf->isClosed(),
+ 'title' => $conf->getTitle(),
+ 'description' => $conf->getDescription(),
+
+ 'CONFIG' => $GLOBALS['CONFIG'],
+ ];
+ unset($GLOBALS['CONFIG']);
+
+ if(isset($saved_config))
+ $GLOBALS['CONFIG'] = $saved_config;
+
+ return $info;
+ }
+
+ public static function hasCustomStyles($mandator) {
+ return file_exists(Conferences::getCustomStyles($mandator));
+ }
+ public static function getCustomStyles($mandator) {
+ return forceslash(Conferences::getCustomStylesDir($mandator)).'main.less';
+ }
+ public static function getCustomStylesDir($mandator) {
+ return forceslash(Conferences::MANDATOR_DIR).forceslash($mandator);
+ }
+
+ public static function load($mandator) {
+ include(forceslash(Conferences::MANDATOR_DIR).forceslash($mandator).'config.php');
+ return isset($GLOBALS['CONFIG']);
+ }
+}
diff --git a/model/GenericConference.php b/model/GenericConference.php
new file mode 100644
index 0000000..949766f
--- /dev/null
+++ b/model/GenericConference.php
@@ -0,0 +1,67 @@
+<?php
+
+class GenericConference extends Conference
+{
+ public function getTitle() {
+ return 'C3Voc Streaming';
+ }
+
+ public function hasBegun() {
+ return true;
+ }
+
+ public function hasEnded() {
+ return true;
+ }
+
+ public function hasAuthor() {
+ return true;
+ }
+ public function getAuthor() {
+ return 'C3Voc';
+ }
+
+ public function hasDescription() {
+ return true;
+ }
+ public function getDescription() {
+ return 'Video Live-Streaming of the CCC';
+ }
+
+ public function hasKeywords() {
+ return true;
+ }
+ public function getKeywords() {
+ return 'Video, Media, Streaming, VOC, C3Voc, CCC';
+ }
+
+
+
+ public function hasReleases() {
+ return true;
+ }
+ public function getReleasesUrl() {
+ return '//media.ccc.de/';
+ }
+
+ public function hasRelive() {
+ return false;
+ }
+ public function getReliveUrl() {
+ return null;
+ }
+
+ public function hasBannerHtml() {
+ return false;
+ }
+ public function getBannerHtml() {
+ return null;
+ }
+
+ public function hasFooterHtml() {
+ return false;
+ }
+ public function getFooterHtml() {
+ return null;
+ }
+}
diff --git a/model/Room.php b/model/Room.php
index 6e37043..124d057 100644
--- a/model/Room.php
+++ b/model/Room.php
@@ -43,7 +43,7 @@ class Room extends ModelBase
}
public function getThumb() {
- return 'thumbs/'.$this->getStream().'.png';
+ return '../thumbs/'.$this->getStream().'.png';
}
public function getLink() {