FriendsOfREDAXO / demo_addon

Beispiel-Addon für REDAXO 5. Zeigt den Aufbau und Basisfunktionalität von Addons.
MIT License
49 stars 5 forks source link

rex_input::factory für Widgets #24

Closed cukabeka closed 6 years ago

cukabeka commented 6 years ago

https://github.com/FriendsOfREDAXO/demo_addon/blob/525cb82da571b0240b839a77702b058ce60796bc/pages/config.php#L88

Könnte man nicht hier mit der Factory arbeiten, um das weiter zu vereinfachen?

Beispiel aus R4:

$id = 1;                                                   // ID dieses MediaListbuttons
$mp = 4;                                                   // ID der auzurufenden Medienpool Kategorie
$tmp = rex_input::factory('medialistbutton');              // Objekt initialisieren
$tmp->setButtonId($id);                                    // Button ID
$tmp->setCategoryId($mp);                                  // Medienpool Kategorie ID
$tmp->setValue($myREX['settings']['MEDIALIST'][$id]);      // gespeicherte Werte einsetzen
$tmp->setAttribute('name', 'MEDIALIST['.$id.']');
$MediaList1 = $tmp->getHtml();
gharlan commented 6 years ago

rex_input ist eine interne Klasse aus dem metainfo-Addon: https://github.com/redaxo/redaxo/blob/master/redaxo/src/addons/metainfo/lib/input.php#L6 Da sie als internal markiert ist, sollte man sich nicht auf sie verlassen. (Sie ist internal, da deren Zukunft noch nicht geklärt ist, eigentlich hat der core ja selbst schon formularelemente etc.)

Die zurzeit offizielle Variante, um eine Medialist selbst zu erstellen (außerhalb von Metainfos, rex_form etc.), sieht so aus:

$MediaList1 = rex_var_medialist::getWidget($id, $name, $value, $args);

https://github.com/redaxo/redaxo/blob/63dfbc8d7b7bdf256fd1309e76ddb12c588c6915/redaxo/src/addons/mediapool/lib/var_medialist.php#L44

cukabeka commented 6 years ago

ah, danke für die info!

generell scheint das mit rex_form zu gehen, das wäre dann mit #25 abgedeckt - leider gibts da wiederum noch kein Beispiel für rex_form kombiniert mit rex_fragments..

skerbis commented 6 years ago

Wir bekommen es auch nicht in einer Config-Seite hin eine Medialist zu erstellen. Wie sollte dort der korrekte Code aussehen?

aeberhard commented 6 years ago

Thomas, vielleicht so!? https://github.com/FriendsOfREDAXO/demo_addon/blob/master/pages/config.php#L88-L118 demo_addon ist auch im Installer zum ausprobieren!

skerbis commented 6 years ago

Jupp, das ist klar. Aber das muss doch einfacher gehen. Am besten wäre wenn man rex_form auch für config verwenden könnte. @aeberhard 🙏 danke

aeberhard commented 6 years ago

Ah Thomas, verstehe schon. Hab ein neues Issue aufgemacht da rex_input::factory ja nicht verwendet werden kann ...

staabm commented 6 years ago

wo ist das neue issue? bitte verlinken

staabm commented 6 years ago

ahh, habs gefunden https://github.com/FriendsOfREDAXO/demo_addon/issues/29