diff options
Diffstat (limited to '')
| -rw-r--r-- | configs/conferences/35c3/assets/Makefile | 10 | ||||
| -rw-r--r-- | configs/conferences/35c3/assets/logo.svg | 43 | ||||
| -rw-r--r-- | configs/conferences/35c3/assets/min/logo.svg | 1 | ||||
| -rw-r--r-- | configs/conferences/35c3/config.php | 702 | ||||
| -rw-r--r-- | configs/conferences/35c3/main.less | 36 | 
5 files changed, 792 insertions, 0 deletions
| diff --git a/configs/conferences/35c3/assets/Makefile b/configs/conferences/35c3/assets/Makefile new file mode 100644 index 0000000..51392b6 --- /dev/null +++ b/configs/conferences/35c3/assets/Makefile @@ -0,0 +1,10 @@ +SVGFILES := $(wildcard *.svg) +MINSVGS := $(SVGFILES:%.svg=min/%.svg) + +all: $(MINSVGS) + +min/%.svg : %.svg +	svgo -i $*.svg -o min/$*.svg + +clean: +	rm -f $(MINSVGS) diff --git a/configs/conferences/35c3/assets/logo.svg b/configs/conferences/35c3/assets/logo.svg new file mode 100644 index 0000000..c48952d --- /dev/null +++ b/configs/conferences/35c3/assets/logo.svg @@ -0,0 +1,43 @@ +<?xml version="1.0" encoding="utf-8"?>
 +<!-- Generator: Adobe Illustrator 23.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
 +<svg version="1.0" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
 +	 viewBox="0 0 398.98 180.69" style="enable-background:new 0 0 398.98 180.69;" xml:space="preserve">
 +<style type="text/css">
 +	.st0{fill:url(#SVGID_1_);}
 +</style>
 +<g id="Back">
 +	<rect width="398.98" height="180.69"/>
 +</g>
 +<g id="Logo">
 +	<g>
 +		<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="28.8678" y1="91.8235" x2="370.8653" y2="91.8235">
 +			<stop  offset="0" style="stop-color:#0085B1"/>
 +			<stop  offset="1" style="stop-color:#00A356"/>
 +		</linearGradient>
 +		<path class="st0" d="M231.94,138.21h-60.89v-31.13h23.24c0.51,2.93,3.05,5.17,6.14,5.17c3.45,0,6.24-2.8,6.24-6.24
 +			c0-1.04-0.27-1.99-0.72-2.85l25.99-17.73V138.21z M200.42,101.73c2.35,0,4.27,1.91,4.27,4.27c0,2.35-1.91,4.26-4.27,4.26
 +			c-2.36,0-4.27-1.91-4.27-4.26C196.15,103.64,198.06,101.73,200.42,101.73 M231.94,82.93l-27.22,18.56
 +			c-1.12-1.07-2.63-1.74-4.3-1.74c-3.11,0-5.67,2.29-6.15,5.26h-23.23c0,0,0.03-10.6,0.03-12.4c0-5.49-4.46-9.95-9.95-9.95
 +			c-5.5,0-9.95,4.46-9.95,9.95c0,0.11-0.04,4.01-0.04,5.4h-30.88c0.86,2.36,1.51,4.91,1.91,7.71c0.45,3.09,0.75,6.84,0.94,11.13
 +			h28.03v15.63c0,2.06,0.01,5.72,0.01,5.72h-29.38c-0.49-2.96-3.04-5.22-6.14-5.22c-3.1,0-5.65,2.26-6.14,5.22H85.2
 +			c-0.01-0.02,0-15.35,0-15.35c0-15.53-3.71-20.85-13.72-23c-1.71-0.37-5.39-0.34-5.39-0.34V83.68h42.07
 +			c3.95,2.32,6.98,5.06,9.07,8.22c0.11,0.16,0.16,0.38,0.27,0.54V73.16c-2.33,3.69-5.15,6.53-9.43,8.46H66.09V66.53
 +			c6.56,0,10.91-1.47,14.19-4.4c3.28-2.92,4.96-7.6,4.93-14.02c-0.01-1.42-0.03-1.47-0.03-1.47h24.18c0.5,2.95,3.05,5.2,6.14,5.2
 +			c3.09,0,5.64-2.25,6.14-5.2h29.49v13.89c1.85-2.43,4.35-4.42,7.5-6c3.14-1.57,6.71-2.35,10.71-2.35c10.53,0,18.73,2.59,24.7,7.66
 +			v-5.95c0-2.52,0.1-4.91,0.24-7.25h37.66V82.93z M119.77,45.59c0,2.35-1.91,4.27-4.27,4.27c-2.35,0-4.27-1.91-4.27-4.27
 +			c0-2.35,1.91-4.26,4.27-4.26C117.87,41.33,119.77,43.23,119.77,45.59 M111.34,139.23c0-2.35,1.91-4.27,4.27-4.27
 +			c2.36,0,4.27,1.91,4.27,4.27c0,2.35-1.91,4.26-4.27,4.26C113.26,143.5,111.34,141.59,111.34,139.23 M366.53,93.62
 +			c2.09,3.17,3.44,7.04,4.33,11.37V63.95c-0.63,3.07-1.43,5.88-2.51,8.25c-2.23,4.89-5.85,8.52-10.87,10.88h-42.33V68.23
 +			c6.57,0,11.15-1.46,14.44-4.39c3.28-2.92,4.47-7.67,4.47-14.09v-7.73c0-5.28-4.23-9.56-9.45-9.56c-5.22,0-9.45,4.28-9.45,9.56
 +			c0,1.09,0.05,7.11-0.07,8.22v5.57h-29.39v17.78h-36.62v-27.2c0-1.24-0.06-4.61-0.06-5.38c0-4.72-3.82-8.54-8.54-8.54
 +			c-4.72,0-8.54,3.83-8.54,8.54c0,0.74,0.07,3.01,0.05,3.56h-37.58c0.28-3.51,0.71-6.84,1.3-9.96h-44.57v9.96h-29.49
 +			c-0.49-2.96-3.04-5.23-6.14-5.23c-3.1,0-5.65,2.27-6.14,5.23H85.2v-2.55c0-5.28-4.28-9.56-9.55-9.56c-5.28,0-9.55,4.28-9.55,9.56
 +			c0,1.01,0.06,12.08,0.06,12.08H28.87v60.18h37.23v27.34c0,5.28,4.28,9.56,9.55,9.56c5.28,0,9.55-4.28,9.55-9.56v-1.35h24.27
 +			c0.5,2.95,3.05,5.21,6.14,5.21c3.1,0,5.64-2.26,6.14-5.21h29.39v0.94c0,5.5,4.46,9.96,9.96,9.96c5.5,0,9.97-4.46,9.97-9.96
 +			c0-0.3-0.06-0.58-0.09-0.87c0-0.02,0.01-0.04,0.01-0.07h60.94c0,0.02,0,1.67,0,2.37c0,4.72,3.82,8.54,8.54,8.54
 +			c4.72,0,8.54-3.82,8.54-8.54c0-0.41,0.06-3.17,0.06-4.37v-33.2h36.62v10.92h29.46v19.28v6.35c0,5.28,4.23,9.56,9.45,9.56
 +			c5.22,0,9.45-4.28,9.45-9.56c0-0.69,0.03-8.15,0.03-12.35v-4.49c0-15.85-4.12-21.24-11.36-23.15c-2.26-0.6-7.58-0.41-7.58-0.41
 +			V85.14h42.32C361.62,87.51,364.37,90.34,366.53,93.62"/>
 +	</g>
 +</g>
 +</svg>
 diff --git a/configs/conferences/35c3/assets/min/logo.svg b/configs/conferences/35c3/assets/min/logo.svg new file mode 100644 index 0000000..85d9293 --- /dev/null +++ b/configs/conferences/35c3/assets/min/logo.svg @@ -0,0 +1 @@ +<svg version="1.0" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 398.98 180.69"><path d="M0 0h398.98v180.69H0z"/><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="28.868" y1="91.823" x2="370.865" y2="91.823"><stop offset="0" stop-color="#0085b1"/><stop offset="1" stop-color="#00a356"/></linearGradient><path d="M231.94 138.21h-60.89v-31.13h23.24c.51 2.93 3.05 5.17 6.14 5.17 3.45 0 6.24-2.8 6.24-6.24 0-1.04-.27-1.99-.72-2.85l25.99-17.73v52.78zm-31.52-36.48c2.35 0 4.27 1.91 4.27 4.27 0 2.35-1.91 4.26-4.27 4.26a4.266 4.266 0 1 1 0-8.53m31.52-18.8l-27.22 18.56a6.21 6.21 0 0 0-4.3-1.74c-3.11 0-5.67 2.29-6.15 5.26h-23.23s.03-10.6.03-12.4c0-5.49-4.46-9.95-9.95-9.95-5.5 0-9.95 4.46-9.95 9.95 0 .11-.04 4.01-.04 5.4h-30.88c.86 2.36 1.51 4.91 1.91 7.71.45 3.09.75 6.84.94 11.13h28.03v15.63c0 2.06.01 5.72.01 5.72h-29.38c-.49-2.96-3.04-5.22-6.14-5.22-3.1 0-5.65 2.26-6.14 5.22H85.2c-.01-.02 0-15.35 0-15.35 0-15.53-3.71-20.85-13.72-23-1.71-.37-5.39-.34-5.39-.34V83.68h42.07c3.95 2.32 6.98 5.06 9.07 8.22.11.16.16.38.27.54V73.16c-2.33 3.69-5.15 6.53-9.43 8.46H66.09V66.53c6.56 0 10.91-1.47 14.19-4.4 3.28-2.92 4.96-7.6 4.93-14.02-.01-1.42-.03-1.47-.03-1.47h24.18c.5 2.95 3.05 5.2 6.14 5.2s5.64-2.25 6.14-5.2h29.49v13.89c1.85-2.43 4.35-4.42 7.5-6 3.14-1.57 6.71-2.35 10.71-2.35 10.53 0 18.73 2.59 24.7 7.66v-5.95c0-2.52.1-4.91.24-7.25h37.66v36.29zM119.77 45.59c0 2.35-1.91 4.27-4.27 4.27-2.35 0-4.27-1.91-4.27-4.27 0-2.35 1.91-4.26 4.27-4.26 2.37 0 4.27 1.9 4.27 4.26m-8.43 93.64c0-2.35 1.91-4.27 4.27-4.27a4.266 4.266 0 0 1 0 8.53 4.26 4.26 0 0 1-4.27-4.26m255.19-45.61c2.09 3.17 3.44 7.04 4.33 11.37V63.95c-.63 3.07-1.43 5.88-2.51 8.25-2.23 4.89-5.85 8.52-10.87 10.88h-42.33V68.23c6.57 0 11.15-1.46 14.44-4.39 3.28-2.92 4.47-7.67 4.47-14.09v-7.73c0-5.28-4.23-9.56-9.45-9.56-5.22 0-9.45 4.28-9.45 9.56 0 1.09.05 7.11-.07 8.22v5.57H285.7v17.78h-36.62v-27.2c0-1.24-.06-4.61-.06-5.38 0-4.72-3.82-8.54-8.54-8.54-4.72 0-8.54 3.83-8.54 8.54 0 .74.07 3.01.05 3.56h-37.58c.28-3.51.71-6.84 1.3-9.96h-44.57v9.96h-29.49c-.49-2.96-3.04-5.23-6.14-5.23-3.1 0-5.65 2.27-6.14 5.23H85.2v-2.55c0-5.28-4.28-9.56-9.55-9.56-5.28 0-9.55 4.28-9.55 9.56 0 1.01.06 12.08.06 12.08H28.87v60.18H66.1v27.34c0 5.28 4.28 9.56 9.55 9.56 5.28 0 9.55-4.28 9.55-9.56v-1.35h24.27c.5 2.95 3.05 5.21 6.14 5.21 3.1 0 5.64-2.26 6.14-5.21h29.39v.94c0 5.5 4.46 9.96 9.96 9.96 5.5 0 9.97-4.46 9.97-9.96 0-.3-.06-.58-.09-.87 0-.02.01-.04.01-.07h60.94v2.37c0 4.72 3.82 8.54 8.54 8.54 4.72 0 8.54-3.82 8.54-8.54 0-.41.06-3.17.06-4.37v-33.2h36.62v10.92h29.46V141.62c0 5.28 4.23 9.56 9.45 9.56 5.22 0 9.45-4.28 9.45-9.56 0-.69.03-8.15.03-12.35v-4.49c0-15.85-4.12-21.24-11.36-23.15-2.26-.6-7.58-.41-7.58-.41V85.14h42.32c4.16 2.37 6.91 5.2 9.07 8.48" fill="url(#a)"/></svg>
\ No newline at end of file diff --git a/configs/conferences/35c3/config.php b/configs/conferences/35c3/config.php new file mode 100644 index 0000000..5642f8a --- /dev/null +++ b/configs/conferences/35c3/config.php @@ -0,0 +1,702 @@ +<?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("2018-12-27 09: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("2018-12-30 20: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, +	 'CLOSED' => false, # TODO remove + +	/** +	 * Mit diesem Schalter kann die Veranstaltung von der Startseite und der API +	 * versteckt werden, ist aber dennoch über ihre URL verfügbar. +	 * +	 * Dies ist z.B. nützlich um eine kleinere Streamingseite für Übersetzer +	 * bereit zu stellen. Werte: true|false Default: false +	 */ +	 'UNLISTED' => false, + +	/** +	 * 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' => '35C3', + +	/** +	 * Veranstalter +	 * Wird für den <meta name="author">-Tag verdet. Wird diese Zeile auskommentiert, wird kein solcher +	 * <meta>-Tag generiert. +	 */ +	'AUTHOR' => 'CCC', + +	/** +	 * Beschreibungstext +	 * Wird für den <meta name="description">-Tag verdet. Wird diese Zeile auskommentiert, wird kein solcher +	 * <meta>-Tag generiert. +	 */ +	'DESCRIPTION' => 'Live streaming from the 35th Chaos Communication Congress', + +	/** +	 * Schlüsselwortliste, Kommasepariert +	 * Wird für den <meta name="keywords">-Tag verdet. Wird diese Zeile auskommentiert, wird kein solcher +	 * <meta>-Tag generiert. +	 */ +	'KEYWORDS' => '35C3, Hacking, Chaos Computer Club, Video, Music, Podcast, Media, Streaming, Hacker, Leipzig, Refreshing Memories', + +	/** +	 * 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://ccc.de">Chaos Computer Club e.V</a>, +		<a href="https://www.isystems.at/">iSystems</a>, +		<a href="https://fem.tu-ilmenau.de/">FeM</a>, +		<a href="http://www.ags.tu-bs.de/">ags</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' => ' +		<h1>35C3 REFRESHING MEMORIES</h1> +		<img src="configs/conferences/35c3/assets/min/logo.svg" width="810px" height="388px" alt="35C3 refreshing memories logo"/> +	', + +	/** +	 * Link zu den Recordings +	 * Wird diese Zeile auskommentiert, wird der Link nicht angezeigt +	 */ +	'RELEASES' => 'https://media.ccc.de/c/35c3', + +	/** +	 * Um die interne ReLive-Ansicht zu aktivieren, kann hier ein ReLive-JSON +	 * konfiguriert werden. Üblicherweise wird diese Datei über das Script +	 * configs/download.sh heruntergeladen, welches von einem Cronjob +	 * regelmäßig getriggert wird. +	 * +	 * Wird diese Zeile auskommentiert, wird der Link nicht angezeigt +	 */ +	'RELIVE_JSON' => 'https://live.dus.c3voc.de/relive/35c3/index.json', # TODO check +); + +/** + * 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( +		'Live' => array( +			'halla', +			'hallb', +			'hallc', +			'halld', +			'halle', +		), +	), +); + + + +/** + * 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. +	 * +	 * Der Raum-Slug darf ausschliesslich aus "unkritischen" Zeichen +	 * ([a-zA-Z0-9_\-]) bestehen und insbesondere keine Leerzeichen +	 * enthalten. +	 */ +	'halla' => array( +		/** +		 * Angezeige-Name +		 */ +		'DISPLAY' => 'Saal A', + +		/** +		 * 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' => 'sX', + +		/** +		 * 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. +		 * +		 * Betrifft video sd / hd, slides, audio +		 * +		 * Ein Label für die Übersetzung oder mehrere Übersetzungsspuren können +		 * wie folgt konfiguriert werden: +		 * +		 * 'TRANSLATION' => [ +		 *    ['endpoint' => 'translated',   'label' => 'Translated1'], +		 *    ['endpoint' => 'translated-2', 'label' => 'Translated2'] +		 * ], +		 * +		 * Ein einfaches true entspricht dabei folgendem: +		 * +		 * 'TRANSLATION' => [ +		 *   ['endpoint' => 'translated', 'label' => 'Translated'] +		 * ], +		 * +		 * Sollte die Sprache während der Veranstaltung Konstant sein, kann ein +		 * Label auch spezifisch konfiguriert werden z.B. 'label' => 'English'. +		 */ +		'TRANSLATION' => [ +			['endpoint' => 'translated',   'label' => 'Translated1'], +			['endpoint' => 'translated-2', 'label' => 'Translated2'] +		], + +		/** +		 * 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, +		'DASH' => 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' => true, + +		/** +		 * 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-Display-Name verwendet +		 */ +		'SCHEDULE_NAME' => 'Saal A', + +		/** +		 * 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' => true, + +		/** +		 * 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, + +		/** +		 * ID des Raumes im L2S2-System (int) +		 * +		 * Wenn diese Zeile auskommentiert oder auf false gesetzt ist, +		 * für diesen Raum das Subtitles-System deaktiviert. +		 */ +		'SUBTITLES_ROOM_ID' => 1, + +		/** +		 * 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' => '#35C3-hall-a @ hackint', # TODO check +			'URL'     => 'irc://irc.hackint.eu:6667/35C3-hall-a', +		), + +		/** +		 * 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' => '#hallA @ twitter', +			'TEXT'    => '#35C3 #hallA', +		), +	), + +	'hallb' => array( +		'DISPLAY' => 'Saal B', +		'STREAM' => 'sX', +		'PREVIEW' => true, +		'TRANSLATION' => [ +			['endpoint' => 'translated',   'label' => 'Translated1'], +			['endpoint' => 'translated-2', 'label' => 'Translated2'] +		], +		'SD_VIDEO' => true, +		'HD_VIDEO' => true, +		'DASH' => true, +		'AUDIO' => true, +		'SLIDES' => true, +		'MUSIC' => false, + +		'SCHEDULE' => true, +		'SCHEDULE_NAME' => 'Saal B', +		'FEEDBACK' => true, +		'SUBTITLES' => false, +		'SUBTITLES_ROOM_ID' => 2, +		'EMBED' => true, +		'IRC' => true, +		'IRC_CONFIG' => array( +			'DISPLAY' => '#35C3-hall-b @ hackint', # TODO check +			'URL'     => 'irc://irc.hackint.eu:6667/35C3-hall-c', +		), +		'TWITTER' => true, +		'TWITTER_CONFIG' => array( +			'DISPLAY' => '#hallB @ twitter', +			'TEXT'    => '#35C3 #hallB', +		), +	), + +	'hallc' => array( +		'DISPLAY' => 'Saal C', +		# Joan Clarke +		'STREAM' => 'sX', +		'PREVIEW' => true, +		'TRANSLATION' => [ +			['endpoint' => 'translated',   'label' => 'Translated1'], +			['endpoint' => 'translated-2', 'label' => 'Translated2'] +		], +		'SD_VIDEO' => true, +		'HD_VIDEO' => true, +		'DASH' => true, +		'AUDIO' => true, +		'SLIDES' => true, +		'MUSIC' => false, + +		'SCHEDULE' => true, +		'SCHEDULE_NAME' => 'Saal C', +		'FEEDBACK' => true, +		'SUBTITLES' => false, +		'SUBTITLES_ROOM_ID' => 2, +		'EMBED' => true, +		'IRC' => true, +		'IRC_CONFIG' => array( +			'DISPLAY' => '#35C3-hall-c @ hackint', # TODO check +			'URL'     => 'irc://irc.hackint.eu:6667/35C3-hall-c', +		), +		'TWITTER' => true, +		'TWITTER_CONFIG' => array( +			'DISPLAY' => '#hallC @ twitter', +			'TEXT'    => '#35C3 #hallC', +		), +	), + +	'halld' => array( +		'DISPLAY' => 'Saal D', +		'STREAM' => 'sX', +		'PREVIEW' => true, +		'TRANSLATION' => [ +			['endpoint' => 'translated',   'label' => 'Translated'], +			['endpoint' => 'translated-2', 'label' => 'Translated2'] +		], +		'SD_VIDEO' => true, +		'HD_VIDEO' => true, +		'DASH' => true, +		'AUDIO' => true, +		'SLIDES' => true, +		'MUSIC' => false, + +		'SCHEDULE' => true, +		'SCHEDULE_NAME' => 'Saal E', +		'FEEDBACK' => true, +		'SUBTITLES' => false, +		'SUBTITLES_ROOM_ID' => 2, +		'EMBED' => true, +		'IRC' => true, +		'IRC_CONFIG' => array( +			'DISPLAY' => '#35C3-hall-d @ hackint', # TODO check +			'URL'     => 'irc://irc.hackint.eu:6667/35C3-hall-d', +		), +		'TWITTER' => true, +		'TWITTER_CONFIG' => array( +			'DISPLAY' => '#hallD @ twitter', +			'TEXT'    => '#35C3 #hallD', +		), +	), + +	'halle' => array( +		'DISPLAY' => 'Saal E', +		'STREAM' => 'sX', +		'PREVIEW' => true, +		'TRANSLATION' => [ +			['endpoint' => 'translated',   'label' => 'Translated'], +			['endpoint' => 'translated-2', 'label' => 'Translated2'] +		], +		'SD_VIDEO' => true, +		'HD_VIDEO' => true, +		'DASH' => true, +		'AUDIO' => true, +		'SLIDES' => true, +		'MUSIC' => false, + +		'SCHEDULE' => true, +		'SCHEDULE_NAME' => 'Saal E', +		'FEEDBACK' => true, +		'SUBTITLES' => false, +		'SUBTITLES_ROOM_ID' => 2, +		'EMBED' => true, +		'IRC' => true, +		'IRC_CONFIG' => array( +			'DISPLAY' => '#35C3-hall-e @ hackint', # TODO check +			'URL'     => 'irc://irc.hackint.eu:6667/35C3-hall-e', +		), +		'TWITTER' => true, +		'TWITTER_CONFIG' => array( +			'DISPLAY' => '#hallE @ twitter', +			'TEXT'    => '#35C3 #hallE', +		), +	), + +); + + +/** + * 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önnte die Programm-Ansicht +	 * aufhören zu funktionieren. Üblicherweise wird diese daher Datei über +	 * das Script configs/download.sh heruntergeladen, welches von einem +	 * Cronjob regelmäßig getriggert wird. +	 */ +	'URL' => 'https://fahrplan.events.ccc.de/congress/2018/Fahrplan/schedule.xml', +	#'URL' => 'https://events.ccc.de/congress/2017/Fahrplan/schedule.xml', +	#'URL' => 'http://data.c3voc.de/35C3/everything.schedule.xml', # TODO check + +	/** +	 * Nur die angegebenen Räume aus dem Fahrplan beachten +	 * +	 * Wird diese Zeile auskommentiert, werden alle Räume angezeigt +	 */ +# TODO check, Namen ermitteln +#	'ROOMFILTER' => array('Saal A', 'Saal B', 'Saal C', 'Saal D', 'Saal E'), + +	/** +	 * 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 2016-12-29 auf den heutigen Tag 2016-02-24 verschoben ist. +	 */ +	//'SIMULATE_OFFSET' => strtotime(/* Conference-Date */ '2016-12-27') - strtotime(/* Today */ date('Y-m-d')), +	//'SIMULATE_OFFSET' => 0, +	'SIMULATE_OFFSET' => strtotime(/* Conference-Date */ '2018-12-27') - strtotime(/* Today */ date('Y-m-d')), +); + + + +/** + * Konfiguration des Feedback-Formulars + * + * Wird dieser Block auskommentiert, wird das gesamte Feedback-System deaktiviert + */ +$CONFIG['FEEDBACK'] = array( +	/** +	 * DSN zum abspeichern der eingegebenen Daten +	 * die Datenbank muss eine Tabelle enthaltem, die dem in `lib/schema.sql` angegebenen +	 * Schema entspricht. +	 * +	 * Achtung vor Dateirechten: Bei SQLite reicht es nicht, wenn wer Webseiten-Benutzer +	 * die .sqlite3-Datei schreiben darf, er muss auch im übergeordneten Order neue +	 * (Lock-)Dateien anlegen dürfen +	 */ +	'DSN' => 'sqlite:/opt/streaming-feedback/feedback.sqlite3', + +	/** +	 * Login-Daten für die /feedback/read/-Seite, auf der eingegangenes +	 * Feedback gelesen werden kann. +	 * +	 * Durch auskommentieren der beiden Optionen wird diese Seite komplett deaktiviert, +	 * es kann dann nur noch durch manuelle Inspektion der .sqlite3-Datei auf das Feedback +	 * zugegriffen werden. +	 */ +	'USERNAME' => 'katze', +	'PASSWORD' => trim(@file_get_contents('/opt/streaming-feedback/feedback-password')), +); + +/** + * Globaler Schalter für die Embedding-Funktionalitäten + * + * Wird diese Zeile auskommentiert oder auf False gesetzt, werden alle + * Embedding-Funktionen deaktiviert. + */ +$CONFIG['EMBED'] = true; + +/** + * Konfiguration des L2S2-Systems + * https://github.com/c3subtitles/L2S2 + * + * Wird dieser Block auskommentiert, wird das gesamte Subtitle-System deaktiviert + */ + +// $CONFIG['SUBTITLES'] = array( +// 	/** +// 	 * URL des L2S2 Primus-Servers +// 	 */ +// 	'PRIMUS_URL' => 'https://live.c3subtitles.de/', +// +// 	/** +// 	 * URL des L2S2 Frontend-Servers +// 	 */ +// 	'FRONTEND_URL' => 'https://live.c3subtitles.de/', +// ); + +/** + * 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' => '#35C3-%s @ 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/#33C3-%s' +	 * verwendet werden. +	 * +	 * %s wird durch den urlencodeten Raum-Slug ersetzt. +	 * Eine Anpassung kann ebenfalls in der Raum-Konfiguration vorgenommen werden. +	 */ +	'URL' => 'irc://irc.hackint.eu:6667/35C3-%s', +); + +/** + * 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' => '#%s @ 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' => '#35C3 #%s', +); + +/** + * Liste zusätzlich herunterzuladender Dateien + * + * Dict mit dem Dateinamen im Key und einer URL im Value. Die Dateien werden + * unter dem angegebenen Dateinamen in diesem Konfigurationsordner abgelegt. + */ +$CONFIG['EXTRA_FILES'] = array( +	'schedule.xml'  => 'https://fahrplan.events.ccc.de/congress/2017/Fahrplan/schedule.xml', +	'schedule.json' => 'https://fahrplan.events.ccc.de/congress/2017/Fahrplan/schedule.json', +	'schedule.ics'  => 'https://fahrplan.events.ccc.de/congress/2017/Fahrplan/schedule.ics', +	'schedule.xcal' => 'https://fahrplan.events.ccc.de/congress/2017/Fahrplan/schedule.xcal', + +# TODO CHECK +	'everything.schedule.xml' => 'http://data.c3voc.de/35C3/everything.schedule.xml', +	'everything.schedule.json' => 'http://data.c3voc.de/35C3/everything.schedule.json', + +	'workshops.schedule.xml' => 'http://data.c3voc.de/35C3/workshops.schedule.xml', +	'workshops.schedule.json' => 'http://data.c3voc.de/35C3/workshops.schedule.json', +); + +return $CONFIG; diff --git a/configs/conferences/35c3/main.less b/configs/conferences/35c3/main.less new file mode 100644 index 0000000..fc48412 --- /dev/null +++ b/configs/conferences/35c3/main.less @@ -0,0 +1,36 @@ +@import "../../../assets/css/_structure.less"; + +// conference specific styles here +@color-blue:		#0084B0;	// fresh +@color-green:   #00A356;  // hope +@color-grey:		#4D4D4C;	// reboot + +@color-dark-grey:     darken(@color-grey, 20%); +@color-light-grey:    lighten(@color-grey, 30%); +@color-lighter-grey:  lighten(@color-grey, 40%); + +// often configured values (and their defaults): +@brand-primary:         @color-blue; +@text-color:            @color-grey; + +@link-color:            @color-blue; +@link-hover-color:      @color-green; + +@navbar-height:         70px; + +// TODO darf nicht angegeben sein sonst wird style ignoriert, wtf +//@navbar-default-bg:     transparent; +//@navbar-default-border: transparent; + +@navbar-default-link-color:       white; +@navbar-default-link-hover-color: @link-hover-color; + +body { +	background-color: black; +	padding: @navbar-height 0 +} + +h1, h2, body.overview .room a.title, body.overview .panel-primary a, .navbar-brand { +	font-family: sans-serif; +} + | 
