FriendsOfREDAXO/global_settings

Params von Feldern auslesen

Closed this issue · 13 comments

Vorab: bin gerade über dieses AddOn gestolpert und muss sagen: geiler Scheiß 😍

Was ich gerade noch vermisse: Eine Methode zum auslesen der Standardwerte (z.B. bei Selects, Checkboxen, ...)

Kannst du das bitte genauer erläutern?

Klar doch, wobei ich merke, dass ich das noch nicht zu Ende gedacht habe und das die Mehtode getDefaultValue ja eigentlich genau das macht was ich wollte und ich eigentlich die params auslesen will. Werde das Issue mal umbenennen.

Mir schwebt folgendes vor: Für diverse Einstellungen baue ich in meinen Modulen definierte Einstellungsmöglichkeiten ein. Meist sind das Select-Menüs, z.B. die Container-Einstellung für Bootstrap. Da habe ich dann ein Select-Menü mit den Werten ''|container|container-fluid und definiere einen Default-Wert (passiert alles in einer Project-Klasse). Den Default-Wert kann ich jetzt einfach mit den global_settings setzen und muss nicht in die Datei. Cool wäre natürlich, wenn ich auch die Werte-Definition (die Params) auslesen könnte, um daraus das Select-Menü zusammen zu bauen. So passt das immer und muss nicht doppelt gepflegt werden.

Ah. Das ist ne coole Idee.

Na das mein ich doch ⛄
Was fast mit dazu gehört: ebenfalls den Titel des Feldes mit auslesen für das Label 😉

Wenn ich es mir recht überlege ist es vielleicht am einfachsten und auch am flexibelsten, wenn man über eine Methode - z.B. getDefaultData('my_field') - (fast) alle DB-Felder zu einem Feld als Array zurück bekommt. Dann kann man sich einfach rauspicken, was man braucht.

Also was du noch brauchst ist also ein getFieldDefinition()

jepp, das klingt genau nach dem, was ich mit vorstelle

Machst du einen PR?

Es gibt immer ein erstes mal ;-)
Alles Wissenswerte solltest Du hier finden: https://github.com/FriendsOfREDAXO/api_docs/archive/master.zip

Hm ... hab da nichts zu PRs gefunden ... vielleicht sollte ich mir das bei Gelegenheit mal anschauen. Jetzt ist aber die Zeit etwas eingeschränkt, von daher die Frage: kannst du nicht den folgenden Code-Schnipsel in die Klasse rex_global_settings mit einbauen?:

public static function getFieldDefinition($field) {
     $field = self::FIELD_PREFIX . self::getStrippedField($field);
     $sql = rex_sql::factory();
     $result = $sql->getArray('SELECT * FROM '. rex::getTablePrefix() . 'global_settings_field WHERE name = :name',['name'=>$field]);
     return $result[0];
}

Ich übernehme Deinen Code ;-)