streaming-website/config.php
Jannik Beyerstedt dc57652519 PHP 8: Handle more errors explicitly
The error control operator "@" has changed behavior in PHP8 and generally seems
like a quite bad hack. So let's handle array/ dict access errors explicitly.
2023-10-27 20:18:21 +02:00

297 lines
No EOL
9.3 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
date_default_timezone_set('Europe/Berlin');
$GLOBALS['CONFIG'] = [];
/**
* Wenn die Webseite über diese Domain aufgerufen wird,
* werden alle OPEN/CLOSED Informationen der einzelnen Konferenzen
* ignoriert und immer alle Konferenzen in der Übersicht angezeigt.
*
* Dies eignet sich gut zum testen der Streaming-Seite, während
* die eigenliche Produktivseite noch nicht sichtbar ist.
*
* Für die Lokale entwicklung kann es hilfreich sein, diese auf
* 'localhost' zu setzen und so ebenfalls unabhängig von den OPEN/CLOSED
* Informationen der einzelnen Konferenzen testen zu können.
*/
$GLOBALS['CONFIG']['PREVIEW_DOMAIN'] = 'xlocalhost';
/**
* Während der Entwicklung wird die BASEURL automatisch erraten
* In Produktionssituationen sollte manuell eine konfiguriert werden um Überraschungen zu vermeiden
*
* 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(isset($_SERVER['SERVER_NAME']) && ($_SERVER['SERVER_NAME'] == 'localhost' || $_SERVER['SERVER_NAME'] == '0.0.0.0'))
{
// keine Konfiguration -> BASEURL wird automatisch erraten
}
else if(isset($_SERVER['SERVER_NAME']) && ($_SERVER['SERVER_NAME'] == 'streaming.test.c3voc.de'))
{
$GLOBALS['CONFIG']['BASEURL'] = '//streaming.test.c3voc.de/';
}
else
{
// Set a safe Default
$GLOBALS['CONFIG']['BASEURL'] = '//streaming.media.ccc.de/';
}
/**
* Wenn die Konfiguration einer Konferenz/Mandant nicht im Dateisystem gefunden wird:
* Soll die Streamingwebseite versuchen diese bei data.c3voc.de per API abzufragen?
*/
$GLOBALS['CONFIG']['DYNAMIC_LOOKUP'] = false;
/**
* Konfiguration für den Datei-Download Cronjob
*/
$GLOBALS['CONFIG']['DOWNLOAD'] = [
/**
* Verweigeren Download, wenn der PHP-Prozess unter einem anderen Benutzer als diesem läuft
* Auskommentieren um alle Benutzer zu erlauben
*/
//'REQUIRE_USER' => 'www-data',
/**
* Wartende HTTP-Downloads nach dieser Anzahl von Sekunden abbrechen
*/
'HTTP_TIMEOUT' => 5 /* Sekunden */,
/**
* Nur Dateien von Konferenzen herunterladen, die weniger als
* diese Anzahl von Tagen alt sind (gemessen am END_DATE)
*
* Auskommentieren, um alle Konferenzen zu beachten
*/
'MAX_CONFERENCE_AGE' => 365 /* Tage */,
];
$GLOBALS['CONFIG']['CDN'] = "cdn.c3voc.de";
/**
* Konfiguration des Feedback-Formulars
*
* Wird dieser Block auskommentiert, wird das gesamte Feedback-System deaktiviert
*/
$GLOBALS['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')),
);
/**
* Konfiguration der Room-Defaults
*
* Falls in der Raum-Konfiguration innerhalb der Konferenz für diese Keys nichts definiert ist,
* fällt das System auf diese Werte zurück.
*/
$GLOBALS['CONFIG']['ROOM_DEFAULTS'] = array(
/**
* Breite Teaser in der Übersichtsseite
*/
'WIDE' => false,
/**
* 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' => 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,
'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 $CONFIG['SCHEDULE']-Blocks in der Konferenz Config deaktiviert werden
*/
'SCHEDULE' => true,
/**
* 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 $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 $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 $CONFIG['EMBED']-Blocks in der Konferenz Config 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 $CONFIG['IRC']-Blocks in der Konferenz Config deaktiviert werden
*/
'IRC' => true,
/**
* 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 $CONFIG['TWITTER']-Blocks deaktiviert werden
**/
'TWITTER' => true,
);