Ergebnis 1 bis 11 von 11

Thema: Filter im Backend

  1. #1
    Contao-Nutzer Avatar von gracilis
    Registriert seit
    19.06.2009.
    Ort
    Rostock
    Beiträge
    180

    Standard Filter im Backend

    Contao core 3.5.28,
    dc-general 2.0.0.-beta39
    MetaModels core (über Composer installiert) 2.0.0.-alpha15
    PHP 7.0.19

    Hallo, wirken Filter auch im Backend?

    Tabelle "Publikationen", Tabelle "Mitarbeiter", Relation "Mitarbeiter zu Publikation" (Autor) (per Mehrfachauswahl in "Publikationen")

    Jetzt sollen Mitarbeite per Mehrfachauswahl "Top-5-Publikationen" im MA-Formular machen, aber nur ihre Publikationen sehen (Feld Autor im Publikation-Formular: att_id = 67).

    Welcher Parameter ist die Backend-id des MA (z.B: id=mm_staff::145):

    Diesen Filter habe ich dem Feld "Top-Publikation" im MA-Formular zugewiesen. (Mit einer MA-id ist es in PMA richtig)

    Code:
    SELECT pub.id FROM mm_publications as pub
    LEFT JOIN tl_metamodel_tag_relation as rel ON (pub.id = rel.item_id)
    WHERE
    rel.att_id = 67 AND  -- 67 ID of attribute [publication members - tags]
    rel.value_id = MID({{param::get?name=id}},12) -- ab Zeichen 12 = id
     AND 
    pub.publication_published = 1 -- published
    Zeigt aber alle Publikationen an ...

    Danke
    Geändert von gracilis (18.12.2017 um 14:22 Uhr)
    .per.aspera.ad.astra.

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

    Standard

    Zitat Zitat von gracilis Beitrag anzeigen
    Hallo, wirken Filter auch im Backend?
    => nein

    für feste Filterungen wie z.B. "jeder Benutzer darf nur seine Items sehen", kann man per Event was einschleusen... aber an die Panels im Header der BE-Liste kommt man so (einfach) nicht ran - leider

  3. #3
    Contao-Nutzer Avatar von gracilis
    Registriert seit
    19.06.2009.
    Ort
    Rostock
    Beiträge
    180

    Frage

    Hallo Zonky,
    ok.
    Nun will ich es doch umdrehen, also die Top Publikationen sollen bei den Publikationen angegeben werden,
    sprich dort wählt man die Autoren und die Autoren, die diese Publ. als Top haben wollen.

    Nun stehen in der 'relation'-Tabelle
    1-1-1 (Autor 1 der Publ. 1)
    1-1-2 (Autor 2 der Publ. 1)
    2-1-1 (Top-Autor 1 der Publ. 1)

    Kann man denn mit einer Query (+ Subquery) jetzt nach Top-Publ. UND restlichen Publ. fragen (sortieren)?
    Eher nicht, oder.
    .per.aspera.ad.astra.

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

    Standard

    Deine Frage: gehen Filter im BE?

    Meine Antwort: nein*

    verstehe die Deutungsschwierigkeiten daran nicht?


    * Du kannst Dir eine Erweiterung für die BE-Panel programmieren

  5. #5
    Contao-Nutzer Avatar von gracilis
    Registriert seit
    19.06.2009.
    Ort
    Rostock
    Beiträge
    180

    Standard

    Hallo Zonky, sorry.
    Deine Antwort war schon klar.

    Vielleicht hätte ich ein neues Thema aufmachen sollen mit der 'neuen' Frage, wie man 2 Zuordnungen (wie erläutert) sortieren kann.
    .per.aspera.ad.astra.

  6. #6

  7. #7
    Contao-Nutzer Avatar von gracilis
    Registriert seit
    19.06.2009.
    Ort
    Rostock
    Beiträge
    180

    Standard

    Hallo, in den Beispielen wird ja nur nach einer Relation gefragt. (Seite des MA oder Softkills des MA).

    Ich brauche aber 2 Attribute (Tags) , die sortiert werden müssen. Außerdem wird die query schon mit distinct eingedampft (wie es aussieht - distinct), sodass ich das array nicht mehr durchgehen kann nach doppelten id...
    Aber wahrscheinlich geht sowas generell nicht.
    .per.aspera.ad.astra.

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

    Standard

    teste Deine Sortierung in phpMyAdmin und dann poste mal das Ergebnis

  9. #9
    Contao-Nutzer Avatar von gracilis
    Registriert seit
    19.06.2009.
    Ort
    Rostock
    Beiträge
    180

    Standard

    Hallo Zonky,
    also die id 66 sind die 'Autoren' einer Publikation (Feld in mm_publication) (Mehrfachauswahl bei Publikation)
    die 95 sind die 'Autoren', die diese als Top-Publikation anzeigen wollen (Feld in mm_publication) (Mehrfachauswahl)

    Filter im mm Publikation :
    Code:
    SELECT pub.id FROM mm_publications as pub
    LEFT JOIN tl_metamodel_tag_relation as rel ON (pub.id = rel.item_id)
    WHERE
    rel.att_id = 95 -- top 5 publ
    or rel.att_id = 66 -- autoren
    AND  
    rel.value_id = 
    (SELECT id FROM mm_sbi_staff as ma WHERE ma.alias = {{param::get?name=auto_item}}) -- variable member-ID
    AND 
    pub.publication_published = 1 -- published
    ORDER BY pub.publication_category_id ASC
    in PMA erhalten ich für einen MA (z. B. id 1) z. B. 6 datensätze = Publikationen (3 als top markiert: 491, 480, 6)

    Code:
    id
    491
    491
    495
    480
    480
    6
    6
    Jetzt wollte ich diese Liste durchschleifen und 2 arrays bauen, anhand der doppelten (array "top", array "alle"), durch ein array-diff hätten ich dann, glaube ich, und dann zusammenfügen
    491,480,6,495 und könnte es so anzeigen.

    Wenn ich das aber im template anzeige, erhalte ich nur je eine id (also distinct)

    Code:
    id
    491
    495
    480
    6
    Mit left join kenne ich mich nicht so aus, sub queries dürfen ja auch nur einen datensatz zurückgeben.

    Danke.
    .per.aspera.ad.astra.

  10. #10
    Contao-Nutzer Avatar von gracilis
    Registriert seit
    19.06.2009.
    Ort
    Rostock
    Beiträge
    180

    Standard

    Hallo, ich hatte einen Denkfehler bzw. im Testweb die Daten nicht richtig erfasst.

    Also die o.g. Abfrage mit att_id 95 und 66 geht, Die Sortierung muss dann erfolgen:

    Code:
    ORDER BY 
    rel.att_id DESC, 
    pub.publication_category_id ASC, 
    pub.publication_date DESC
    [gelöscht: Großartig.] Geht so nicht.
    Ich muss wohl doch den Rat in der unten stehenden Anwort befolgen.
    Geändert von gracilis (17.01.2018 um 09:56 Uhr)
    .per.aspera.ad.astra.

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

    Standard

    wenn man sich mit den Möglichkeiten von MySQL auseinander setzt, kann man hier schon einige Sortierungen vorbereiten wie z.B. bei Varianten die Sortierung erst nach den "Parents" und zusätzlich jeweils die "Childs" für sich sortieren... bei der Ausgabe das "übliche" Vorgehen: in dem Schleifendurchlauf der Items mit einer Hilfsvarianble den vorhergehenden Wert (z.B. Parent) merken und wenn dieser ungleich dem aktuellen Wert ist, dann startet ein neuer "Block"

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
  •