Ergebnis 1 bis 20 von 20

Thema: Callback nach Auswahl eines Bildes

  1. #1
    Alter Contao-Hase
    Registriert seit
    28.09.2010.
    Beiträge
    1.381

    Standard Callback nach Auswahl eines Bildes

    Hallo,

    ich möchte in einer config datei einen Callback festlegen, wenn im Modul ein Bild ausgewählt worden ist ... gibt es eine Möglichkeit, an den Dateinamen des ausgewählten Bildes zu kommen und nach Auswahl
    des Bildes dann andere Funktionen aufzurufen?


    Danke

    Mark

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    35.517
    Partner-ID
    10107

    Standard

    Hm, was genau möchtest du machen? Prinzipiell gibt für DCA Felder den save_callback.

  3. #3
    Contao-Fan Avatar von Ainschy
    Registriert seit
    24.06.2009.
    Ort
    Wenden
    Beiträge
    803
    Partner-ID
    5666
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Mir ist kein Callback bekannt. Man müsste dazu das File-Model "kapern" und dort jeden Aufruf prüfen ob die Datei dabei ist und dann noch ob der Abruf vom System (z.B. Vorschaubild generieren etc.) kommt oder über ein FE / CE Modul. Dann kann man die Datei sicher noch direkt als Link verknüpfen das kannst du dann nicht abfangen (außer bei geschützen Verzeichnissen vllt.).

    Aus meiner Sicht schwierig und mit Aufwand verbunden.

  4. #4
    Alter Contao-Hase
    Registriert seit
    28.09.2010.
    Beiträge
    1.381

    Standard

    Ich möchte gerne das Bild was man ausgewählt hat gross anzeigen, evtl. in einem scrollbaren DIV - falls es zu gross in den Abmessungen ist.
    Das Bild wird in der Größe benötigt, um per Klick dann Punkte auf dem Bild zu markieren.

    Generell wird das Bild ja als Vorschau zurückgeliefert, so dass man das doch eigentlich auch groß anzeigen lassen könnte, hab ich mir zumindest so gedacht.


    Mark

  5. #5
    Contao-Fan Avatar von Ainschy
    Registriert seit
    24.06.2009.
    Ort
    Wenden
    Beiträge
    803
    Partner-ID
    5666
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Du meinst im BE?

  6. #6
    Alter Contao-Hase
    Registriert seit
    28.09.2010.
    Beiträge
    1.381

    Standard

    ja, im Backend

  7. #7
    Contao-Fan Avatar von Ainschy
    Registriert seit
    24.06.2009.
    Ort
    Wenden
    Beiträge
    803
    Partner-ID
    5666
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Wenn ich dich richtig verstanden habe möchtest du auf einem Bild aus der Dateiverwaltung Punkte markieren und diese Markierungen speichern?

    Ich würde mir das von der Dateiverwaltung abschauen und dann als DCA Element nachbilden.

  8. #8
    Alter Contao-Hase
    Registriert seit
    28.09.2010.
    Beiträge
    1.381

    Standard

    Mh, laut DCA sollte es m.E. so sein:


    PHP-Code:
    $GLOBALS['TL_DCA']['tl_content']['fields']['image'] = array
    (

        
    'exclude'           => true,
        
    'inputType'         => 'fileTree',
        
    'eval'              => array('fieldType'=>'radio''files'=>true'filesOnly'=>true'extensions'=>'png,jpg''mandatory'=>false),
        
    'save_callback'     => array(array('myClass''myFunction')),
        
    'sql'               => "varchar(255) NOT NULL default ''"
    );


    class 
    myClass extends Backend
    {
      public function 
    myFunction($varValue$dc)
      {
        ...
      }


    Ich wollte es so versuchen, aber die Funktion wird nicht aufgerufen nach Auswahl des Bildes?

  9. #9
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    35.517
    Partner-ID
    10107

    Standard

    Der Callback wird beim speichern aufgerufen.

  10. #10
    Alter Contao-Hase
    Registriert seit
    28.09.2010.
    Beiträge
    1.381

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Der Callback wird beim speichern aufgerufen.
    Stimmt, besser ist der

    PHP-Code:
    'options_callback' => function($dc) {
                    
    var_dump($dc->activeRecord->rsce_data);
                }, 

    der würde fast passen, reagiert aber leider nicht auf eine Auswahl im Filetree, sondern liefert nur das (wenn vorhanden) schon gespeicherte Bild des Datensatzes.

  11. #11
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    35.517
    Partner-ID
    10107

    Standard

    Wie gesagt gibt es für das, was du haben möchtest, keinen Callback. Selbst mit Callback wäre ich mir noch nicht sicher, was du dann überhaupt genau damit machen möchtest.

    Brauchst du das wirklich pro Inhaltselement? Oder nur pro Datei?

  12. #12
    Alter Contao-Hase
    Registriert seit
    28.09.2010.
    Beiträge
    1.381

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Wie gesagt gibt es für das, was du haben möchtest, keinen Callback. Selbst mit Callback wäre ich mir noch nicht sicher, was du dann überhaupt genau damit machen möchtest.

    Brauchst du das wirklich pro Inhaltselement? Oder nur pro Datei?
    Pro Datei.

    Sobald man also im Dateiwähler eine Datei ausgesucht hat und auf "Anwenden" klickt, schließt sich ja der Layer und das Preview-Thumbnail wird angezeigt.

    Ich möchte anstatt des PreviewThumbnails das Originalbild dort anzeigen lassen

  13. #13
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    35.517
    Partner-ID
    10107

    Standard

    Zitat Zitat von Mark Knochen Beitrag anzeigen
    Pro Datei.
    Dann würde ich das genau so lösen wie es Contao für die Auswahl des "Important Parts" macht.



    Zitat Zitat von Mark Knochen Beitrag anzeigen
    Ich möchte anstatt des PreviewThumbnails das Originalbild dort anzeigen lassen
    Dazu müsstest du vermutlich ein komplett eigenes Input Widget programmieren.

  14. #14
    Alter Contao-Hase
    Registriert seit
    28.09.2010.
    Beiträge
    1.381

    Standard

    >> Dazu müsstest du vermutlich ein komplett eigenes Input Widget programmieren.

    Mh, muss es wirklich so kompliziert sein?
    Ich hatte gehofft, eben an die Standard-Preview Funktion anknüpfen zu können ... da ja hier schon das Bild zurückgegeben wird.

    Und per ajax wird auch übertragen:

    action reloadFiletree
    name rsce_field_image
    value files/image.jpg


    Die Daten sind per se ja da.

  15. #15
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    35.517
    Partner-ID
    10107

    Standard

    Du kannst ja vom bestehenden Widget ableiten.

    Aber wie gesagt, nach dem das Pro Datei ist, nicht pro Inhaltselement, wäre das als eigener View in der Dateiverwaltung (wie auch das Setzen des "Important Part") besser aufgehoben.

  16. #16
    Alter Contao-Hase
    Registriert seit
    28.09.2010.
    Beiträge
    1.381

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Du kannst ja vom bestehenden Widget ableiten.

    Aber wie gesagt, nach dem das Pro Datei ist, nicht pro Inhaltselement, wäre das als eigener View in der Dateiverwaltung (wie auch das Setzen des "Important Part") besser aufgehoben.
    Greift nicht auch eventuell ein Hook nach der Auswahl des Bildes aus dem Filetree?
    Oder kommt man bei der Auswahl des Bildes evtl. über storeFormData an die Infos?

  17. #17
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    35.517
    Partner-ID
    10107

    Standard

    Zitat Zitat von Mark Knochen Beitrag anzeigen
    Greift nicht auch eventuell ein Hook nach der Auswahl des Bildes aus dem Filetree?
    Die Auswahl des Bildes passiert im Browser, dafür gibt es keinen Callbck oder Hook.



    Zitat Zitat von Mark Knochen Beitrag anzeigen
    Oder kommt man bei der Auswahl des Bildes evtl. über storeFormData an die Infos?
    Dieser Hook ist für Formulare des Formulargenerators und hat nichts mit den Backend Input Widgets zu tun.

  18. #18
    Contao-Fan Avatar von PaddySD
    Registriert seit
    26.10.2016.
    Ort
    Andechs
    Beiträge
    656

    Standard

    Hier wurde etwas ähnliches andiskutiert, vielleicht hilft es Dir beim Widget weiter:
    https://community.contao.org/de/show...es-BE-anpassen

  19. #19
    Alter Contao-Hase
    Registriert seit
    28.09.2010.
    Beiträge
    1.381

    Standard

    Ich hab es jetzt etwas "unsauber" gelöst.

    das ganze läuft als eine Custom Element von Rocksolid, wo im Feld für den "filetree" als Option

    'options_callback' => array('myClass','myFunction'),

    steht.

    In der Funktion prüfe ich entweder auf:

    ein bestehendes Bild mit $dc->activeRecord->rsce_data
    oder auf $_POST['value'] wenn der Dateiwähler geschlossen wird.

    Darüber bekomme ich in beiden Fällen den Dateinamen (wenn vorhanden) und ersetze dann das bisherige
    Thumbnail per Javascript

    Nachteil daran ist, dass eine Javascript-Ausgabe über die Funktion erfolgt und damit über dem <html> Header ... was ich momentan nur
    über Abfragen nach bestimmten POST-Variablen verhindere .... ist wirklich nicht er schönste Weg, geht aber erstmal so.

  20. #20
    Alter Contao-Hase
    Registriert seit
    28.09.2010.
    Beiträge
    1.381

    Standard

    Die aktuelle Lösung hab ich ja kurz beschrieben, dass über

    'options_callback' => array('myClass','myFunction'),

    die Funktion myFunction, die in einem eigenen Modul-Ordner liegt, ausgeführt wird und dabei Quellcode generiert und ausgegeben wird.

    Das ganz passiert vor dem Aufbau der eigentlichen Backend-Seite .... gibt es denn eine Möglichkeit, den Code, der über die myFunction generiert wird, auch
    konform innerhalb <html></html> zu platzieren?

    Momentan gestaltet sich dann der Quelltext der Backendseite in dem Fall:

    <generiertes Javascript>
    .....
    </script>
    <html>
    ....


    Danke

    Mark

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •