function askBool($sQuestion) { say($sQuestion); $sInput = getCliBool(); say(); return $sInput; }
/** * Farbeinstellungen des Benutzers auslesen * * @return array Farbwerte aus der global.ini als Array */ function getColors() { // Einstellungen aus der global.ini auslesen $hColors = Settings::getValue('global', 'colors'); if (!$hColors) { say("Farbeinstellungen konnten nicht ausgelesen werden"); return false; } $hSettingsToChange = array(); // Hauptfarbe nicht vorhanden -> Alles abbrechen if (!array_key_exists('main', $hColors) || $hColors['main'] === '{{hauptfarbe}}') { say('Es fehlt die Hauptfarbe in der global.ini! '); say('Bitte stellen Sie sicher, dass ein Bereich [colors] vorhanden ist. '); say('Setzen Sie darunter eine Zeile mit dem Inhalt main="#<ihrefarbe>". '); say('Beispiel: '); say('main="#027a8b"'); // Nach Hauptfarbe fragen $sMainColor = null; do { if ($sMainColor !== null) { say('Ihre angegebene Farbe ist keine Hex-Farbe.'); } $sMainColor = ask("Bitte geben Sie Ihre Hauptfarbe im Format #rrggbb an: "); } while (!preg_match('/^#[0-9a-z]{3}([0-9a-z]{3})?$/i', $sMainColor)); $hColors['main'] = $sMainColor; $hSettingsToChange['main'] = '"' . $sMainColor . '"'; } // Akzentfarbe nicht angegeben -> Hauptfarbe uebernehmen if (!array_key_exists('accent', $hColors) || $hColors['accent'] === '{{akzentfarbe}}') { say('Es wurde keine Akzentfarbe angegeben. Verwende Hauptfarbe als Akzentfarbe. '); say('Damit eine Akzentfarbe verwendet werden kann, muss in der global.ini '); say('eine Zeile mit dem Inhalt accent="#<ihrefarbe>" vorhanden sein. '); say('Beispiel: '); say('accent="#f59000"'); // Nach Akzentfarbe fragen $sAccentColor = null; do { if ($sAccentColor !== null) { say('Ihre angegebene Farbe ist keine Hex-Farbe.'); } $sAccentColor = ask("Bitte geben Sie Ihre Akzentfarbe im Format #rrggbb an: "); } while (!preg_match('/^#[0-9a-z]{3}([0-9a-z]{3})?$/i', $sAccentColor)); $hColors['accent'] = $sAccentColor; $hSettingsToChange['accent'] = '"' . $sAccentColor . '"'; } // Darkmode nicht angegeben -> nicht aktivieren if (!array_key_exists('darkmode', $hColors) || $hColors['darkmode'] === '{{farben-invertieren}}') { say('In den Einstellungen fehlt die Angabe der Invertierung. '); say('Soll der Text weiss auf schwarz dargestellt werden? (y/n): '); $hColors['darkmode'] = getCliBool(); $hSettingsToChange['darkmode'] = $hColors['darkmode'] ? 'true' : 'false'; } // Farbcode-Angaben auch in der global.ini uebernehmen if (count($hSettingsToChange) > 0) { updateGlobalConfig($hSettingsToChange); } return $hColors; }