Ergebnis 1 bis 6 von 6

Thema: Subpalettes in BE ModuleUser

  1. #1
    Contao-Nutzer Avatar von SharkeyO
    Registriert seit
    14.07.2009.
    Ort
    Unterbarmen, Wuppertal, NRW, GER
    Beiträge
    88

    Standard Subpalettes in BE ModuleUser

    Hallo,

    Kurzinfo: Typolight v2.8.3

    Es ist ja bekannt, dass ein Benutzer seine persönlichen Daten über das BackEnd bearbeiten kann. Dafür ist innerhalb der dca>tl_user.php eine eigene Palette 'login' definiert. Nun habe ich tl_user so erweitert, dass zusätzlich Subpaletten angezeigt werden sollen. Es sind sowohl Selektoren als auch Subpaletten definiert.

    Code:
    $GLOBALS['TL_DCA']['tl_user']['palettes']['__selector__'][] = 'isTranslator';
    Code:
    $GLOBALS['TL_DCA']['tl_user']['subpalettes']['isTranslator'] = 'workTrans01a,workTrans01b';
    Nun zum Problem:
    Wähle ich einen Selektor an, wird mir "loading Data..." angezeigt, aber direkt im Anschluss nicht die Subpalette, sondern die ganze Seite mit der Meldung "Ein Fehler ist aufgetreten." an dieser Stelle dargestellt.

    Das Modul "Persönliche Daten" ist ein callback auf backend>ModuleUser.php
    Leider kann ich hier aber nicht feststellen, wie ich den Fehler beheben kann.

    Wieso werden die korrekten Subpaletten nicht geladen??

    Bin für jede Hilfe dankbar.

    Viele Grüße
    André
    Geändert von SharkeyO (05.06.2010 um 18:00 Uhr)
    Don't you ever use another CMS.

  2. #2
    Contao-Urgestein Avatar von jan.theofel
    Registriert seit
    23.06.2009.
    Ort
    Berlin
    Beiträge
    1.846

    Standard

    Hi,

    ich denke es könnte helfen, wenn du die fraglichen Teile deines Source-Codes mit hier einstellst.

    Jan
    Jan Theofel
    Barcamp-Moderator für Corporate-Barcamps und öffentliche Barcamps

  3. #3
    Contao-Urgestein Avatar von Toflar
    Registriert seit
    15.06.2009.
    Beiträge
    4.467
    Partner-ID
    8667
    User beschenken
    Wunschliste

    Standard

    Das kann ich bestätigen.
    Ich hab das auch teilweise versucht zurück zu verfolgen, bin dann aber aus Zeitgründen zu keinem Resultat gekommen.
    Contao Core-Entwickler @terminal42 gmbh
    Wir sind Contao Premium-Partner!
    Für Individuallösungen kannst du uns gerne kontaktieren.
    PS: Heute schon getrakked?

  4. #4
    Contao-Nutzer Avatar von SharkeyO
    Registriert seit
    14.07.2009.
    Ort
    Unterbarmen, Wuppertal, NRW, GER
    Beiträge
    88

    Standard

    Ist das vielleicht ein BUG?

    Kennt sich jemand hiermit aus:

    Code:
    $this->objDc->edit($this->User->id);
    Vielleicht verhindert ja die Funktion die Ausführung von Subpaletten?
    Don't you ever use another CMS.

  5. #5
    Contao-Nutzer Avatar von SharkeyO
    Registriert seit
    14.07.2009.
    Ort
    Unterbarmen, Wuppertal, NRW, GER
    Beiträge
    88

    Standard

    Also, folgendes habe ich nun herausbekommen:

    In "normalen" BE-Modulen wird bei Aktivierung von Selector-Feldern per SubmitOnChange ein Ajaxmodul aufgerufen, dass unter anderem dafür sorgt, dass innerhalb der Datenbank das betreffende Feld den Wert "1" bekommt (schon während der Laufzeit). Dieser Wert sorgt dann dafür, dass die Trigger-Variable der Funktion getPalette() in DC_Table.php (nähe Zeile 2497; $trigger = $objFields->$name; ) für das entsprechende Feld ebenfalls "1" ist. Mit Hilfe dieses Triggers wird die Gesamtpalette so umgestrickt, dass innerhalb dieser nun der Selektor samt Subpalette dargestellt wird.

    Im betreffenden ModuleUser allerdings, sorgt der Aufruf des oben genannten Ajaxmoduls nicht für eine Speicherung in der Datenbank. Folglich hat weder das Feld noch der Trigger den Wert "1" und die Subpalette kann nicht geladen werden.

    Speichert man aber zwischen, so taucht auch die Palette auf (klar, der Selector-Wert ist ja "1"). Ein "save_callback" für das Feld hat auch nicht zu einem positiven Ergebnis geführt.

    Ein zusätzliches Problem, das mir aufgefallen ist: Bei Aufruf der Subpalette (Ajaxcontainer) wird auch die interne ID ($intID) nicht korrekt übergeben und ist für die Subpalette immer "0".

    Es gibt also zwei Schwierigkeiten:
    1. Wie kann die $intID korrekt übergeben werden?
    2. Wie kann beim Klick auf einen Selektor per Ajax eine Speicherung des Selektorwertes in die Datenbank erzwungen werden (wie es auch bei "normalen" BE-MODs funktioniert)?

    Ich bin über jeden Hinweis sehr dankbar.

    Grüße
    André
    Don't you ever use another CMS.

  6. #6
    Gesperrt
    Registriert seit
    02.12.2009.
    Ort
    Berlin
    Beiträge
    103

    Standard

    Dieser Thread ist 1/2 Jahr alt und ich weiss nicht, ob man noch darauf antworten sollte.
    Jedoch ist mir dazu aufgefallen, dass das ModuleUser nicht wie die anderen Backend-Module in der config.php mit...

    1.) ...dem dem key "table" als "reines DCA Modul" ausgezeichnet ist, sondern...
    2.) ...dazu noch den key "callback" hat und mit einer Klasse ModulUser aufgeladen wird.
    "Normalerweise" ist das eher eine entweder/oder Sache bei den Contao Modulen (Standardumfang).

    Wir nun ein Ajax-Request "toggleSubpalette" aufgrund eines Checkbox-Fields gemacht, so wander der erst durch die main.php und später durch die Backend.php (Klasse). Dort wird in der aktuellen Version 2.9.3 dann die Weiche zwischen Zeile 176 (Ajax), 182 (Callback/Klasse) und 196 (default/DCA) gestellt...

    Weil nun bei dieser Weiche der Abzweig zum Ajax ganz oben kommt, wird alles auf Abzweig 3 (ModuleUser) nicht beachtet. Daher läuft dort dann was schief.

    Ich kann mich da täuschen und habe es auch ab diesem Punkt noch nicht weiter ergründet, aber die Subpaletten per Ajax aufzurufen ist für ein Modul mit "callback" UND "table" nicht trivial. Leider!
    ist, sondern auch eine über den "callback"

Aktive Benutzer

Aktive Benutzer

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

Ähnliche Themen

  1. Checkboxen in Subpalettes werden nicht versteckt
    Von Bandyt im Forum Entwickler-Fragen
    Antworten: 6
    Letzter Beitrag: 14.03.2011, 13:20
  2. subpalettes
    Von oliver im Forum Entwickler-Fragen
    Antworten: 7
    Letzter Beitrag: 15.09.2009, 16:34
  3. Radio-Button und Subpalettes
    Von Torben im Forum Entwickler-Fragen
    Antworten: 11
    Letzter Beitrag: 06.08.2009, 19:17

Lesezeichen

Lesezeichen

Berechtigungen

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