Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Media Feld mit json id funktioniert nicht #150

Closed
PatrickG opened this issue May 11, 2022 · 4 comments
Closed

Media Feld mit json id funktioniert nicht #150

PatrickG opened this issue May 11, 2022 · 4 comments

Comments

@PatrickG
Copy link

Hi,

ich habe ein Problem mit den Buttons welche das Medien-Window öffnen wenn ich eine "json id ('2.0.image' statt '2')" nutze.
Anscheinend wird die onEnd funktion in https://github.com/FriendsOfREDAXO/mblock/blob/master/assets/mblock.js#L105 nicht ausgeführt, was wiederum dazu führt das die mblock_reindex funktion nicht ausgeführt wird.
Dadurch bekomme ich im Medien-Window die Fehlermeldung Media input field not found, weil die URL des Windows &opener_input_field=REX_MEDIA_204822787906 ist, obwohl die ID des inputs REX_MEDIA_11000 ist

HTML des Formulars:

<div class="input-group">
  <input class="form-control" id="REX_MEDIA_11000" name="REX_INPUT_VALUE[2][0][image]" readonly="" type="text" value="">
  <span class="input-group-btn">
    <a class="btn btn-popup" href="#" onclick="openREXMedia('2042188471', '');return false;" title="Medium auswählen"><i class="rex-icon rex-icon-open-mediapool"></i></a>
    <a class="btn btn-popup" href="#" onclick="addREXMedia('2042188471', '');return false;" title="Neues Medium hinzufügen"><i class="rex-icon rex-icon-add-media"></i></a>
    <a class="btn btn-popup" href="#" onclick="deleteREXMedia('2042188471');return false;" title="Ausgewähltes Medium löschen"><i class="rex-icon rex-icon-delete-media"></i></a>
    <a class="btn btn-popup" href="#" onclick="viewREXMedia('2042188471', '');return false;" title="Ausgewähltes Medium anzeigen"><i class="rex-icon rex-icon-view-media"></i></a>
  </span>
</div>

Module input:

echo MBlock::show(
    '2',
    MForm::factory()
        ->addFieldsetArea(
            'Slide',
            MForm::factory()->addMediaField('2.0.image', ['label' => 'Bild'])
        ),
    ['min' => 1]
)

Wenn man einen weiteren Block mit dem +-Button hiinzufügt, klappt es.
Wenn man '2' statt '2.0.image' als ID nutzt, klappt es auch.

@PatrickG PatrickG changed the title Media Feld mit json id nicht Media Feld mit json id funktioniert nicht May 11, 2022
@DanielWeitenauer
Copy link
Member

Das ist ein bekanntes Problem und liegt daran, dass REDAXO die Array-Struktur nur für REX_VALUE vorsieht. Die Media-Widgets können diese Schreibweise nicht verarbeiten. Daher kann hier nur ein Integer als ID angegeben werden, den MBlock dann über Workarounds intern umformt.
Irgendwann wurden auch mal andere Werte verarbeitet, das war jedoch nie offiziell vorgesehen und ist inzwischen nicht mehr möglich.

@PatrickG
Copy link
Author

PatrickG commented May 11, 2022

Danke für deine Antwort.
Das habe ich inzwischen auch durch ein anderes issue herausgefunden.
Aber vom Ding her funktioniert es ja. Also wenn man einen neuen Block mit dem +-Button erstellt funktioniert es, und wird auch korrekt gespeichert.
Also vielleicht kann man es "fixen", bzw supporten. Fände es schöner mit $array['image'] auf die Daten zuzugreifen, als $array['REX_MEDIA_1'] 😅

@DanielWeitenauer
Copy link
Member

DanielWeitenauer commented May 12, 2022

Das wäre dann wahrscheinlich eher ein Feature für den Core.
Ich kopiere die Daten am Anfang eines Moduls einfach stets in ein Medienobjekt und platziere es im gewünschten Key: $array['image'] = rex_media::get($array['REX_MEDIA_1']). Danach arbeite ich dann einfach damit weiter.

@alxndr-w
Copy link
Member

alxndr-w commented Sep 8, 2024

Workaround ist gegeben, durch #165 gehe ich nicht davon aus, dass es hier noch Fortschritte geben wird. Falls doch, bitte wieder öffnen.

@alxndr-w alxndr-w closed this as not planned Won't fix, can't repro, duplicate, stale Sep 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants