Ergebnis 1 bis 10 von 10

Thema: Filter Select Eingabemaske

  1. #1
    Contao-Fan
    Registriert seit
    20.10.2014.
    Beiträge
    497

    Standard Filter Select Eingabemaske

    Hallo zusammen,

    in der Eingabemaske BE und FE werden Stadtteile auf die zuvor ausgewählte Stadt eingegrenzt.
    Das funktioniert beim erstellen und bearbeiten auch wunderbar.
    Das Problem ist nur, dass beim Kopieren eines Datensatzes das zuvor ausgefüllte Feld leer bleibt. Heißt in dem Fall, der Stadtteil wird nicht mitkopiert.

    Jemand einen Hinweis wo ich ansetzen muss um das Problem zu beheben?

    Besten Dank vorab

    Code:
    SELECT t.id FROM mm_stadtteil AS t
     WHERE IF (
         SUBSTRING_INDEX(SUBSTRING_INDEX('{{env::request}}', '/', -1), '?', 1) = 'contao'
         OR 
         SUBSTRING_INDEX(SUBSTRING_INDEX('{{env::request}}', '/', -1), '?', 1) = 'veranstaltung-bearbeiten', 
        IF (
         {{param::post?name=stadt}} != 'NULL',
         t.pid = (
             SELECT s.id FROM mm_staedte AS s
             WHERE s.alias = {{param::post?name=stadt}}
             LIMIT 1
         ),
         t.pid = (
            SELECT e.stadt
            FROM mm_events AS e
            WHERE e.id = SUBSTRING_INDEX({{param::get?name=id}},'::',-1)
            LIMIT 1
        )
    ), 
        1=1 
    )
    Geändert von zonky (23.04.2024 um 09:10 Uhr)

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

    Standard

    Zitat Zitat von marcohe Beitrag anzeigen
    Das Problem ist nur, dass beim Kopieren eines Datensatzes das zuvor ausgefüllte Feld leer bleibt. Heißt in dem Fall, der Stadtteil wird nicht mitkopiert.
    Du meinst, wenn Du ein Item kopierst und dann gleich die Eingabemaske aufgeht?

  3. #3
    Contao-Fan
    Registriert seit
    20.10.2014.
    Beiträge
    497

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    Du meinst, wenn Du ein Item kopierst und dann gleich die Eingabemaske aufgeht?
    Ja genau.
    Eigentlich sollte hier der Filter keinen Einfluß haben da ja die komplette Zeile aus der DB kopiert wird?

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

    Standard

    hmm... beim Kopieren wird ein 1:1-Duplikat des bestehenden Datensatzes genommen, die "Basisdaten" wie id, tstamp usw. geleert und an die Eingabemaske übergeben - d.h. die Maske sollte sich so verhalten, wie das Öffnen eines bestehenden Datensatzes.

    Du müsstest mal gucken, ob der Filter hier irgendwie dazwischen funkt. In der Symfony-Console bei Doctrine kannst Du alle Queries sehen - dort mal gucken, ob bzw. was gefeuert wird.

  5. #5
    Contao-Fan
    Registriert seit
    20.10.2014.
    Beiträge
    497

    Standard

    Der Filter funkt definitiv dazwischen. Bei deaktivieren wird die Kopie wie gewünscht erstellt. Merkwürdig… Ich schau mal wie empfohlen in der Console nach. Danke.

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

    Standard

    ggf. muss man für das Kopieren noch was im Query abfangen

  7. #7
    Contao-Fan
    Registriert seit
    20.10.2014.
    Beiträge
    497

    Standard

    Code:
    SELECT t.id FROM mm_stadtteil AS t
     WHERE IF (
         SUBSTRING_INDEX(SUBSTRING_INDEX('{{env::request}}', '/', -1), '?', 1) = 'contao'
         OR 
         SUBSTRING_INDEX(SUBSTRING_INDEX('{{env::request}}', '/', -1), '?', 1) = 'veranstaltung-bearbeiten', 
        IF (
         {{param::post?name=stadt}} != 'NULL',
         t.pid = (
             SELECT s.id FROM mm_staedte AS s
             WHERE s.alias = {{param::post?name=stadt}}
             LIMIT 1
         ),
         t.pid = (
            SELECT e.stadt
            FROM mm_events AS e
            WHERE e.id = SUBSTRING_INDEX({{param::get?name=id}},'::',-1)
            LIMIT 1
        )
    ), 
        1=1 
    )
    Wurde in letzter Zeit in MM was geändert von dem ich (mal wieder) nichts mitbekommen hab?

    Im BE, sprich
    SUBSTRING_INDEX(SUBSTRING_INDEX('{{env::request}}' , '/', -1), '?', 1) = 'contao'
    funktioniert die Filterung nicht mehr...

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

    Standard

    Zitat Zitat von marcohe Beitrag anzeigen
    Wurde in letzter Zeit in MM was geändert von dem ich (mal wieder) nichts mitbekommen hab?
    ... das kann ich schwerlich beantworten - den MM Newsletter für 2.3 bekommst Du ja

    Mach mal die Symfony-Toolbar an und guck, wie das aufgelöste Query aussieht - es gibt (wie mehrfach beschrieben) ein neues Routing in MM was ist in {{env::request}} ?

    das Routing ist nicht mehr
    domain.de/contao?do=metamodel_mm_employees&act=edit&id=mm_em ployees::23
    sondern
    domain.de/contao/metamodel/mm_employees?act=edit&id=mm_employees::23

    was da raus mommt, kann man hier prüfen https://www.w3schools.com/mysql/trym...ubstring_index

    z. B.
    SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('/contao/metamodel/mm_employees?act=edit&id=mm_employees::23', '/', -1), '?', 1);
    ein
    mm_employees

  9. #9
    Contao-Fan
    Registriert seit
    20.10.2014.
    Beiträge
    497

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    was da raus mommt, kann man hier prüfen https://www.w3schools.com/mysql/trym...ubstring_index
    Dieses hilfreiche Tool kannte ich nicht. Danke! Tatsächlich ist mit dem neuen Routing das Ergebnis von {{env::request}} ein anderes.

  10. #10

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
  •