mirror of
https://github.com/voc/streaming-website
synced 2024-11-10 06:34:17 +00:00
Merge branch 'master' into aalen
This commit is contained in:
commit
e4a18387ad
30 changed files with 2485 additions and 943 deletions
|
@ -24,11 +24,11 @@ $GLOBALS['CONFIG']['PREVIEW_DOMAIN'] = 'xlocalhost';
|
|||
* Protokollfreie URLs (welche, die mit // beginnen), werden automatisch mit dem korrekten Protokoll ergänzt.
|
||||
* In diesem Fall wird auch ein SSL-Umschalt-Button im Header angezeigt
|
||||
*/
|
||||
if(@$_SERVER['SERVER_NAME'] == 'localhost' || @$_SERVER['SERVER_NAME'] == '0.0.0.0')
|
||||
if(isset($_SERVER['SERVER_NAME']) && ($_SERVER['SERVER_NAME'] == 'localhost' || $_SERVER['SERVER_NAME'] == '0.0.0.0'))
|
||||
{
|
||||
// keine Konfiguration -> BASEURL wird automatisch erraten
|
||||
}
|
||||
else if(@$_SERVER['SERVER_NAME'] == 'streaming.test.c3voc.de')
|
||||
else if(isset($_SERVER['SERVER_NAME']) && ($_SERVER['SERVER_NAME'] == 'streaming.test.c3voc.de'))
|
||||
{
|
||||
$GLOBALS['CONFIG']['BASEURL'] = '//streaming.test.c3voc.de/';
|
||||
}
|
||||
|
@ -104,7 +104,7 @@ $GLOBALS['CONFIG']['FEEDBACK'] = array(
|
|||
/**
|
||||
* Konfiguration der Room-Defaults
|
||||
*
|
||||
* Falls in der Raum-Konfiguration innerhalb der Konferenz für diese Keys nichts definiert ist,
|
||||
* Falls in der Raum-Konfiguration innerhalb der Konferenz für diese Keys nichts definiert ist,
|
||||
* fällt das System auf diese Werte zurück.
|
||||
*/
|
||||
|
||||
|
|
BIN
configs/conferences/jh23hh/SourceSansPro-Bold.ttf.woff2
Normal file
BIN
configs/conferences/jh23hh/SourceSansPro-Bold.ttf.woff2
Normal file
Binary file not shown.
BIN
configs/conferences/jh23hh/SourceSansPro-Regular.ttf.woff2
Normal file
BIN
configs/conferences/jh23hh/SourceSansPro-Regular.ttf.woff2
Normal file
Binary file not shown.
BIN
configs/conferences/jh23hh/SourceSansPro-Semibold.ttf.woff2
Normal file
BIN
configs/conferences/jh23hh/SourceSansPro-Semibold.ttf.woff2
Normal file
Binary file not shown.
102
configs/conferences/jh23hh/alpaka.svg
Normal file
102
configs/conferences/jh23hh/alpaka.svg
Normal file
|
@ -0,0 +1,102 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
width="629.33333"
|
||||
height="629.33333"
|
||||
viewBox="157.33333,279.83333,629.33333,629.33333"
|
||||
id="svg872"
|
||||
sodipodi:docname="alpaka.svg"
|
||||
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"
|
||||
inkscape:export-filename="/home/sophie/Pictures/jugendhackt/alpaka_51509d.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90">
|
||||
<metadata
|
||||
id="metadata878">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs876" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1863"
|
||||
inkscape:window-height="1056"
|
||||
id="namedview874"
|
||||
showgrid="false"
|
||||
inkscape:zoom="1.3458687"
|
||||
inkscape:cx="170.52184"
|
||||
inkscape:cy="314.66666"
|
||||
inkscape:window-x="1977"
|
||||
inkscape:window-y="1104"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g870" />
|
||||
<g
|
||||
fill="none"
|
||||
fill-rule="nonzero"
|
||||
stroke="none"
|
||||
stroke-width="1"
|
||||
stroke-linecap="butt"
|
||||
stroke-linejoin="miter"
|
||||
stroke-miterlimit="10"
|
||||
stroke-dasharray=""
|
||||
stroke-dashoffset="0"
|
||||
font-family="none"
|
||||
font-weight="none"
|
||||
font-size="none"
|
||||
text-anchor="none"
|
||||
style="mix-blend-mode: normal"
|
||||
id="g870">
|
||||
<path
|
||||
style="fill:#ffffff"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path857"
|
||||
d="m 328.9697,851.95455 v 0 0 -57.21212 H 271.75758 V 737.53031 H 214.54546 V 565.89395 h 57.21212 v -57.21212 h 400.48485 v 57.21212 h 57.21212 v 171.63636 h -57.21212 v 57.21212 h -57.21212 v 57.21212 z" />
|
||||
<g
|
||||
style="fill:#000000"
|
||||
id="g865">
|
||||
<rect
|
||||
id="rect859"
|
||||
height="7"
|
||||
width="7"
|
||||
transform="scale(8.17316)"
|
||||
y="76.238083"
|
||||
x="33.25" />
|
||||
<rect
|
||||
id="rect861"
|
||||
height="7"
|
||||
width="7"
|
||||
transform="scale(8.17316)"
|
||||
y="76.238083"
|
||||
x="75.25" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path863"
|
||||
d="M 500.60606,737.5303 H 443.39394 V 680.31818 H 386.18182 V 794.74242 H 557.81818 V 680.31818 h -57.21212 z" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:#ea680c;fill-opacity:1"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path867"
|
||||
d="M 729.45455,337.04545 V 279.83333 H 615.03031 v 57.21212 h -57.21212 v 57.21212 H 386.18183 V 337.04545 H 328.96971 V 279.83333 H 214.54547 v 57.21212 h -57.21212 v 457.69697 h 57.21212 v 57.21212 h 57.21212 v 57.21212 h 400.48485 v -57.21212 h 57.21212 v -57.21212 h 57.21212 V 337.04545 Z m 0,400.48485 h -57.21212 v 57.21212 h -57.21212 v 57.21212 H 328.9697 V 794.74242 H 271.75758 V 737.5303 H 214.54546 V 565.89394 h 57.21212 v -57.21212 h 400.48485 v 57.21212 h 57.21212 z" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.4 KiB |
BIN
configs/conferences/jh23hh/bg.png
Normal file
BIN
configs/conferences/jh23hh/bg.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 37 KiB |
386
configs/conferences/jh23hh/config.php
Normal file
386
configs/conferences/jh23hh/config.php
Normal file
|
@ -0,0 +1,386 @@
|
|||
<?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("2023-10-29 12:00"),
|
||||
|
||||
/**
|
||||
* 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("2023-10-29 16:00"),
|
||||
|
||||
/**
|
||||
* 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' => 'Jugend hackt Hamburg 2023',
|
||||
|
||||
/**
|
||||
* Veranstalter
|
||||
* Wird für den <meta name="author">-Tag verdet. Wird diese Zeile auskommentiert, wird kein solcher
|
||||
* <meta>-Tag generiert.
|
||||
*/
|
||||
'AUTHOR' => 'Jugend hackt 2023',
|
||||
|
||||
/**
|
||||
* Beschreibungstext
|
||||
* Wird für den <meta name="description">-Tag verdet. Wird diese Zeile auskommentiert, wird kein solcher
|
||||
* <meta>-Tag generiert.
|
||||
*/
|
||||
//'DESCRIPTION' => '',
|
||||
|
||||
/**
|
||||
* Schlüsselwortliste, Kommasepariert
|
||||
* Wird für den <meta name="keywords">-Tag verdet. Wird diese Zeile auskommentiert, wird kein solcher
|
||||
* <meta>-Tag generiert.
|
||||
*/
|
||||
// 'KEYWORDS' => '',
|
||||
|
||||
/**
|
||||
* 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="http://jugendhackt.de/">Jugend hackt 2023</a> &
|
||||
<a href="https://c3voc.de">C3VOC</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' => '<img src="../configs/conferences/jh23hh/illustrationen.svg" class="jh-illus">',
|
||||
|
||||
/**
|
||||
* Link zu den Recordings
|
||||
* Wird diese Zeile auskommentiert, wird der Link nicht angezeigt
|
||||
*/
|
||||
'RELEASES' => 'https://media.ccc.de/b/events/jugendhackt/2023',
|
||||
|
||||
/**
|
||||
* 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' => 'configs/conferences/jh-rn-2021/vod.json',
|
||||
|
||||
/**
|
||||
* APCU-Cache-Zeit in Sekunden
|
||||
* Wird diese Zeile auskommentiert, werden die apc_*-Methoden nicht verwendet und
|
||||
* das Relive-Json bei jedem Request von der Quelle geladen und geparst
|
||||
*/
|
||||
//'RELIVE_JSON_CACHE' => 30*60,
|
||||
);
|
||||
|
||||
/**
|
||||
* 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' => array(
|
||||
'saal',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
'saal' => array(
|
||||
/**
|
||||
* Angezeige-Name
|
||||
*/
|
||||
'DISPLAY' => 'Betahaus',
|
||||
|
||||
/**
|
||||
* 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' => 's5',
|
||||
|
||||
/**
|
||||
* 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,
|
||||
|
||||
|
||||
/** Wenn aktiviert, wird DASH streaming angeboten */
|
||||
'DASH' => true,
|
||||
|
||||
/**
|
||||
* 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,
|
||||
'H264_ONLY' => 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' => 'Betahaus',
|
||||
|
||||
/**
|
||||
* 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' => false,
|
||||
|
||||
/**
|
||||
* 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://irc.hackint.eu:6667/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' => '#jhhh23 @ mastodon',
|
||||
'TEXT' => '#jhhh23 #jugendhackt',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
/**
|
||||
* 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
|
||||
*
|
||||
* Diese URL muss immer verfügbar sein, sonst können kann die Programm-Ansicht
|
||||
* aufhören zu funktionieren. Wenn die Quelle unverlässlich ist ;) sollte ein
|
||||
* externer HTTP-Cache vorgeschaltet werden.
|
||||
*/
|
||||
'URL' => 'https://pretalx.c3voc.de/jhhh23/schedule/export/schedule.xml',
|
||||
|
||||
/**
|
||||
* Nur die angegebenen Räume aus dem Fahrplan beachten
|
||||
*
|
||||
* Wird diese Zeile auskommentiert, werden alle Räume angezeigt
|
||||
*/
|
||||
//'ROOMFILTER' => array('Hörsaal'),
|
||||
|
||||
/**
|
||||
* Skalierung der Programm-Vorschau in Sekunden pro Pixel
|
||||
*/
|
||||
'SCALE' => 7,
|
||||
|
||||
/**
|
||||
* 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' => strtotime(/* Conference-Date */ '2019-05-21') - strtotime(/* Today */ '2019-05-19'),
|
||||
'SIMULATE_OFFSET' => 0,
|
||||
);
|
||||
|
||||
|
||||
return $CONFIG;
|
775
configs/conferences/jh23hh/illustrationen.svg
Normal file
775
configs/conferences/jh23hh/illustrationen.svg
Normal file
|
@ -0,0 +1,775 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="503.24649"
|
||||
height="169.02229"
|
||||
viewBox="0 0 503.2465 169.02229"
|
||||
id="svg4295"
|
||||
version="1.1"
|
||||
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"
|
||||
sodipodi:docname="illustrationen.svg">
|
||||
<defs
|
||||
id="defs4297">
|
||||
<style
|
||||
id="style1702">
|
||||
.cls-1 {
|
||||
fill: #00a6de;
|
||||
}
|
||||
</style>
|
||||
<style
|
||||
id="style1722">
|
||||
.cls-1 {
|
||||
fill: #00b48d;
|
||||
}
|
||||
|
||||
.cls-2 {
|
||||
fill: #fff;
|
||||
}
|
||||
</style>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.1747185"
|
||||
inkscape:cx="316.49225"
|
||||
inkscape:cy="143.00881"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
inkscape:window-width="1869"
|
||||
inkscape:window-height="1056"
|
||||
inkscape:window-x="1971"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:snap-others="false"
|
||||
inkscape:snap-nodes="false"
|
||||
inkscape:snap-global="false">
|
||||
<sodipodi:guide
|
||||
position="336.33197,50.255833"
|
||||
orientation="0,1"
|
||||
id="guide4185"
|
||||
inkscape:locked="false" />
|
||||
<sodipodi:guide
|
||||
position="333.80659,86.873863"
|
||||
orientation="1,0"
|
||||
id="guide4187"
|
||||
inkscape:locked="false" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata4300">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-0.04883092,-883.08807)">
|
||||
<g
|
||||
transform="translate(327.05204,882.37409)"
|
||||
id="g131">
|
||||
<g
|
||||
id="text4153"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:40px;line-height:125%;font-family:'Source Sans Pro';-inkscape-font-specification:'Source Sans Pro, Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
</g>
|
||||
<g
|
||||
id="g1466"
|
||||
style="font-family:none;mix-blend-mode:normal;fill:none;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
text-anchor="none"
|
||||
font-size="none"
|
||||
font-weight="none"
|
||||
stroke-miterlimit="10"
|
||||
transform="matrix(0.26857356,0,0,0.26857356,-42.206747,807.93224)">
|
||||
<g
|
||||
id="Ebene_1">
|
||||
<path
|
||||
id="path1453"
|
||||
d="m 328.9697,851.95455 v 0 0 -57.21212 H 271.75758 V 737.53031 H 214.54546 V 565.89395 h 57.21212 v -57.21212 h 400.48485 v 57.21212 h 57.21212 v 171.63636 h -57.21212 v 57.21212 h -57.21212 v 57.21212 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff" />
|
||||
<g
|
||||
id="g1461"
|
||||
style="fill:#000000">
|
||||
<rect
|
||||
id="rect1455"
|
||||
height="7"
|
||||
width="7"
|
||||
transform="scale(8.17316)"
|
||||
y="76.238083"
|
||||
x="33.25" />
|
||||
<rect
|
||||
id="rect1457"
|
||||
height="7"
|
||||
width="7"
|
||||
transform="scale(8.17316)"
|
||||
y="76.238083"
|
||||
x="75.25" />
|
||||
<path
|
||||
id="path1459"
|
||||
d="M 500.60606,737.5303 H 443.39394 V 680.31818 H 386.18182 V 794.74242 H 557.81818 V 680.31818 h -57.21212 z"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<path
|
||||
id="path1463"
|
||||
d="M 729.45455,337.04545 V 279.83333 H 615.03031 v 57.21212 h -57.21212 v 57.21212 H 386.18183 V 337.04545 H 328.96971 V 279.83333 H 214.54547 v 57.21212 h -57.21212 v 457.69697 h 57.21212 v 57.21212 h 57.21212 v 57.21212 h 400.48485 v -57.21212 h 57.21212 v -57.21212 h 57.21212 V 337.04545 Z m 0,400.48485 h -57.21212 v 57.21212 h -57.21212 v 57.21212 H 328.9697 V 794.74242 H 271.75758 V 737.5303 H 214.54546 V 565.89394 h 57.21212 v -57.21212 h 400.48485 v 57.21212 h 57.21212 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ea680c" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g1720"
|
||||
transform="translate(225.29808,883.23538)">
|
||||
<polygon
|
||||
id="polygon1708"
|
||||
points="7,77 7,84 14,84 14,91 21,91 21,98 28,98 28,105 35,105 35,112 28,112 28,119 21,119 21,126 14,126 14,168 21,168 21,147 28,147 28,168 56,168 56,147 63,147 63,168 70,168 70,126 63,126 63,119 56,119 56,112 49,112 49,105 56,105 56,98 63,98 63,91 70,91 70,84 77,84 77,77 84,77 84,14 77,14 77,7 70,7 70,0 14,0 14,7 7,7 7,14 0,14 0,77 "
|
||||
class="cls-1"
|
||||
style="fill:#00a6de" />
|
||||
<path
|
||||
id="path1710"
|
||||
d="m 28,70 h 3.5 V 66.5 H 28 v -7 H 24.5 V 56 H 14 v 3.5 H 10.5 V 63 H 14 v 3.5 h 3.5 V 70 Z m 7,14 h 3.5 V 80.5 H 35 Z m 10.5,0 H 49 v -3.5 h -3.5 z m 7,7 h -21 v 3.5 h 21 z m 21,-28 V 59.5 H 70 V 56 H 59.5 v 3.5 H 56 v 7 H 52.5 V 70 h 14 V 66.5 H 70 V 63 Z"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<g
|
||||
id="g1989"
|
||||
transform="translate(363.29531,883.23538)">
|
||||
<g
|
||||
id="g1800">
|
||||
<rect
|
||||
id="rect1728"
|
||||
height="7"
|
||||
width="7"
|
||||
y="119"
|
||||
x="49"
|
||||
class="cls-1"
|
||||
style="fill:#00b48d" />
|
||||
<rect
|
||||
id="rect1730"
|
||||
height="7"
|
||||
width="7"
|
||||
y="126"
|
||||
x="42"
|
||||
class="cls-1"
|
||||
style="fill:#00b48d" />
|
||||
<rect
|
||||
id="rect1732"
|
||||
height="7"
|
||||
width="7"
|
||||
y="126"
|
||||
x="56"
|
||||
class="cls-1"
|
||||
style="fill:#00b48d" />
|
||||
<rect
|
||||
id="rect1734"
|
||||
height="7"
|
||||
width="7"
|
||||
y="133"
|
||||
x="49"
|
||||
class="cls-1"
|
||||
style="fill:#00b48d" />
|
||||
<rect
|
||||
id="rect1736"
|
||||
height="7"
|
||||
width="7"
|
||||
y="140"
|
||||
x="42"
|
||||
class="cls-1"
|
||||
style="fill:#00b48d" />
|
||||
<rect
|
||||
id="rect1738"
|
||||
height="7"
|
||||
width="7"
|
||||
y="147"
|
||||
x="49"
|
||||
class="cls-1"
|
||||
style="fill:#00b48d" />
|
||||
<rect
|
||||
id="rect1740"
|
||||
height="7"
|
||||
width="7"
|
||||
y="147"
|
||||
x="35"
|
||||
class="cls-1"
|
||||
style="fill:#00b48d" />
|
||||
<rect
|
||||
id="rect1742"
|
||||
height="7"
|
||||
width="7"
|
||||
y="140"
|
||||
x="56"
|
||||
class="cls-1"
|
||||
style="fill:#00b48d" />
|
||||
<polygon
|
||||
id="polygon1744"
|
||||
points="77,147 70,147 63,147 63,154 70,154 77,154 "
|
||||
class="cls-1"
|
||||
style="fill:#00b48d" />
|
||||
<rect
|
||||
id="rect1746"
|
||||
height="7"
|
||||
width="7"
|
||||
y="140"
|
||||
x="77"
|
||||
class="cls-1"
|
||||
style="fill:#00b48d" />
|
||||
<rect
|
||||
id="rect1748"
|
||||
height="7"
|
||||
width="7"
|
||||
y="147"
|
||||
x="84"
|
||||
class="cls-1"
|
||||
style="fill:#00b48d" />
|
||||
<rect
|
||||
id="rect1750"
|
||||
height="7"
|
||||
width="7"
|
||||
y="140"
|
||||
x="91"
|
||||
class="cls-1"
|
||||
style="fill:#00b48d" />
|
||||
<rect
|
||||
id="rect1752"
|
||||
height="7"
|
||||
width="7"
|
||||
y="147"
|
||||
x="98"
|
||||
class="cls-1"
|
||||
style="fill:#00b48d" />
|
||||
<rect
|
||||
id="rect1754"
|
||||
height="7"
|
||||
width="7"
|
||||
y="154"
|
||||
x="91"
|
||||
class="cls-1"
|
||||
style="fill:#00b48d" />
|
||||
<rect
|
||||
id="rect1756"
|
||||
height="7"
|
||||
width="7"
|
||||
y="154"
|
||||
x="77"
|
||||
class="cls-1"
|
||||
style="fill:#00b48d" />
|
||||
<rect
|
||||
id="rect1758"
|
||||
height="7"
|
||||
width="7"
|
||||
y="154"
|
||||
x="56"
|
||||
class="cls-1"
|
||||
style="fill:#00b48d" />
|
||||
<rect
|
||||
id="rect1760"
|
||||
height="7"
|
||||
width="7"
|
||||
y="154"
|
||||
x="42"
|
||||
class="cls-1"
|
||||
style="fill:#00b48d" />
|
||||
<rect
|
||||
id="rect1762"
|
||||
height="7"
|
||||
width="7"
|
||||
y="161"
|
||||
x="35"
|
||||
class="cls-1"
|
||||
style="fill:#00b48d" />
|
||||
<rect
|
||||
id="rect1764"
|
||||
height="7"
|
||||
width="7"
|
||||
y="161"
|
||||
x="49"
|
||||
class="cls-1"
|
||||
style="fill:#00b48d" />
|
||||
<polygon
|
||||
id="polygon1766"
|
||||
points="70,161 63,161 63,168 70,168 77,168 77,161 "
|
||||
class="cls-1"
|
||||
style="fill:#00b48d" />
|
||||
<rect
|
||||
id="rect1768"
|
||||
height="7"
|
||||
width="7"
|
||||
y="161"
|
||||
x="84"
|
||||
class="cls-1"
|
||||
style="fill:#00b48d" />
|
||||
<rect
|
||||
id="rect1770"
|
||||
height="7"
|
||||
width="7"
|
||||
y="161"
|
||||
x="98"
|
||||
class="cls-1"
|
||||
style="fill:#00b48d" />
|
||||
<rect
|
||||
id="rect1772"
|
||||
height="7"
|
||||
width="7"
|
||||
y="154"
|
||||
x="105"
|
||||
class="cls-1"
|
||||
style="fill:#00b48d" />
|
||||
<rect
|
||||
id="rect1774"
|
||||
height="7"
|
||||
width="7"
|
||||
y="154"
|
||||
x="28"
|
||||
class="cls-1"
|
||||
style="fill:#00b48d" />
|
||||
<rect
|
||||
id="rect1776"
|
||||
height="7"
|
||||
width="7"
|
||||
y="147"
|
||||
x="21"
|
||||
class="cls-1"
|
||||
style="fill:#00b48d" />
|
||||
<rect
|
||||
id="rect1778"
|
||||
height="7"
|
||||
width="7"
|
||||
y="140"
|
||||
x="14"
|
||||
class="cls-1"
|
||||
style="fill:#00b48d" />
|
||||
<rect
|
||||
id="rect1780"
|
||||
height="7"
|
||||
width="7"
|
||||
y="133"
|
||||
x="7"
|
||||
class="cls-1"
|
||||
style="fill:#00b48d" />
|
||||
<rect
|
||||
id="rect1782"
|
||||
height="7"
|
||||
width="7"
|
||||
y="147"
|
||||
x="112"
|
||||
class="cls-1"
|
||||
style="fill:#00b48d" />
|
||||
<rect
|
||||
id="rect1784"
|
||||
height="7"
|
||||
width="7"
|
||||
y="140"
|
||||
x="119"
|
||||
class="cls-1"
|
||||
style="fill:#00b48d" />
|
||||
<rect
|
||||
id="rect1786"
|
||||
height="7"
|
||||
width="7"
|
||||
y="133"
|
||||
x="126"
|
||||
class="cls-1"
|
||||
style="fill:#00b48d" />
|
||||
<rect
|
||||
id="rect1788"
|
||||
height="7"
|
||||
width="7"
|
||||
y="126"
|
||||
x="77"
|
||||
class="cls-1"
|
||||
style="fill:#00b48d" />
|
||||
<rect
|
||||
id="rect1790"
|
||||
height="7"
|
||||
width="7"
|
||||
y="126"
|
||||
x="91"
|
||||
class="cls-1"
|
||||
style="fill:#00b48d" />
|
||||
<rect
|
||||
id="rect1792"
|
||||
height="7"
|
||||
width="7"
|
||||
y="133"
|
||||
x="84"
|
||||
class="cls-1"
|
||||
style="fill:#00b48d" />
|
||||
<rect
|
||||
id="rect1794"
|
||||
height="7"
|
||||
width="7"
|
||||
y="119"
|
||||
x="84"
|
||||
class="cls-1"
|
||||
style="fill:#00b48d" />
|
||||
<polygon
|
||||
id="polygon1796"
|
||||
points="119,21 112,21 112,14 105,14 105,7 98,7 98,0 91,0 84,0 84,0 84,0 77,0 77,7 84,7 84,14 91,14 91,21 98,21 98,28 105,28 105,35 98,35 98,28 91,28 91,21 84,21 84,14 77,14 77,7 70,7 63,7 63,14 56,14 56,21 49,21 49,28 42,28 42,35 35,35 35,28 42,28 42,21 49,21 49,14 56,14 56,7 63,7 63,0 56,0 49,0 49,0 42,0 42,7 35,7 35,14 28,14 28,21 21,21 21,28 14,28 14,35 7,35 7,42 0,42 0,49 0,56 0,56 0,63 0,70 0,77 7,77 7,84 14,84 21,84 21,91 21,98 28,98 28,105 35,105 42,105 42,112 42,119 49,119 49,112 56,112 56,119 63,119 63,126 70,126 77,126 77,119 84,119 84,112 91,112 91,119 98,119 98,112 98,105 105,105 112,105 112,98 119,98 119,91 119,84 126,84 133,84 133,77 140,77 140,70 140,63 140,56 140,56 140,49 140,42 133,42 133,35 126,35 126,28 119,28 "
|
||||
class="cls-1"
|
||||
style="fill:#00b48d" />
|
||||
<polygon
|
||||
id="polygon1798"
|
||||
points="63,140 70,140 77,140 77,133 70,133 63,133 "
|
||||
class="cls-1"
|
||||
style="fill:#00b48d" />
|
||||
</g>
|
||||
<g
|
||||
id="g1818">
|
||||
<rect
|
||||
id="rect1802"
|
||||
height="3.5"
|
||||
width="3.5"
|
||||
y="52.5"
|
||||
x="80.5" />
|
||||
<rect
|
||||
id="rect1804"
|
||||
height="3.5"
|
||||
width="3.5"
|
||||
y="52.5"
|
||||
x="31.5" />
|
||||
<rect
|
||||
id="rect1806"
|
||||
height="3.5"
|
||||
width="21"
|
||||
y="49"
|
||||
x="84" />
|
||||
<rect
|
||||
id="rect1808"
|
||||
height="3.5"
|
||||
width="21"
|
||||
y="49"
|
||||
x="35" />
|
||||
<rect
|
||||
id="rect1810"
|
||||
height="3.5"
|
||||
width="3.5"
|
||||
y="52.5"
|
||||
x="105" />
|
||||
<rect
|
||||
id="rect1812"
|
||||
height="3.5"
|
||||
width="3.5"
|
||||
y="52.5"
|
||||
x="56" />
|
||||
<polygon
|
||||
id="polygon1814"
|
||||
points="80.5,68.25 80.5,71.75 84,71.75 84,77 91,77 98,77 105,77 105,71.75 108.5,71.75 108.5,68.25 105,68.25 105,63 98,63 91,63 84,63 84,68.25 " />
|
||||
<polygon
|
||||
id="polygon1816"
|
||||
points="31.5,68.25 31.5,71.75 35,71.75 35,77 42,77 49,77 56,77 56,71.75 59.5,71.75 59.5,68.25 56,68.25 56,63 49,63 42,63 35,63 35,68.25 " />
|
||||
</g>
|
||||
<g
|
||||
id="g1896">
|
||||
<polygon
|
||||
id="polygon1820"
|
||||
points="63,13.87 63,7 70,7 77,7 77,0 70,0 63,0 63,6.87 56,6.87 56,13.87 "
|
||||
class="cls-2"
|
||||
style="fill:#ffffff" />
|
||||
<polygon
|
||||
id="polygon1822"
|
||||
points="70,98 77,98 77,91 70,91 63,91 63,98 "
|
||||
class="cls-2"
|
||||
style="fill:#ffffff" />
|
||||
<rect
|
||||
id="rect1824"
|
||||
height="7"
|
||||
width="7"
|
||||
y="7"
|
||||
x="77"
|
||||
class="cls-2"
|
||||
style="fill:#ffffff" />
|
||||
<rect
|
||||
id="rect1826"
|
||||
height="7"
|
||||
width="7"
|
||||
y="13.87"
|
||||
x="49"
|
||||
class="cls-2"
|
||||
style="fill:#ffffff" />
|
||||
<rect
|
||||
id="rect1828"
|
||||
height="7"
|
||||
width="7"
|
||||
y="20.870001"
|
||||
x="42"
|
||||
class="cls-2"
|
||||
style="fill:#ffffff" />
|
||||
<rect
|
||||
id="rect1830"
|
||||
height="7"
|
||||
width="7"
|
||||
y="27.870001"
|
||||
x="35"
|
||||
class="cls-2"
|
||||
style="fill:#ffffff" />
|
||||
<rect
|
||||
id="rect1832"
|
||||
height="7"
|
||||
width="7"
|
||||
y="14"
|
||||
x="84"
|
||||
class="cls-2"
|
||||
style="fill:#ffffff" />
|
||||
<rect
|
||||
id="rect1834"
|
||||
height="7"
|
||||
width="7"
|
||||
y="21"
|
||||
x="91"
|
||||
class="cls-2"
|
||||
style="fill:#ffffff" />
|
||||
<rect
|
||||
id="rect1836"
|
||||
height="7"
|
||||
width="7"
|
||||
y="28"
|
||||
x="98"
|
||||
class="cls-2"
|
||||
style="fill:#ffffff" />
|
||||
<rect
|
||||
id="rect1838"
|
||||
height="7"
|
||||
width="7"
|
||||
y="112"
|
||||
x="84"
|
||||
class="cls-2"
|
||||
style="fill:#ffffff" />
|
||||
<rect
|
||||
id="rect1840"
|
||||
height="7"
|
||||
width="7"
|
||||
y="126"
|
||||
x="84"
|
||||
class="cls-2"
|
||||
style="fill:#ffffff" />
|
||||
<polygon
|
||||
id="polygon1842"
|
||||
points="63,133 70,133 77,133 77,126 70,126 63,126 "
|
||||
class="cls-2"
|
||||
style="fill:#ffffff" />
|
||||
<polygon
|
||||
id="polygon1844"
|
||||
points="70,154 63,154 63,161 70,161 77,161 77,154 "
|
||||
class="cls-2"
|
||||
style="fill:#ffffff" />
|
||||
<polygon
|
||||
id="polygon1846"
|
||||
points="77,140 70,140 63,140 63,147 70,147 77,147 "
|
||||
class="cls-2"
|
||||
style="fill:#ffffff" />
|
||||
<rect
|
||||
id="rect1848"
|
||||
height="7"
|
||||
width="7"
|
||||
y="140"
|
||||
x="84"
|
||||
class="cls-2"
|
||||
style="fill:#ffffff" />
|
||||
<rect
|
||||
id="rect1850"
|
||||
height="7"
|
||||
width="7"
|
||||
y="154"
|
||||
x="84"
|
||||
class="cls-2"
|
||||
style="fill:#ffffff" />
|
||||
<rect
|
||||
id="rect1852"
|
||||
height="7"
|
||||
width="7"
|
||||
y="112"
|
||||
x="49"
|
||||
class="cls-2"
|
||||
style="fill:#ffffff" />
|
||||
<rect
|
||||
id="rect1854"
|
||||
height="7"
|
||||
width="7"
|
||||
y="126"
|
||||
x="49"
|
||||
class="cls-2"
|
||||
style="fill:#ffffff" />
|
||||
<rect
|
||||
id="rect1856"
|
||||
height="7"
|
||||
width="7"
|
||||
y="140"
|
||||
x="49"
|
||||
class="cls-2"
|
||||
style="fill:#ffffff" />
|
||||
<rect
|
||||
id="rect1858"
|
||||
height="7"
|
||||
width="7"
|
||||
y="154"
|
||||
x="49"
|
||||
class="cls-2"
|
||||
style="fill:#ffffff" />
|
||||
<rect
|
||||
id="rect1860"
|
||||
height="7"
|
||||
width="7"
|
||||
y="119"
|
||||
x="77"
|
||||
class="cls-2"
|
||||
style="fill:#ffffff" />
|
||||
<rect
|
||||
id="rect1862"
|
||||
height="7"
|
||||
width="7"
|
||||
y="133"
|
||||
x="77"
|
||||
class="cls-2"
|
||||
style="fill:#ffffff" />
|
||||
<rect
|
||||
id="rect1864"
|
||||
height="7"
|
||||
width="7"
|
||||
y="147"
|
||||
x="77"
|
||||
class="cls-2"
|
||||
style="fill:#ffffff" />
|
||||
<rect
|
||||
id="rect1866"
|
||||
height="7"
|
||||
width="7"
|
||||
y="161"
|
||||
x="77"
|
||||
class="cls-2"
|
||||
style="fill:#ffffff" />
|
||||
<rect
|
||||
id="rect1868"
|
||||
height="7"
|
||||
width="7"
|
||||
y="161"
|
||||
x="91"
|
||||
class="cls-2"
|
||||
style="fill:#ffffff" />
|
||||
<rect
|
||||
id="rect1870"
|
||||
height="7"
|
||||
width="7"
|
||||
y="147"
|
||||
x="91"
|
||||
class="cls-2"
|
||||
style="fill:#ffffff" />
|
||||
<rect
|
||||
id="rect1872"
|
||||
height="7"
|
||||
width="7"
|
||||
y="133"
|
||||
x="91"
|
||||
class="cls-2"
|
||||
style="fill:#ffffff" />
|
||||
<rect
|
||||
id="rect1874"
|
||||
height="7"
|
||||
width="7"
|
||||
y="119"
|
||||
x="91"
|
||||
class="cls-2"
|
||||
style="fill:#ffffff" />
|
||||
<rect
|
||||
id="rect1876"
|
||||
height="7"
|
||||
width="7"
|
||||
y="119"
|
||||
x="56"
|
||||
class="cls-2"
|
||||
style="fill:#ffffff" />
|
||||
<rect
|
||||
id="rect1878"
|
||||
height="7"
|
||||
width="7"
|
||||
y="133"
|
||||
x="56"
|
||||
class="cls-2"
|
||||
style="fill:#ffffff" />
|
||||
<rect
|
||||
id="rect1880"
|
||||
height="7"
|
||||
width="7"
|
||||
y="147"
|
||||
x="56"
|
||||
class="cls-2"
|
||||
style="fill:#ffffff" />
|
||||
<rect
|
||||
id="rect1882"
|
||||
height="7"
|
||||
width="7"
|
||||
y="161"
|
||||
x="56"
|
||||
class="cls-2"
|
||||
style="fill:#ffffff" />
|
||||
<rect
|
||||
id="rect1884"
|
||||
height="7"
|
||||
width="7"
|
||||
y="161"
|
||||
x="42"
|
||||
class="cls-2"
|
||||
style="fill:#ffffff" />
|
||||
<rect
|
||||
id="rect1886"
|
||||
height="7"
|
||||
width="7"
|
||||
y="147"
|
||||
x="42"
|
||||
class="cls-2"
|
||||
style="fill:#ffffff" />
|
||||
<rect
|
||||
id="rect1888"
|
||||
height="7"
|
||||
width="7"
|
||||
y="133"
|
||||
x="42"
|
||||
class="cls-2"
|
||||
style="fill:#ffffff" />
|
||||
<rect
|
||||
id="rect1890"
|
||||
height="7"
|
||||
width="7"
|
||||
y="119"
|
||||
x="42"
|
||||
class="cls-2"
|
||||
style="fill:#ffffff" />
|
||||
<rect
|
||||
id="rect1892"
|
||||
height="7"
|
||||
width="7"
|
||||
y="154"
|
||||
x="35"
|
||||
class="cls-2"
|
||||
style="fill:#ffffff" />
|
||||
<rect
|
||||
id="rect1894"
|
||||
height="7"
|
||||
width="7"
|
||||
y="154"
|
||||
x="98"
|
||||
class="cls-2"
|
||||
style="fill:#ffffff" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 21 KiB |
198
configs/conferences/jh23hh/main.less
Normal file
198
configs/conferences/jh23hh/main.less
Normal file
|
@ -0,0 +1,198 @@
|
|||
@import "../../../assets/css/_structure.less";
|
||||
|
||||
// conference specific styles here
|
||||
|
||||
|
||||
// conference specific styles here
|
||||
@pw-color: black;
|
||||
@bg-cyan: #00a6de;
|
||||
|
||||
@body-text: @pw-color;
|
||||
|
||||
@overview-color: @pw-color;
|
||||
|
||||
@darker-grey: #52575b;
|
||||
@dark-grey: lighten(@darker-grey, 10%);
|
||||
@light-grey: lighten(@darker-grey, 20%);
|
||||
@lighter-grey: lighten(@darker-grey, 30%);
|
||||
|
||||
|
||||
// often configured values (and their defaults):
|
||||
//
|
||||
@brand-primary: @darker-grey;
|
||||
@text-color: @body-text;
|
||||
|
||||
@link-color: @body-text;
|
||||
@link-hover-color: @lighter-grey;
|
||||
|
||||
// @navbar-height: 70px;
|
||||
|
||||
@navbar-default-bg: @light-grey;
|
||||
@navbar-default-border: @light-grey;
|
||||
|
||||
@navbar-default-link-color: @pw-color;
|
||||
@navbar-default-link-hover-color: @link-hover-color;
|
||||
|
||||
@font-face {
|
||||
font-family: 'Source Sans Pro';
|
||||
src: url('/configs/conferences/jh23hh/SourceSansPro-Regular.ttf.woff2') format('woff2');
|
||||
}
|
||||
|
||||
body {
|
||||
background-image: url("/configs/conferences/jh23hh/bg.png");
|
||||
background-repeat: repeat;
|
||||
background-attachment: fixed;
|
||||
background-size: 100%;
|
||||
padding: @navbar-height 0;
|
||||
font-family: "Source Sans Pro","Noto Sans",Arial,sans-serif;
|
||||
font-size: 16px
|
||||
}
|
||||
|
||||
h1, h2, body.overview .room a.title, body.overview .panel-primary a, .navbar-brand {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.group-live {
|
||||
margin-top: 60px;
|
||||
}
|
||||
|
||||
.room {
|
||||
h1 {
|
||||
font-weight: bold;
|
||||
margin: 40px 0 20px 0;
|
||||
color: @bg-cyan;
|
||||
}
|
||||
}
|
||||
|
||||
.overview, .relive {
|
||||
h1, h2 {
|
||||
font-weight: bold;
|
||||
|
||||
margin: 40px 0 20px 0;
|
||||
color: @bg-cyan;
|
||||
}
|
||||
}
|
||||
|
||||
.room, .recordings, .recording {
|
||||
a, a:hover {
|
||||
text-decoration: none;
|
||||
color: @overview-color;
|
||||
}
|
||||
|
||||
.panel {
|
||||
//background: none;
|
||||
background-color: @lighter-grey;
|
||||
border: 1px solid @dark-grey;
|
||||
|
||||
&:hover {
|
||||
text-decoration: none;
|
||||
background-color: @dark-grey;
|
||||
}
|
||||
|
||||
.panel-title {
|
||||
font-size: 25px;
|
||||
color: @overview-color;
|
||||
}
|
||||
|
||||
.panel-primary {
|
||||
background-color: @lighter-grey;
|
||||
border-color: @lighter-grey;
|
||||
color: @overview-color;
|
||||
a {
|
||||
color: @overview-color;
|
||||
}
|
||||
}
|
||||
|
||||
.panel-heading {
|
||||
background: none;
|
||||
display: block !important;
|
||||
font-weight: bold;
|
||||
padding: 8px 15px;
|
||||
a {
|
||||
color: @overview-color;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
.overview .room-group-live-music .room .panel .panel-body {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.well a {
|
||||
color: @dark-grey;
|
||||
text-decoration: underline;
|
||||
}
|
||||
.alert {
|
||||
a {
|
||||
text-decoration: underline;
|
||||
}
|
||||
&.alert-success a {
|
||||
color: @state-success-text;
|
||||
}
|
||||
&.alert-info a {
|
||||
color: @state-info-text;
|
||||
}
|
||||
&.alert-warning a {
|
||||
color: @state-warning-text;
|
||||
}
|
||||
&.alert-danger a {
|
||||
color: @state-danger-text;
|
||||
}
|
||||
}
|
||||
|
||||
body.multiview .cell {
|
||||
color: black;
|
||||
}
|
||||
|
||||
.closed .about a {
|
||||
text-decoration: underline;
|
||||
color: @brand-primary;
|
||||
}
|
||||
|
||||
.schedule .block.pause {
|
||||
color: black !important;
|
||||
}
|
||||
|
||||
|
||||
footer {
|
||||
background-color: @darker-grey;
|
||||
color: lightgrey;
|
||||
}
|
||||
|
||||
.nav-tabs.nav-justified > .active > a{
|
||||
border: 1px solid @dark-grey;
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
.nav-tabs > li.active > a {
|
||||
color: @pw-color
|
||||
}
|
||||
.nav-tabs > li > a {
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
body.room .tab-content {
|
||||
background-color: @lighter-grey;
|
||||
border-left: 1px solid @dark-grey;
|
||||
border-bottom: 1px solid @dark-grey;
|
||||
border-right: 1px solid @dark-grey;
|
||||
}
|
||||
|
||||
|
||||
img.jh-logo {
|
||||
height: 130px;
|
||||
position: absolute;
|
||||
top: 55px;
|
||||
left: 10px;
|
||||
z-index: -100;
|
||||
}
|
||||
|
||||
img.jh-illus {
|
||||
height: 100px;
|
||||
position: absolute;
|
||||
top: 70px;
|
||||
right: 10px;
|
||||
z-index: -100;
|
||||
}
|
21
index.php
21
index.php
|
@ -52,14 +52,20 @@ if(isset($argv) && isset($argv[1]))
|
|||
try {
|
||||
if(isset($_GET['htaccess']))
|
||||
{
|
||||
$route = @$_GET['route'];
|
||||
$route = isset($_GET['route']) ? $_GET['route'] : "";
|
||||
}
|
||||
elseif(isset($_SERVER["REQUEST_URI"]))
|
||||
{
|
||||
$route = ltrim(@$_SERVER["REQUEST_URI"], '/');
|
||||
$route = ltrim($_SERVER["REQUEST_URI"], '/');
|
||||
|
||||
// trim query params from file names
|
||||
$filepath = $_SERVER["DOCUMENT_ROOT"].'/'.$route;
|
||||
if (strpos($filepath, "?")) {
|
||||
$filepath = substr($filepath, 0, strpos($filepath, "?"));
|
||||
}
|
||||
|
||||
// serve static
|
||||
if($route != '' && file_exists($_SERVER["DOCUMENT_ROOT"].'/'.$route))
|
||||
if($route != '' && is_file($filepath))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
@ -87,11 +93,12 @@ try {
|
|||
'conference' => new GenericConference(),
|
||||
));
|
||||
|
||||
if(startswith('//', @$GLOBALS['CONFIG']['BASEURL']))
|
||||
if(isset($GLOBALS['CONFIG']['BASEURL']) && startswith('//', $GLOBALS['CONFIG']['BASEURL']))
|
||||
{
|
||||
$mandator = isset($GLOBALS['MANDATOR']) ? $GLOBALS['MANDATOR'] : "";
|
||||
$tpl->set(array(
|
||||
'httpsurl' => forceslash(forceslash('https:'.$GLOBALS['CONFIG']['BASEURL']).@$GLOBALS['MANDATOR']).forceslash($route).url_params(),
|
||||
'httpurl' => forceslash(forceslash('http:'. $GLOBALS['CONFIG']['BASEURL']).@$GLOBALS['MANDATOR']).forceslash($route).url_params(),
|
||||
'httpsurl' => forceslash(forceslash('https:'.$GLOBALS['CONFIG']['BASEURL']).$mandator).forceslash($route).url_params(),
|
||||
'httpurl' => forceslash(forceslash('http:'. $GLOBALS['CONFIG']['BASEURL']).$mandator).forceslash($route).url_params(),
|
||||
));
|
||||
}
|
||||
|
||||
|
@ -128,7 +135,7 @@ try {
|
|||
exit;
|
||||
}
|
||||
|
||||
@list($mandator, $route) = explode('/', $route, 2);
|
||||
list($mandator, $route) = array_pad(explode('/', $route, 2), 2, "");
|
||||
if(!$mandator)
|
||||
{
|
||||
// root requested
|
||||
|
|
|
@ -13,10 +13,12 @@ if(!function_exists('h'))
|
|||
class PhpTemplate
|
||||
{
|
||||
private $data = array();
|
||||
public $file;
|
||||
|
||||
public function __construct($file)
|
||||
{
|
||||
$this->file = $file;
|
||||
$this->data["naked"] = false;
|
||||
}
|
||||
|
||||
public function set($___data = array())
|
||||
|
|
|
@ -36,6 +36,9 @@ function joinpath($parts)
|
|||
|
||||
function forceslash($url)
|
||||
{
|
||||
if ($url == NULL) {
|
||||
$url = "";
|
||||
}
|
||||
$url = rtrim($url, '/');
|
||||
if(strlen($url) > 0)
|
||||
$url .= '/';
|
||||
|
@ -241,8 +244,20 @@ function query_data($operation, $query, $variables = [], $assoc = false, $cache
|
|||
if (is_null($r)) {
|
||||
throw new NotFoundException();
|
||||
}
|
||||
|
||||
|
||||
// TODO: add error handling?
|
||||
// TODO: should we return the cached value, when we did not get an answer?
|
||||
return $assoc ? @$r['data'] : @$r->data;
|
||||
if ($assoc) {
|
||||
if (isset($r['data'])) {
|
||||
return $r['data'];
|
||||
} else {
|
||||
throw new NotFoundException();
|
||||
}
|
||||
} else {
|
||||
if (isset($r->data)) {
|
||||
return $r->data;
|
||||
} else {
|
||||
throw new NotFoundException();
|
||||
}
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load diff
|
@ -20,7 +20,7 @@ class Conference extends ModelBase
|
|||
}
|
||||
|
||||
public function isPreviewEnabled() {
|
||||
if(@$GLOBALS['forceopen'])
|
||||
if(isset($GLOBALS['forceopen']) && $GLOBALS['forceopen'])
|
||||
return true;
|
||||
|
||||
if($this->has('PREVIEW_DOMAIN') && ($this->get('PREVIEW_DOMAIN') == $_SERVER['SERVER_NAME']))
|
||||
|
|
|
@ -12,26 +12,32 @@ class ConferenceJson extends Conference
|
|||
$c = $json->conference;
|
||||
$this->start = DateTime::createFromFormat(DateTimeInterface::ISO8601, $c->start);
|
||||
$this->end = DateTime::createFromFormat(DateTimeInterface::ISO8601, $c->end);
|
||||
$this->html = @$c->streamingConfig->html ?: [];
|
||||
$this->html = isset($c->streamingConfig->html) ? $c->streamingConfig->html : [];
|
||||
|
||||
$this->rooms = [];
|
||||
$rooms = (is_array(@$c->rooms) ? $c->rooms : @$c->rooms->nodes) ?: [];
|
||||
if (isset($c->rooms)) {
|
||||
if (is_array($c->rooms)) {
|
||||
$rooms = $c->rooms;
|
||||
} else {
|
||||
$rooms = isset($c->rooms->nodes) ? $c->rooms->nodes : [];
|
||||
}
|
||||
}
|
||||
foreach($rooms as $r) {
|
||||
if (!$r) {
|
||||
continue;
|
||||
}
|
||||
$this->rooms[$r->slug] = array_merge(
|
||||
['stream' => $r->streamId],
|
||||
get_object_vars($r),
|
||||
@get_object_vars($r->streamingConfig) ?: [],
|
||||
@get_object_vars($r->streamingConfig->chat) ?: []
|
||||
get_object_vars($r),
|
||||
(isset($r->streamingConfig) ? get_object_vars($r->streamingConfig) : []),
|
||||
(isset($r->streamingConfig->chat) ? get_object_vars($r->streamingConfig->chat) : [])
|
||||
);
|
||||
}
|
||||
|
||||
$groups = [];
|
||||
if ( isset($c->streamingConfig->overviewPage->sections) ) {
|
||||
foreach(@$c->streamingConfig->overviewPage->sections as $s) {
|
||||
$groups[@$s->title] = array_map(
|
||||
foreach($c->streamingConfig->overviewPage->sections as $s) {
|
||||
$groups[$s->title] = array_map(
|
||||
function($r) { return $r->slug; },
|
||||
@$s->items ?: @$s->rooms ?: []
|
||||
);
|
||||
|
@ -44,15 +50,15 @@ class ConferenceJson extends Conference
|
|||
$acronym = $mandator ?: $c->acronym;
|
||||
|
||||
parent::__construct(array_merge(
|
||||
@get_object_vars($c->streamingConfig) ?: [],
|
||||
@get_object_vars($c->streamingConfig->features) ?: [],
|
||||
@get_object_vars($c->streamingConfig->features->chat) ?: [],
|
||||
isset($c->streamingConfig) ? get_object_vars($c->streamingConfig) : [],
|
||||
isset($c->streamingConfig->features) ? get_object_vars($c->streamingConfig->features) : [],
|
||||
isset($c->streamingConfig->features->chat) ? get_object_vars($c->streamingConfig->features->chat) : [],
|
||||
[
|
||||
'conference' => [
|
||||
'title' => $c->title,
|
||||
'author' => $c->organizer,
|
||||
'description' => $c->description,
|
||||
'keywords' => @implode(', ', $c->keywords),
|
||||
'keywords' => is_array($c->keywords) ? implode(', ', $c->keywords) : "",
|
||||
// future TODO: change structure
|
||||
"relive_json" => @$c->streamingConfig->features->relive !== false ? "https://cdn.c3voc.de/relive/".$acronym."/index.json" : null,
|
||||
"releases" => @$c->streamingConfig->features->releases !== false ? "https://media.ccc.de/c/".$acronym : null
|
||||
|
@ -140,21 +146,21 @@ class ConferenceJson extends Conference
|
|||
return !empty($this->html->banner);
|
||||
}
|
||||
public function getBannerHtml() {
|
||||
return @$this->html->banner;
|
||||
return isset($this->html->banner) ? $this->html->banner : "";
|
||||
}
|
||||
|
||||
public function hasFooterHtml() {
|
||||
return !empty($this->html->footer);
|
||||
}
|
||||
public function getFooterHtml() {
|
||||
return @$this->html->footer;
|
||||
return isset($this->html->footer) ? $this->html->footer : "";
|
||||
}
|
||||
|
||||
public function hasNotStartedHtml() {
|
||||
return !empty($this->html->not_started);
|
||||
}
|
||||
public function getNotStartedHtml() {
|
||||
return @$this->html->not_started;
|
||||
return isset($this->html->not_started) ? $this->html->not_started : "";
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -65,7 +65,8 @@ class Conferences
|
|||
}
|
||||
|
||||
public static function getLastConference() {
|
||||
return @Conferences::getFinishedConferencesSorted()[0];
|
||||
$conferences = Conferences::getFinishedConferencesSorted();
|
||||
return isset($conferences[0]) ? $conferences[0] : null;
|
||||
}
|
||||
|
||||
public static function exists($mandator) {
|
||||
|
@ -133,7 +134,7 @@ class Conferences
|
|||
}
|
||||
|
||||
// config option for dynamic lookup feature defined below
|
||||
if (!@$GLOBALS['CONFIG']['DYNAMIC_LOOKUP']) {
|
||||
if (isset($GLOBALS['CONFIG']['DYNAMIC_LOOKUP']) && !$GLOBALS['CONFIG']['DYNAMIC_LOOKUP']) {
|
||||
throw new NotFoundException();;
|
||||
}
|
||||
|
||||
|
|
|
@ -10,9 +10,10 @@ class Feedback
|
|||
}
|
||||
|
||||
private function get($key) {
|
||||
$global_feedback_elem = isset($GLOBALS['CONFIG']['FEEDBACK'][$key]) ? $GLOBALS['CONFIG']['FEEDBACK'][$key] : "";
|
||||
return $this->conference->has(['FEEDBACK', $key])
|
||||
? $this->conference->get(['FEEDBACK', $key])
|
||||
: @$GLOBALS['CONFIG']['FEEDBACK'][$key];
|
||||
: $global_feedback_elem;
|
||||
}
|
||||
|
||||
public function getConference() {
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
|
||||
class Overview
|
||||
{
|
||||
public $conference;
|
||||
|
||||
public function __construct(Conference $conference)
|
||||
{
|
||||
$this->conference = $conference;
|
||||
|
|
|
@ -50,12 +50,20 @@ class Room
|
|||
}
|
||||
|
||||
public function getSlug() {
|
||||
return $this->slug;
|
||||
if ($this->slug != NULL) {
|
||||
return $this->slug;
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
private function get($key, $fallbackValue = null) {
|
||||
$keychain = 'ROOMS.'.$this->getSlug().'.'.$key;
|
||||
return $this->conference->get($keychain, $fallbackValue ?: @$GLOBALS['CONFIG']['ROOM_DEFAULTS'][$key]);
|
||||
$fallback = null;
|
||||
if (isset($GLOBALS['CONFIG']['ROOM_DEFAULTS'][$key])) {
|
||||
$fallback = $GLOBALS['CONFIG']['ROOM_DEFAULTS'][$key];
|
||||
}
|
||||
return $this->conference->get($keychain, $fallbackValue ?: $fallback);
|
||||
}
|
||||
|
||||
private function has($key) {
|
||||
|
|
|
@ -2,6 +2,9 @@
|
|||
|
||||
class RoomSelection
|
||||
{
|
||||
public $room;
|
||||
public $selection;
|
||||
|
||||
public function __construct(Room $room, $selection)
|
||||
{
|
||||
$this->room = $room;
|
||||
|
|
|
@ -2,6 +2,9 @@
|
|||
|
||||
class RoomTab
|
||||
{
|
||||
public $room;
|
||||
public $tab;
|
||||
|
||||
public function __construct(Room $room, $tab)
|
||||
{
|
||||
$this->room = $room;
|
||||
|
|
|
@ -54,7 +54,8 @@ class Schedule
|
|||
|
||||
public function getMappedRoom($scheduleRoom) {
|
||||
$mapping = $this->getScheduleToRoomSlugMapping();
|
||||
return $this->getConference()->getRoomIfExists( @$mapping[$scheduleRoom] );
|
||||
$room = isset($mapping[$scheduleRoom]) ? $mapping[$scheduleRoom] : "";
|
||||
return $this->getConference()->getRoomIfExists( $room );
|
||||
}
|
||||
|
||||
public function getScheduleDisplayTime($basetime = null)
|
||||
|
@ -68,12 +69,16 @@ class Schedule
|
|||
|
||||
private function fetchSchedule()
|
||||
{
|
||||
$schedule = @file_get_contents($this->getScheduleCache());
|
||||
|
||||
if(!$schedule)
|
||||
try {
|
||||
$schedule = file_get_contents($this->getScheduleCache());
|
||||
|
||||
if(!$schedule)
|
||||
return null;
|
||||
|
||||
return simplexml_load_string($schedule);
|
||||
} catch (ErrorException $e) {
|
||||
return null;
|
||||
|
||||
return simplexml_load_string($schedule);
|
||||
}
|
||||
}
|
||||
|
||||
public function getRoomSchedule($roomName, $roomGuid) {
|
||||
|
@ -359,7 +364,15 @@ class Schedule
|
|||
$this->mapping = array();
|
||||
foreach($this->getConference()->get('ROOMS') as $slug => $room)
|
||||
{
|
||||
$key = @$room['name'] ?: @$room['SCHEDULE_NAME'] ?: @$room['DISPLAY'] ?: $slug;
|
||||
// json has 'name', config.php has 'SCHEDULE_NAME' and 'DISPLAY'
|
||||
$key = $slug;
|
||||
if (isset($room['name'])) {
|
||||
$key = $room['name'];
|
||||
} elseif ($room['SCHEDULE_NAME']) {
|
||||
$key = $room['SCHEDULE_NAME'];
|
||||
} elseif ($room['DISPLAY']) {
|
||||
$key = $room['DISPLAY'];
|
||||
}
|
||||
$this->mapping[$key] = $slug;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,6 +2,11 @@
|
|||
|
||||
class Stream
|
||||
{
|
||||
public $room;
|
||||
public $selection;
|
||||
public $language;
|
||||
public $translation_label;
|
||||
|
||||
public function __construct(Room $room, $selection, $language, $translation_label = null)
|
||||
{
|
||||
$this->room = $room;
|
||||
|
|
|
@ -102,7 +102,7 @@
|
|||
|
||||
<div class="form-group">
|
||||
<label for="datetime">Date/Time</label>
|
||||
<input type="text" value="<?=h(strftime('%d.%m.%Y %H:%I'))?>" name="datetime" id="datetime" class="form-control" />
|
||||
<input type="text" value="<?=h(date('d.m.Y H:i'))?>" name="datetime" id="datetime" class="form-control" />
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
|
|
|
@ -25,8 +25,13 @@
|
|||
<div class="room <? if(isset($room) && ($roomname == $room->getScheduleName() || ($scheduleRoom && $scheduleRoom->getId() === $room->getId()))): ?>highlight<? endif ?>" style="width: <?= h($totalWidth) ?>px">
|
||||
<? $fromstart = 0; ?>
|
||||
<? foreach($events as $event): ?>
|
||||
<? $special = isset($event['special']) ? $event['special'] : ''; ?>
|
||||
<? $event_is_optout = isset($event['optout']) ? $event['optout'] : false; ?>
|
||||
<? $event_guid = isset($event['guid']) ? $event['guid'] : ''; ?>
|
||||
<? $event_url = isset($event['url']) ? $event['url'] : ''; ?>
|
||||
<? $event_title = isset($event['title']) ? $event['title'] : ''; ?>
|
||||
<div
|
||||
class="block <?=h(@$event['special'] ?: 'event')?> <?=h((@$event['optout']) ? 'optout' : '')?>"
|
||||
class="block <?=h($special ?: 'event')?> <?=h($event_is_optout ? 'optout' : '')?>"
|
||||
style="width: <?=h(round($event['duration'] / $schedule->getScale()))?>px; left: <?=h(round($fromstart / $schedule->getScale()))?>px"
|
||||
data-start="<?=intval($event['start'])?>"
|
||||
data-end="<?=intval($event['end'])?>"
|
||||
|
@ -42,21 +47,21 @@
|
|||
href="<?=h($scheduleRoom->createTabObject()->getLink($roomname))?>"
|
||||
<? endif ?>
|
||||
title="Switch to <?=h($scheduleRoom->getDisplay())?>"
|
||||
onmouseover="showEventDetails(event, {title:'<?=@$event['title']?>', guid:'<?=@$event['guid']?>', url:'<?=@$event['url']?>', type:'<?=@$event['special']?>'})"
|
||||
onmouseover="showEventDetails(event, {title:'<?=$event_title?>', guid:'<?=$event_guid?>', url:'<?=$event_url?>', type:'<?=@$special?>'})"
|
||||
>
|
||||
<? else: ?>
|
||||
<div class="inner">
|
||||
<? endif ?>
|
||||
|
||||
<? if(@$event['special'] == 'daychange'): ?>
|
||||
<? if(@$special == 'daychange'): ?>
|
||||
|
||||
<h3><?=h($event['title'])?></h3>
|
||||
|
||||
<? elseif(@$event['special'] == 'gap'): ?>
|
||||
<? elseif(@$special == 'gap'): ?>
|
||||
|
||||
<!--h3>Gap</h3-->
|
||||
|
||||
<? elseif(@$event['special'] == 'pause'): ?>
|
||||
<? elseif(@$special == 'pause'): ?>
|
||||
|
||||
<h3><?=h($event['title'])?></h3>
|
||||
|
||||
|
@ -70,7 +75,7 @@
|
|||
</h4>
|
||||
<? endif ?>
|
||||
<h3 title="<?=$event['title']?>">
|
||||
<?=h($event['title'])?><? if (@$event['optout']): ?><i> (no recording)</i><? endif ?>
|
||||
<?=h($event['title'])?><? if ($event_is_optout): ?><i> (no recording)</i><? endif ?>
|
||||
</h3>
|
||||
<? if(! empty(trim($event['speaker']))): ?>
|
||||
<h5>by <?=h($event['speaker'])?></h5>
|
||||
|
|
|
@ -104,14 +104,15 @@
|
|||
$upcoming = @$upcomingTalksPerRoom[ $room->getSlug() ] ?: [];
|
||||
// echo var_dump($upcoming);
|
||||
$current = @$upcoming['current'];
|
||||
$next = @$upcoming['next']; ?>
|
||||
$next = @$upcoming['next'];
|
||||
$next_is_special = isset($next['special']) ? $next['special'] : false; ?>
|
||||
<div class="program-schedule">
|
||||
<? if($current && !@$current['special']): ?>
|
||||
<div class="talk current-talk" title="<?=h(@$current['title'] ?: 'none') ?>">
|
||||
<strong>Now (since <?=date('G:i', @$current['start']) ?>):</strong><br/>
|
||||
<span class="t"><?=h(@$current['title'] ?: 'none') ?></span>
|
||||
</div>
|
||||
<? endif; if($next && !@$next['special']): ?>
|
||||
<? endif; if($next && !$next_is_special): ?>
|
||||
<div class="talk next-talk" title="<?=h(@$next['title'] ?: 'none') ?>">
|
||||
<strong>Next (<?=date('G:i', @$next['start']) ?>):</strong><br/>
|
||||
<span class="t"><?=h(@$next['title'] ?: 'none') ?></span>
|
||||
|
|
|
@ -6,7 +6,7 @@ echo $tpl->render(array(
|
|||
'page' => 'allclosed',
|
||||
'title' => 'See you soon … somewhere else!',
|
||||
|
||||
'next' => @$events[0],
|
||||
'next' => isset($events[0]) ? $events[0] : null,
|
||||
'events' => $events,
|
||||
'last' => Conferences::getLastConference(),
|
||||
));
|
||||
|
|
|
@ -6,6 +6,6 @@ echo $tpl->render(array(
|
|||
'page' => 'closed',
|
||||
'title' => 'See you soon … somewhere else!',
|
||||
|
||||
'next' => @$events[0],
|
||||
'next' => isset($events[0]) ? $events[0] : null,
|
||||
'events' => $events,
|
||||
));
|
||||
|
|
|
@ -28,5 +28,5 @@ echo $tpl->render(array(
|
|||
'room' => $room,
|
||||
'stream' => $stream,
|
||||
|
||||
'autoplay' => @$_GET['autoplay'],
|
||||
'autoplay' => isset($_GET['autoplay']) ? $_GET['autoplay'] : false,
|
||||
));
|
||||
|
|
|
@ -5,5 +5,5 @@ echo $tpl->render(array(
|
|||
'title' => 'Stream-Übersicht',
|
||||
|
||||
'rooms' => $conference->getRooms(),
|
||||
'selection' => @$_GET['selection'],
|
||||
'selection' => isset($_GET['selection']) ? $_GET['selection'] : "",
|
||||
));
|
||||
|
|
Loading…
Reference in a new issue