Ergebnis 1 bis 11 von 11

Thema: Auf Detailseite alle Varianten anzeigen?

  1. #1
    Contao-Nutzer
    Registriert seit
    27.05.2014.
    Beiträge
    121

    Standard Auf Detailseite alle Varianten anzeigen?

    Hallo zusammen,

    ich stehe eventuell wieder auf dem Schlauch- ich habe hier ein Projekt, bei dem es "Produkte" mit Varianten gibt. Diese Produkte werden ohne Varianten auf einer Übersichtsseite mit nur den wichtigsten Eckdaten aufgelistet. Jetzt stehe ich aber vor folgendem Problem:

    Wie zeige ich nun auf der Detailansichtsseite von diesem "Produkt" auch alle zugehörigen Varianten im Anschluss an?

    mspaint_3kkwSSUPMO.png

    Auf der Übersichtsseite befindet sich jeweils ein Detailansichtsslink, der dann durch die entsprechende Render-Ansicht und Filter korrekt angezeigt wird und auf die Detailansicht des "Hauptproduktes" weiterleitet. Dort werden einfach mehr Felder als vorher angezeigt. Nur komme ich eben nicht darauf, wie ich diesen Artikel in Verbindung mit den "ähnlichen", bzw. Varianten bringe. Diese sollen nämlich tabellarisch aufgelistet werden und eventuell jeweils ihre eigenen Detailansichten haben (dort dann natürlich ohne weitere Varianten).
    Geändert von d33eniz (21.07.2020 um 10:01 Uhr)

  2. #2
    Contao-Nutzer
    Registriert seit
    27.05.2014.
    Beiträge
    121

    Standard

    Ich glaube ich bin nah dran:

    Separate MetaModels Auflistung mit folgender Filtereinstellung

    Code:
    SELECT id from {{table}} WHERE `varbase` = 0 AND AND `alias` LIKE '{{param::get?XXX}}%'
    Allerdings bin ich mir nicht ganz sicher, was ich hier beim LIKE einsetzen soll- ich habe mir die Beispiele angesehen, allerdings werde ich nicht 100%ig schlau daraus.

    Die URL zur Detailansicht lautet:

    https://DOMAIN.com/de/dev/produktdetails/ALIAS-12001

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

    Standard

    siehe https://metamodels.readthedocs.io/de....html#optionen

    Die Kind-Datensätze haben die Werte varbase gleich 0 und vargroup gleich der ID des Eltern-Datensatzes.
    z.B.

    * Neue CE-MM-Liste
    * SQL-Filter (sofern "alias" der Key für die Detailseite ist)
    ** ... vargroup = (SELECT id .... alias = {{param::get?name=alias}})

    oder kannst das über eine API-Abfrage in Deinem "Parent-Template" machen https://metamodels.readthedocs.io/de...odel-interface

  4. #4
    Contao-Nutzer
    Registriert seit
    27.05.2014.
    Beiträge
    121

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    siehe https://metamodels.readthedocs.io/de....html#optionen



    z.B.

    * Neue CE-MM-Liste
    * SQL-Filter (sofern "alias" der Key für die Detailseite ist)
    ** ... vargroup = (SELECT id .... alias = {{param::get?name=alias}})

    oder kannst das über eine API-Abfrage in Deinem "Parent-Template" machen https://metamodels.readthedocs.io/de...odel-interface
    Besten Dank, damit lande ich bei:

    Code:
    SELECT id from {{table}} WHERE `varbase` = 0 AND AND `alias` LIKE '{{param::get?name=alias}}%'
    Code:
    An exception occurred while executing 'SELECT id from mm_products_de WHERE `varbase` = 0 AND AND `alias` LIKE 'NULL%''
    Spuckt bei mir also NULL, bzw. nichts aus?

    EDIT: Moment, die Lösung über vargroup macht deutlich mehr Sinn, ich probiere.

  5. #5
    Contao-Nutzer
    Registriert seit
    27.05.2014.
    Beiträge
    121

    Standard

    Mit folgender Lösung klappt das wunderbar:

    Code:
    SELECT id FROM {{table}} WHERE `varbase` = 0 AND vargroup IN (SELECT vargroup FROM {{table}} WHERE alias={{param::get?name=auto_item}})
    (Ich habe auto_item genutzt)

    Besten Dank!

    EDIT: Oh, ich war wohl nicht der Erste: https://community.contao.org/de/show...1460-Varianten
    Geändert von d33eniz (21.07.2020 um 11:17 Uhr)

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

    Standard

    sollte das nicht so sein?

    PHP-Code:
    SELECT id FROM {{table}} WHERE varbase AND vargroup = (SELECT id FROM {{table}} WHERE alias={{param::get?name=auto_item}} LIMIT 1

  7. #7
    Contao-Nutzer
    Registriert seit
    27.05.2014.
    Beiträge
    121

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    sollte das nicht so sein?

    PHP-Code:
    SELECT id FROM {{table}} WHERE varbase AND vargroup = (SELECT id FROM {{table}} WHERE alias={{param::get?name=auto_item}} LIMIT 1
    Diese Lösung liefert keine Ergebnisse für mich?

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

    Standard

    was gibt das aus?

    PHP-Code:
    SELECT id FROM {{table}} WHERE alias={{param::get?name=auto_item}} LIMIT 1 
    sollte die id des Parent kommen - sofern die Kinder die selben Aliaswerte haben, dann

    PHP-Code:
    SELECT id FROM {{table}} WHERE varbase AND alias={{param::get?name=auto_item}} LIMIT 1 
    und diese id sollte als vargroup in allen Kindern stehen

  9. #9
    Contao-Nutzer
    Registriert seit
    27.05.2014.
    Beiträge
    121

    Standard

    PHP-Code:
    SELECT id FROM {{table}} WHERE alias={{param::get?name=auto_item}} LIMIT 1 
    PHP-Code:
    SELECT id FROM {{table}} WHERE varbase AND alias={{param::get?name=auto_item}} LIMIT 1 
    Beide geben jeweils den gesamten Datensatz des Parents mit meiner ausgewählten Rendereinstellung aus. Sollte etwas anderes passieren?

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

    Standard

    Du solltest die Ausgabe bzw. das Query debuggen... am Einfachsten mit


    PHP-Code:
    SELECT id FROM {{table}} WHERE varbase AND alias={{param::get?name=auto_item}} LIMIT 1  XXX 
    und Debugmodus.. wird eine Fehlermeldung geworfen und du kannst den Code in phpMyAdmin ausführen

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

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    sollte das nicht so sein?

    PHP-Code:
    SELECT id FROM {{table}} WHERE varbase AND vargroup = (SELECT id FROM {{table}} WHERE alias={{param::get?name=auto_item}} LIMIT 1
    Tipp zum Vorgehen bei Filterregel "Eig. SQL":

    * in phpMyAdmin an Lösung rantasten - dann mit Variablen wie {{table}} und {{param::...}} bestücken und in Filterregel einbauen
    * Gesamtquery in Einzelschritte unterteilen und die testen - also z.B.
    ** SELECT id FROM mm_test WHERE varbase = 0 AND vargroup = 42 => richtige id 13
    ** SELECT id FROM mm_test WHERE alias='mein_alias' LIMIT 1 => richtige id 42
    ** SELECT id FROM mm_test WHERE varbase = 0 AND vargroup = (SELECT id FROM mm_test WHERE alias='mein_alias' LIMIT 1) => richtige id 13
    => Einbau in Filterregel: SELECT id FROM {{table}} WHERE varbase = 0 AND vargroup = (SELECT id FROM {{table}} WHERE alias={{param::get?name=auto_item}} LIMIT 1)

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
  •