Ergebnis 1 bis 29 von 29

Thema: [metamodelsfilter_hook] MetaModels via Hook-Funktion filtern

  1. #1
    Contao-Urgestein Avatar von Tim G
    Registriert seit
    13.02.2010.
    Ort
    Lübeck
    Beiträge
    2.210
    User beschenken
    Wunschliste

    Standard [metamodelsfilter_hook] MetaModels via Hook-Funktion filtern

    Hallo,
    inspiriert duch den TabImporter von Christian De La Haye, ermöglicht dieser Filter, MetaModels mit Hook-Funktionen zu filtern.
    Das macht es einfacher umfangreiche Abfragen zu erstellen, oder z.B. auf FE-Eingaben zu reagieren.

    https://github.com/timgatzky/metamodelsfilter_hook

    Nachdem der Hook registiert ist, steht er in den Filter-Einstellungen zur Auswahl. Optional mit Übersetzung.

    Vielleicht ist es für den einen oder anderen nützlich. Ein Beispiel ist dabei.


    Viele Grüße,
    Tim
    http://www.tim-gatzky.de ˙ auch schon wieder 2 Jahre alt - wie die Zeit vergeht... muss mal umbauen.

  2. #2
    Contao-Nutzer
    Registriert seit
    02.04.2012.
    Beiträge
    149
    Partner-ID
    9663

    Standard

    Das klingt sehr gut. Ließe sich damit auch auf einen Text-Input reagieren und die ganze Metamodel-Liste kürzen? D.h. z.B. PLZ-Eingabe per Text-Input und Umkreis via Select –*dann die MM Liste nach Entfernungen neu sortieren und aufgrund des Selects kürzen? Wissen die Filter damit bescheid z.B. welche Eigenschaften wegfallen, weil entsprechende Listeneinträge rausgefallen sind?

  3. #3
    Contao-Urgestein
    Registriert seit
    07.07.2009.
    Beiträge
    4.107

    Standard

    Das musst du in diesem Fall aber immer noch selbst programmieren. Wie bei MetaModels ohne Hook Funktion auch.

  4. #4
    Contao-Nutzer
    Registriert seit
    02.04.2012.
    Beiträge
    149
    Partner-ID
    9663

    Standard

    Zitat Zitat von andreasisaak Beitrag anzeigen
    Das musst du in diesem Fall aber immer noch selbst programmieren. Wie bei MetaModels ohne Hook Funktion auch.
    Programmiert habe ich mir das ganze ja schon…aber bislang ja im Template File und die Frontend-Filter haben davon nichts mitbekommen – das sollte mit dem Hook dann sauber sein, oder?

  5. #5
    Contao-Urgestein
    Registriert seit
    07.07.2009.
    Beiträge
    4.107

    Standard

    Dann hast du es auch nicht programmiert sondern nur im Template zusammengeschustert. Du wirst auch mit Hook nicht um eine ordentliche Extensionstruktur mit config.php und der Klasse nicht herumkommen.

    Ich habs jetzt so verstanden das du das im Template machst. Korrekt? Wenn ja, das geht aber geht nicht lange gut. Beim nächsten MM Release könnte alles kaputt sein.

  6. #6
    Contao-Nutzer
    Registriert seit
    02.04.2012.
    Beiträge
    149
    Partner-ID
    9663

    Standard

    Zitat Zitat von andreasisaak Beitrag anzeigen
    Dann hast du es auch nicht programmiert sondern nur im Template zusammengeschustert. Du wirst auch mit Hook nicht um eine ordentliche Extensionstruktur mit config.php und der Klasse nicht herumkommen.

    Ich habs jetzt so verstanden das du das im Template machst. Korrekt? Wenn ja, das geht aber geht nicht lange gut. Beim nächsten MM Release könnte alles kaputt sein.
    Ich bin mir ja durchaus bewusst, dass es im Template nicht optimal ist. Deswegen versuche ich ja, es auf saubere Art und Weise umzusetzen, habe aber bislang meine Probleme mich im MM Aufbau zurechtzufinden. Daher meine Hoffnung mittels des Hooks einen einfachen Weg gehen zu können (oder vielmehr einen nachvollziehbaren, da er mit einem Beispiel kommt) um eben die MM Liste umzusortieren und kürzen zu können.

  7. #7
    Contao-Nutzer
    Registriert seit
    02.04.2012.
    Beiträge
    149
    Partner-ID
    9663

    Standard

    Ich bin etwas weitergekommen: Der Hook ist eingebunden und soweit angepasst. Ich bin auch in der Lage einfache Sortierungen zu ändern –*das klappt soweit im FE. Könnte mir evtl. jemand einen Tipp geben, wie ich in meiner Methode ("myFilterFunction" z.B.) auf die Inhalte meines Metamodels zugreifen kann? das Metamodel wird im Beispiel ja so eingebunden:
    PHP-Code:
    // get metamodel
            
    $objMetaModel $objFilterSetting->objFilterSetting->getMetaModel(); 
    Aber wie greife ich z.B. mittels count() auf die Items zu?

  8. #8
    Contao-Urgestein Avatar von Tim G
    Registriert seit
    13.02.2010.
    Ort
    Lübeck
    Beiträge
    2.210
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von hendrik_d Beitrag anzeigen
    Ich bin etwas weitergekommen: Der Hook ist eingebunden und soweit angepasst. Ich bin auch in der Lage einfache Sortierungen zu ändern –*das klappt soweit im FE. Könnte mir evtl. jemand einen Tipp geben, wie ich in meiner Methode ("myFilterFunction" z.B.) auf die Inhalte meines Metamodels zugreifen kann? das Metamodel wird im Beispiel ja so eingebunden:
    PHP-Code:
    // get metamodel
            
    $objMetaModel $objFilterSetting->objFilterSetting->getMetaModel(); 
    Aber wie greife ich z.B. mittels count() auf die Items zu?
    Das kann man so pauschal nicht sagen. Es gängt davon ab, was Du erreichen willst.
    Du kannst dir z.B. eine eigene MetaModelList temporär bauen, oder die einfache Anzahl an Einträgen pro MM bekommst du mit $objMetaModel->getCount($objFilter); // null for no filtering

    Am besten Du schaust dir die MetaModel Interface Klasse mal an, dort sind alle öffentlichen Funktionen versammt.
    http://www.tim-gatzky.de ˙ auch schon wieder 2 Jahre alt - wie die Zeit vergeht... muss mal umbauen.

  9. #9
    Contao-Nutzer
    Registriert seit
    02.04.2012.
    Beiträge
    149
    Partner-ID
    9663

    Standard

    Zitat Zitat von Tim G Beitrag anzeigen
    Am besten Du schaust dir die MetaModel Interface Klasse mal an, dort sind alle öffentlichen Funktionen versammt.
    Danke dir!
    Kannst du mir noch sagen wo ich die finde (welche Datei), bzw. wie die übliche Vorgehensweise ist um solche Klassen zu finden? Habe versucht im GIT Repository per Begriff zu suchen…

  10. #10
    Contao-Urgestein Avatar von Tim G
    Registriert seit
    13.02.2010.
    Ort
    Lübeck
    Beiträge
    2.210
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von hendrik_d Beitrag anzeigen
    Danke dir!
    Kannst du mir noch sagen wo ich die finde (welche Datei), bzw. wie die übliche Vorgehensweise ist um solche Klassen zu finden? Habe versucht im GIT Repository per Begriff zu suchen…
    Das ist einfach Fleißarbeit (und debuggen) oder xtra fragen (der wird sich bedanken )
    http://www.tim-gatzky.de ˙ auch schon wieder 2 Jahre alt - wie die Zeit vergeht... muss mal umbauen.

  11. #11
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.717
    User beschenken
    Wunschliste

    Standard

    verstehe ich das richtig, dass der Hook nur beim Ausliefern der Daten greift aber nicht beim "Einliefern" - sprich beim Speichern und Updaten?

  12. #12
    Contao-Urgestein Avatar von Tim G
    Registriert seit
    13.02.2010.
    Ort
    Lübeck
    Beiträge
    2.210
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    verstehe ich das richtig, dass der Hook nur beim Ausliefern der Daten greift aber nicht beim "Einliefern" - sprich beim Speichern und Updaten?
    Ja. Ganz allgemein wie eine einfache ID Liste. Nur die IDs kommen aus Deiner Logik.
    http://www.tim-gatzky.de ˙ auch schon wieder 2 Jahre alt - wie die Zeit vergeht... muss mal umbauen.

  13. #13
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.717
    User beschenken
    Wunschliste

    Standard

    o.k.! ich suche einen Hook, der beim Anlegen/Speichern der Daten zündet... - im Grunde brauche ich kein Hook, der Daten verändert, sondern eher ein Event, auf den ich reagieren kann

  14. #14
    Contao-Urgestein
    Registriert seit
    07.07.2009.
    Beiträge
    4.107

    Standard

    Da musst du aber eher beim DCG suchen

  15. #15
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.717
    User beschenken
    Wunschliste

    Standard

    beim DcGeneral habe ich auch schon nachgesehen - und nix gefunden oder nicht verstanden...

    es gibt ein "Class Subscriber - gateway to the legacy Contao HOOK style callbacks." - verstehe aber den Quelltext nicht gut genug, um was aus der Sache zu ziehen :-(

  16. #16
    Contao-Urgestein Avatar von Tim G
    Registriert seit
    13.02.2010.
    Ort
    Lübeck
    Beiträge
    2.210
    User beschenken
    Wunschliste

    Standard

    Wird kein onsubmit_callback vom Contao eigenen DCA gefeuert?
    http://www.tim-gatzky.de ˙ auch schon wieder 2 Jahre alt - wie die Zeit vergeht... muss mal umbauen.

  17. #17
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.717
    User beschenken
    Wunschliste

    Standard

    hmmmm...? muss ich mir nochmal ansehen...

    Danke

  18. #18
    Contao-Urgestein
    Registriert seit
    07.07.2009.
    Beiträge
    4.107

    Standard

    Zitat Zitat von Tim G Beitrag anzeigen
    Wird kein onsubmit_callback vom Contao eigenen DCA gefeuert?
    Wie soll das gehen? Es wird der DCG verwendet, da gibt es doch kein Contao eigenes DCA mehr. Wenn der DCG keine Callback mitliefert (was er aber sehr wohl tut, nur werden es Events sein), dann kann Contao da gar nix machen.

  19. #19
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.717
    User beschenken
    Wunschliste

    Standard

    das (der?) DC_General liefert ja auch ein onsubmit_callback

    http://de.contaowiki.org/DC_General

  20. #20
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.717
    User beschenken
    Wunschliste

    Standard

    ...hmm - da fällt mir ein: die Paletten fürs Backend werden ja bei MM dynamisch erzeugt - wie schleuse ich da das onsubmit_callback ein?

  21. #21
    Contao-Urgestein Avatar von Tim G
    Registriert seit
    13.02.2010.
    Ort
    Lübeck
    Beiträge
    2.210
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    ...hmm - da fällt mir ein: die Paletten fürs Backend werden ja bei MM dynamisch erzeugt - wie schleuse ich da das onsubmit_callback ein?
    Schau mal hier:
    https://github.com/timgatzky/metamod...elist/issues/2

    Unten ist ein Beispiel für die Merkliste wie ein Standardwert gesetzt wird.
    Probier mal die dcaconfig einfach mit deinem MM aus.

    Hier mit dem mm: mm_notelist_1

    $GLOBALS['TL_DCA']['mm_notelist_1']['config']['onsubmit_callback'][] = array('foo','baa');

    --
    Bevor die Frage kommt "Wie mach ich das in einer eigenständigen Erweiterung."
    MM muss sich auch an die Contao Richtlinien halten. Daher wird hier ein dca file abgearbeitet, wenn es existiert und den Namen der Tabelle hat.

    Man kann also in seinem Erweiterungsordner /dca/mm_notelist_1.php anlegen und Contao arbeitet es ab, egal ob MM oder nicht.

    In dem File kannst du dann, wie gewohnt, den onsubmit_callback definieren.
    Geändert von Tim G (08.09.2014 um 13:51 Uhr)
    http://www.tim-gatzky.de ˙ auch schon wieder 2 Jahre alt - wie die Zeit vergeht... muss mal umbauen.

  22. #22
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.717
    User beschenken
    Wunschliste

    Standard

    prima! ich glaube, ich habe noch nicht alle Klippen umschifft, sehe nun aber einen Lichtstrahl am Horizont ;-)

    Dank für die Info

  23. #23
    Contao-Urgestein Avatar von Tim G
    Registriert seit
    13.02.2010.
    Ort
    Lübeck
    Beiträge
    2.210
    User beschenken
    Wunschliste

    Standard

    Vielleicht verschieben wir die letzten Posts in einen separaten Thread. Vielleicht hilfts dem einen oder anderen weiter und passt irgendwie nicht zum Hook Filter.
    http://www.tim-gatzky.de ˙ auch schon wieder 2 Jahre alt - wie die Zeit vergeht... muss mal umbauen.

  24. #24
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.717
    User beschenken
    Wunschliste

    Standard

    verschieben? => gern... Mail an Nina oder wie machen wir das

    btw: habe dirty-hacking ein Modul zusammen geschraubt und mir beim Speichern im BE eine E-Mail (per new Email()) gesendet - hat funktioniert!! :-))

    muss ich "nur" noch das nc gedöns da rein fummeln

    Dank!

  25. #25
    Contao-Nutzer
    Registriert seit
    13.03.2014.
    Beiträge
    24

    Standard Hook läuft nicht unter Contao 3.3 und MM tng

    Hallöchen, kann es sein dass die Hook-Funktion nicht mit dem neuen MetaModels läuft?
    Die Installation klappt. Wenn ich aber dann den Filter einstellen will wird die Seite weiß und meine error.log zeigt folgende Fehlermeldung: PHP Fatal error: Interface 'IMetaModelFilterSetting' not found in /html/fairsicherung/system/modules/metamodelsfilter_hook/MetaModelFilterSettingHook.php on line 26.

    Woran kann das liegen?

  26. #26
    Contao-Urgestein Avatar von Tim G
    Registriert seit
    13.02.2010.
    Ort
    Lübeck
    Beiträge
    2.210
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Nicoletta Beitrag anzeigen
    Hallöchen, kann es sein dass die Hook-Funktion nicht mit dem neuen MetaModels läuft?
    Die Installation klappt. Wenn ich aber dann den Filter einstellen will wird die Seite weiß und meine error.log zeigt folgende Fehlermeldung: PHP Fatal error: Interface 'IMetaModelFilterSetting' not found in /html/fairsicherung/system/modules/metamodelsfilter_hook/MetaModelFilterSettingHook.php on line 26.

    Woran kann das liegen?
    Ja, das mag sein. Ich pflege nur noch offizielle stable Versionen von MM. Solange kein offizielles stable Release zu 2.x erschienen ist, baue ich nicht um.
    http://www.tim-gatzky.de ˙ auch schon wieder 2 Jahre alt - wie die Zeit vergeht... muss mal umbauen.

  27. #27
    Alter Contao-Hase
    Registriert seit
    28.09.2010.
    Beiträge
    1.368

    Standard Noch aktuell?

    Hallo, ist die Erweiterung metamodelsfilter_hook noch aktuell und einsetzbar?

    Danke schonmal


    Mark

  28. #28
    Contao-Urgestein Avatar von Tim G
    Registriert seit
    13.02.2010.
    Ort
    Lübeck
    Beiträge
    2.210
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Mark Knochen Beitrag anzeigen
    Hallo, ist die Erweiterung metamodelsfilter_hook noch aktuell und einsetzbar?

    Danke schonmal


    Mark
    Keine Ahnung. Denk nicht. Ich brauche kein MetaModels mehr
    http://www.tim-gatzky.de ˙ auch schon wieder 2 Jahre alt - wie die Zeit vergeht... muss mal umbauen.

  29. #29
    Alter Contao-Hase
    Registriert seit
    28.09.2010.
    Beiträge
    1.368

    Standard

    Zitat Zitat von Tim G Beitrag anzeigen
    Keine Ahnung. Denk nicht. Ich brauche kein MetaModels mehr
    mh, sehr schade ....

    Das hatte immer so gut funktioniert ....

    Mark

Aktive Benutzer

Aktive Benutzer

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

Lesezeichen

Lesezeichen

Berechtigungen

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