diff options
Diffstat (limited to '')
-rw-r--r-- | configs/conferences/gpn17/background.png | bin | 0 -> 3024 bytes | |||
-rw-r--r-- | configs/conferences/gpn17/config.php | 510 | ||||
-rw-r--r-- | configs/conferences/gpn17/gema-nach-hause.html | 53 | ||||
-rw-r--r-- | configs/conferences/gpn17/gema-nach-hause.js | 36 | ||||
-rw-r--r-- | configs/conferences/gpn17/main.less | 39 |
5 files changed, 638 insertions, 0 deletions
diff --git a/configs/conferences/gpn17/background.png b/configs/conferences/gpn17/background.png Binary files differnew file mode 100644 index 0000000..8f0271a --- /dev/null +++ b/configs/conferences/gpn17/background.png diff --git a/configs/conferences/gpn17/config.php b/configs/conferences/gpn17/config.php new file mode 100644 index 0000000..862ca77 --- /dev/null +++ b/configs/conferences/gpn17/config.php @@ -0,0 +1,510 @@ +<?php + +$CONFIG['CONFERENCE'] = array( + /** + * Der Startzeitpunkt der Konferenz als Unix-Timestamp. Befinden wir uns davor, wird die Closed-Seite + * mit einem Text der Art "hat noch nicht angefangen" angezeigt. + * + * Wird dieser Zeitpunkt nicht angegeben, gilt die Konferenz immer als angefangen. (Siehe aber ENDS_AT + * und CLOSED weiter unten) + */ + 'STARTS_AT' => strtotime("2017-05-25 15:30"), + + /** + * Der Endzeitpunkt der Konferenz als Unix-Timestamp. Befinden wir uns danach, wird eine Danke-Und-Kommen-Sie- + * Gut-Nach-Hause-Seite sowie einem Ausblick auf die kommenden Events angezeigt. + * + * Wird dieser Zeitpunkt nicht angegeben, endet die Konferenz nie. (Siehe aber CLOSED weiter unten) + */ + 'ENDS_AT' => strtotime("2017-05-28 15:30"), + + /** + * Hiermit kann die Funktionalitaet von STARTS_AT/ENDS_AT überschrieben werden. Der Wert 'before' + * simuliert, dass die Konferenz noch nicht begonnen hat. Der Wert 'after' simuliert, dass die Konferenz + * bereits beendet ist. 'running' simuliert eine laufende Konferenz. + * + * Der Boolean true ist aus Abwärtskompatibilitätsgründen äquivalent zu 'after'. False ist äquivalent + * zu 'running'. + */ + //'CLOSED' => true, + + /** + * Titel der Konferenz (kann Leer- und Sonderzeichen enthalten) + * Dieser im Seiten-Header, im <title>-Tag, in der About-Seite und ggf. ab weiteren Stellen als + * Anzeigetext benutzt + */ + 'TITLE' => 'GPN17', + + /** + * Veranstalter + * Wird für den <meta name="author">-Tag verdet. Wird diese Zeile auskommentiert, wird kein solcher + * <meta>-Tag generiert. + */ + 'AUTHOR' => 'CCC VOC', + + /** + * Beschreibungstext + * Wird für den <meta name="description">-Tag verdet. Wird diese Zeile auskommentiert, wird kein solcher + * <meta>-Tag generiert. + */ + 'DESCRIPTION' => 'Works as intended?', + + /** + * Schlüsselwortliste, Kommasepariert + * Wird für den <meta name="keywords">-Tag verdet. Wird diese Zeile auskommentiert, wird kein solcher + * <meta>-Tag generiert. + */ + 'KEYWORDS' => 'GPN17, Gulaschprogrammiernacht, CCC, Karlsruhe, Livestream', + + /** + * HTML-Code für den Footer (z.B. für spezielle Attribuierung mit <a>-Tags) + * Sollte üblicherweise nur Inline-Elemente enthalten + * Wird diese Zeile auskommentiert, wird die Standard-Attribuierung für (c3voc.de) verwendet + */ + 'FOOTER_HTML' => ' + by <a href="https://c3voc.de">CCC VOC</a> + ', + + /** + * HTML-Code für den Banner (nur auf der Startseite, direkt unter dem Header) + * wird üblicherweise für KeyVisuals oder Textmarke verwendet (vgl. Blaues + * Wischiwaschi auf http://media.ccc.de/) + * + * Dieser HTML-Block wird üblicherweise in der main.less speziell für die + * Konferenz umgestaltet. + * + * Wird diese Zeile auskommentiert, wird kein Banner ausgegeben. + */ + //'BANNER_HTML' => '', + + /** + * Zusätzlich einzubindendendes HTML + */ + 'ADDITIONAL_HTML' => file_get_contents(dirname(__FILE__).'/gema-nach-hause.html'), + + /** + * Link zu den Recordings + * Wird diese Zeile auskommentiert, wird der Link nicht angezeigt + */ + 'RELEASES' => 'https://media.ccc.de/c/gpn17', + + /** + * Link zu einer (externen) ReLive-Übersichts-Seite + * Wird diese Zeile auskommentiert, wird der Link nicht angezeigt + */ + //'RELIVE' => 'http://vod.c3voc.de/', + + /** + * Alternativ kann ein ReLive-Json konfiguriert werden, um die interne + * ReLive-Ansicht zu aktivieren. + * + * Wird beides aktiviert, hat der externe Link Vorrang! + * Wird beides auskommentiert, wird der Link nicht angezeigt + */ + 'RELIVE_JSON' => 'http://live.ber.c3voc.de/relive/gpn17/index.json', +); + +/** + * Konfiguration der Stream-Übersicht auf der Startseite + */ +$CONFIG['OVERVIEW'] = array( + /** + * Abschnitte aud der Startseite und darunter aufgeführte Räume + * Es können beliebig neue Gruppen und Räume hinzugefügt werden + * + * Die Räume müssen in $CONFIG['ROOMS'] konfiguriert werden, + * sonst werden sie nicht angezeigt. + */ + 'GROUPS' => array( + 'Lecture rooms' => [ + 'medientheater', + 'grosses-studio', + 'vortragssaal' + ], + // 'Live music' => [ + // 'lounge', + // ], + ), +); + + + +/** + * Liste der Räume (= Audio & Video Produktionen, also auch DJ-Sets oä.) + */ +$CONFIG['ROOMS'] = array( + /** + * Array-Key ist der Raum-Slug, der z.B. auch zum erstellen der URLs, + * in $CONFIG['OVERVIEW'] oder im Feedback verwendet wird. + */ + 'medientheater' => array( + /** + * Angezeige-Name + */ + 'DISPLAY' => 'Medientheater', + + /** + * ID des Video/Audio-Streams. Die Stream-ID ist davon abhängig, welches + * Event-Case in welchem Raum aufgebaut wird und wird üblicherweise von + * s1 bis s5 durchnummeriert. + */ + 'STREAM' => 's6', + + /** + * Stream-Vorschaubildchen auf der Übersichtsseite anzeigen + * Damit das funktioniert muss der entsprechende runit-Task auf dem + * CDN-Quell-Host (live.ber) laufen. + */ + 'PREVIEW' => true, + + /** + * Übersetzungstonspur aktivieren + * + * Wenn diese Zeile auskommentiert oder auf false gesetzt ist werden nur + * die native-Streams verwendet, andernfalls wird native und translated + * angeboten und auch für beide Tonspuren eine Player-Seite angezeigt. + */ + 'TRANSLATION' => false, + + /** + * stereo-Tonspur statt native-Tonspur benutzen + * + * Wenn diese Zeile auskommentiert oder auf false gesetzt ist werden + * die "native"-Mono-Streams verwendet, andernfalls wird statt "native" + * der Streamname "stereo" eingesetzt. Im normalen Konferenz-Setup + * müssen dann beide Kanäle der Kamera mit einem Signal bespielt werden. + */ + 'STEREO' => false, + + /** + * SD-Video-Stream (1024×576) verfügbar + * + * Wenn diese Zeile auskommentiert oder auf false gesetzt ist ẃird kein SD-Video + * angeboten. Wird auch HD_VIDEO auf false gesetzt oder auskommentiert ist, wird + * für diesen Raum überhaupt kein Video angeboten. + * + * In diesem Fall wird, sofern jeweils aktiviert, Slides, Audio und zuletzt Musik + * als Default-Stream angenommen. + */ + 'SD_VIDEO' => true, + + /** + * HD-Video-Stream (1920×1080) verfügbar + * + * Wenn diese Zeile auskommentiert oder auf false gesetzt ist ẃird kein HD-Video + * angeboten. Wird auch SD_VIDEO auf false gesetzt oder auskommentiert ist, wird + * für diesen Raum überhaupt kein Video angeboten. + * + * In diesem Fall wird, sofern jeweils aktiviert, Slides, Audio und zuletzt Musik + * als Default-Stream angenommen. + */ + 'HD_VIDEO' => true, + + /** + * Slide-Only-Stream (1024×576) verfügbar + * + * Wenn diese Zeile auskommentiert oder auf false gesetzt ist ẃird kein Slide-Only- + * Stream angeboten. Für diesen Raum wird dann keim Slides-Tab angeboten. + * + * In diesem Fall wird, sofern jeweils aktiviert, Audio und zuletzt Musik als + * Default-Stream angenommen. + */ + 'SLIDES' => false, + + /** + * Audio-Only-Stream verfügbar + * + * Wenn diese Zeile auskommentiert oder auf false gesetzt ist ẃird kein Audio-Only- + * Stream angeboten. Für diesen Raum wird dann keim Audio-Tab angeboten. + * + * In diesem Fall wird, sofern aktiviert, Musik als Default-Stream angenommen. + */ + 'AUDIO' => true, + + /** + * Musik-Stream verfügbar + * + * Wenn diese Zeile auskommentiert oder auf false gesetzt ist ẃird kein Musik-Stream + * angeboten. Für diesen Raum wird dann keim Musik-Tab angeboten. + * + * Ist kein einziger Stream angebote, wird statt der Stream-Seite ein 404-Fehler + * angezeigt. + */ + 'MUSIC' => false, + + /** + * Fahrplan-Ansicht auf der Raum-Seite aktivieren (boolean) + * + * Wenn diese Zeile auskommentiert oder auf false gesetzt ist, + * wird der Raum nicht im Fahrplan gesucht und auch auf der Startseite + * findet keine Darstellung statt. + * + * Ebenso können alle Fahrplan-Funktionialitäten durch auskommentieren + * des globalen $CONFIG['SCHEDULE']-Blocks deaktiviert werden + */ + 'SCHEDULE' => true, + + /** + * Name des Raums im Fahrplan + * Wenn diese Zeile auskommentiert ist wird der Raum-Slug verwendet + */ + 'SCHEDULE_NAME' => 'Medientheater', + + /** + * Feedback anzeigen (boolean) + * + * Wenn diese Zeile auskommentiert oder auf false gesetzt ist, + * taucht der Raum auch im globalen Feedback-Formular nicht auf. + * + * Ebenso können alle Feedback-Funktionialitäten durch auskommentieren + * des globalen $CONFIG['FEEDBACK']-Blocks deaktiviert werden + */ + 'FEEDBACK' => false, + + /** + * Subtitles-Player aktivieren (boolean) + * + * Wenn diese Zeile auskommentiert oder auf false gesetzt ist, + * wird der Subtitles-Button und die damit verbundenen Funktionen deaktiviert. + * + * Ebenso können alle Subtitles-Funktionialitäten durch auskommentieren + * des globalen $CONFIG['SUBTITLES']-Blocks deaktiviert werden + */ + 'SUBTITLES' => false, + + /** + * Embed-Form aktivieren (boolean) + * + * Ist dieses Feld auf true gesetzt, wird ein Embed-Tab unter dem Video + * angezeigt. Darüber kann der Player als iframe eingebunden werden. + * + * Wenn diese Zeile auskommentiert oder auf false gesetzt ist, + * wird kein Embed-Tab angeboten und die URL zum Einbetten existiert nicht. + * + * Ebenso können alle Embedding-Funktionialitäten durch auskommentieren + * des globalen $CONFIG['EMBED']-Blocks deaktiviert werden + */ + 'EMBED' => true, + + /** + * IRC-Link aktivieren (boolean) + * + * Solange Twitter oder IRC aktiviert ist, wird ein "Chat"-Tab mit den + * jeweiligen Links angezeigt. + * + * Ist dieses Feld auf true gesetzt, wird ein irc://-Link angezeigt. + * WebIrc wird nach dem Congress nicht mehr unterstützt ;) + * + * Wenn diese Zeile auskommentiert oder auf false gesetzt ist, + * wird kein IRC-Link angezeigt + * + * Ebenso können alle IRC-Links durch auskommentieren + * des globalen $CONFIG['IRC']-Blocks deaktiviert werden + */ + 'IRC' => true, + + /** + * Mit dem Angaben in diesem Block können die Vorgaben aus dem + * globalen $CONFIG['IRC'] Block überschrieben werden. + * + * Der globale $CONFIG['IRC']-Block muss trotzdem existieren, + * da sonst überhaupt kein IRC-Link erzeugt wird. (ggf. einfach `= true` setzen) + */ + //'IRC_CONFIG' => array( + // 'DISPLAY' => '#31C3-hall-1 @ hackint', + // 'URL' => 'irc://ircnet.org/31C3-hall-1', + //), + + /** + * Twitter-Link aktivieren (boolean) + * + * Ist dieses Feld auf true gesetzt, wird ein Link zu Twitter angezeigt. + * + * Solange Twitter oder IRC aktiviert ist, wird ein "Chat"-Tab mit den + * jeweiligen Links angezeigt. + * + * Wenn diese Zeile auskommentiert oder auf false gesetzt ist, + * wird kein Twitter-Link angezeigt + * + * Ebenso können alle Twitter-Links durch auskommentieren + * des globalen $CONFIG['TWITTER']-Blocks deaktiviert werden + **/ + 'TWITTER' => true, + + /** + * Mit dem Angaben in diesem Block können die Vorgaben aus dem + * globalen $CONFIG['TWITTER'] Block überschrieben werden. + * + * Der globale $CONFIG['TWITTER']-Block muss trotzdem existieren, + * da sonst überhaupt kein IRC-Link erzeugt wird. (ggf. einfach `= true` setzen) + */ + // 'TWITTER_CONFIG' => array( + // 'DISPLAY' => '#fossgis2017 @ twitter', + // 'TEXT' => '#fossgis2017', + // ), + ), + + 'grosses-studio' => array( + 'DISPLAY' => 'Großes Studio', + 'STREAM' => 's5', + 'PREVIEW' => true, + + 'TRANSLATION' => false, + 'SD_VIDEO' => true, + 'HD_VIDEO' => true, + 'AUDIO' => true, + 'SLIDES' => false, + 'MUSIC' => false, + + 'SCHEDULE' => true, + 'SCHEDULE_NAME' => 'Studio', + 'FEEDBACK' => false, + 'SUBTITLES' => false, + 'EMBED' => true, + 'IRC' => true, + 'TWITTER' => true, + ), + + 'vortragssaal' => array( + 'DISPLAY' => 'ZKM-Vortragssaal', + 'STREAM' => 's2', + 'PREVIEW' => true, + + 'TRANSLATION' => false, + 'SD_VIDEO' => true, + 'HD_VIDEO' => true, + 'AUDIO' => true, + 'SLIDES' => false, + 'MUSIC' => false, + + 'SCHEDULE' => true, + 'SCHEDULE_NAME' => 'ZKM-Vortragssaal', + 'FEEDBACK' => false, + 'SUBTITLES' => false, + 'EMBED' => true, + 'IRC' => true, + 'TWITTER' => true, + ), + + 'lounge' => array( + 'DISPLAY' => 'Lounge', + 'STREAM' => 'nope', + 'PREVIEW' => false, + + 'TRANSLATION' => false, + 'SD_VIDEO' => false, + 'HD_VIDEO' => false, + 'AUDIO' => false, + 'SLIDES' => false, + 'MUSIC' => true, + + 'SCHEDULE' => true, + 'SCHEDULE_NAME' => 'Lounge', + 'FEEDBACK' => false, + 'SUBTITLES' => false, + 'EMBED' => true, + 'IRC' => true, + 'TWITTER' => true, + ), +); + +/** + * Globaler Schalter für die Embedding-Funktionalitäten + * + * Wird diese Zeile auskommentiert oder auf False gesetzt, werden alle + * Embedding-Funktionen deaktiviert. + */ +$CONFIG['EMBED'] = true; + +/** + * Konfigurationen zum Konferenz-Fahrplan + * Wird dieser Block auskommentiert, werden alle Fahrplan-Bezogenen Features deaktiviert + */ +$CONFIG['SCHEDULE'] = array( + /** + * URL zum Fahrplan-XML + */ + 'URL' => 'https://entropia.de/GPN17:Fahrplan:XML?action=raw', + + /** + * Nur die angegebenen Räume aus dem Fahrplan beachten + * + * Wird diese Zeile auskommentiert, werden alle Räume angezeigt + */ + 'ROOMFILTER' => ['Medientheater', 'Studio', 'ZKM-Vortragssaal'], + + /** + * Skalierung der Programm-Vorschau in Sekunden pro Pixel + */ + 'SCALE' => 5, + + /** + * Simuliere das Verhalten als wäre die Konferenz bereits heute + * + * Diese folgende Beispiel-Zeile Simuliert, dass das + * Konferenz-Datum 2014-12-29 auf den heutigen Tag 2015-02-24 verschoben ist. + */ + 'SIMULATE_OFFSET' => 0, +); + +/** + * Globale Konfiguration der IRC-Links. + * + * Wird dieser Block auskommentiert, werden keine IRC-Links mehr erzeugt. Sollen die + * IRC-Links für jeden Raum einzeln konfiguriert werden, muss dieser Block trotzdem + * existieren sein. ggf. einfach auf true setzen: + * + * $CONFIG['IRC'] = true + */ +$CONFIG['IRC'] = array( + /** + * Anzeigetext für die IRC-Links. + * + * %s wird durch den Raum-Slug ersetzt. + * Ist eine weitere Anpassung erfoderlich, kann ein IRC_CONFIG-Block in der + * Raum-Konfiguration zum Überschreiben dieser Angaben verwendet werden. + */ + 'DISPLAY' => '#gpn @ hackint', + + /** + * URL für die IRC-Links. + * Hierbei kann sowohl ein irc://-Link als auch ein Link zu einem + * WebIrc-Provider wie z.B. 'https://kiwiirc.com/client/irc.hackint.eu/#32C3-%s' + * verwendet werden. + * + * %s wird durch den urlencodeten Raum-Slug ersetzt. + * Eine Anpassung kann ebenfalls in der Raum-Konfiguration vorgenommen werden. + */ + 'URL' => 'https://webirc.hackint.org/#gpn', +); + +/** + * Globale Konfiguration der Twitter-Links. + * + * Wird dieser Block auskommentiert, werden keine Twitter-Links mehr erzeugt. Sollen die + * Twitter-Links für jeden Raum einzeln konfiguriert werden, muss dieser Block trotzdem + * existieren sein. ggf. einfach auf true setzen: + * + * $CONFIG['TWITTER'] = true + */ +$CONFIG['TWITTER'] = array( + /** + * Anzeigetext für die Twitter-Links. + * + * %s wird durch den Raum-Slug ersetzt. + * Ist eine weitere Anpassung erfoderlich, kann ein TWITTER_CONFIG-Block in der + * Raum-Konfiguration zum Überschreiben dieser Angaben verwendet werden. + */ + 'DISPLAY' => '#gpn17 @ twitter', + + /** + * Vorgabe-Tweet-Text für die Twitter-Links. + * + * %s wird durch den Raum-Slug ersetzt. + * Eine Anpassung kann ebenfalls in der Raum-Konfiguration vorgenommen werden. + */ + 'TEXT' => '#gpn17', +); + + +return $CONFIG; diff --git a/configs/conferences/gpn17/gema-nach-hause.html b/configs/conferences/gpn17/gema-nach-hause.html new file mode 100644 index 0000000..ec6db28 --- /dev/null +++ b/configs/conferences/gpn17/gema-nach-hause.html @@ -0,0 +1,53 @@ +<script src="configs/conferences/gpn17/gema-nach-hause.js"></script> + + +<!-- Modal --> +<div class="modal fade" id="gemaModal1" tabindex="-1" role="dialog" aria-labelledby="gemaModalLabel1"> + <div class="modal-dialog" role="document"> + <div class="modal-content"> + <div class="modal-header"> + <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> + <h2 class="modal-title" id="gemaModalLabel1">Sind Sie von der GEMA?</h2> + </div> + <div class="modal-body text-center"> + <button type="button" class="btn btn-lg btn-default" data-gema="yes">Ja</button> + <button type="button" class="btn btn-lg btn-primary" data-gema="no">Nein</button> + </div> + </div> + </div> +</div> + + +<!-- Modal 2 --> +<div class="modal fade" id="gemaModal2" tabindex="-1" role="dialog" aria-labelledby="gemaModalLabel2"> + <div class="modal-dialog" role="document"> + <div class="modal-content"> + <div class="modal-header"> + <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> + <h2 class="modal-title" id="gemaModalLabel2">Sind Sie wirklich nicht von der GEMA?</h2> + </div> + <div class="modal-body text-center"> + <button type="button" class="btn btn-lg btn-default" data-gema="yes">Ganz sicher</button> + <button type="button" class="btn btn-lg btn-primary" data-gema="no">Hmmmm…</button> + </div> + </div> + </div> +</div> + + + +<!-- Modal 3 --> +<div class="modal fade" id="gemaModal3" tabindex="-1" role="dialog" aria-labelledby="gemaModalLabel3"> + <div class="modal-dialog" role="document"> + <div class="modal-content"> + <div class="modal-header"> + <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> + <h2 class="modal-title" id="gemaModalLabel3">Es gibt keinen Lounge-Stream</h2> + </div> + <div class="modal-body text-center"> + <b>Wirklich nicht!!1!</b> + <p>Für weitere Fragen wenden Sie sich bitte an <tt>aXJjOi8vaXJjLmhhY2tpbnQuZXUvZ3BuCg==</tt></p> + </div> + </div> + </div> +</div> diff --git a/configs/conferences/gpn17/gema-nach-hause.js b/configs/conferences/gpn17/gema-nach-hause.js new file mode 100644 index 0000000..2c3856e --- /dev/null +++ b/configs/conferences/gpn17/gema-nach-hause.js @@ -0,0 +1,36 @@ +function handleLoungeStreamWhichActuallyDoesNotExist() +{ + function gema1() { + $('#gemaModal1') + .modal() + .find('.btn[data-gema=yes]').on('click', function() { + $('#gemaModal1').modal('hide') + gema3(); + }) + .end() + .find('.btn[data-gema=no]').on('click', function() { + $('#gemaModal1').modal('hide') + gema2(); + }) + } + + function gema2() { + $('#gemaModal2') + .modal() + .find('.btn').on('click', function() { + $('#gemaModal2').modal('hide') + gema3(); + }) + } + + function gema3() { + $('#gemaModal3').modal() + } + + $('.room-lounge a').on('click', function(e) { + e.preventDefault(); + location.href = "https://broadcast.fem.tu-ilmenau.de/events/gpn17/"; + }); +} + +$(handleLoungeStreamWhichActuallyDoesNotExist); diff --git a/configs/conferences/gpn17/main.less b/configs/conferences/gpn17/main.less new file mode 100644 index 0000000..dd573a1 --- /dev/null +++ b/configs/conferences/gpn17/main.less @@ -0,0 +1,39 @@ +@import "../../../assets/css/_structure.less"; +@import "../../../assets/css/bootstrap-3.3.2/modals.less"; +@import "../../../assets/css/bootstrap-3.3.2/close.less"; + +body { + background-image: url('background.png'); + background-repeat: repeat; +} + +@gpn-red: #e4292a; +@gpn-shade: hsla(0, 0%, 100%, 0.81); + +@panel-bg: @gpn-shade; +@navbar-default-bg: @gpn-shade; +@btn-default-bg: @gpn-shade; + +@brand-primary: @gpn-red; + +@well-bg: @gpn-shade; +@panel-default-heading-bg: @gpn-shade; +@panel-default-text: @gpn-red; + +.nav-tabs > li > a { + background-color: darken(@gpn-shade, 33%); +} + +.tab-pane { background-color: @gpn-shade; } + +.modal-backdrop { + bottom: 0; + position: fixed; +} + +#gemaModal { + .btn { + padding-left: 50px; + padding-right: 50px; + } +} |