Ergebnis 1 bis 15 von 15

Thema: Registrierung: zusätzliche Felder im grouped-template

  1. #1
    Contao-Nutzer
    Registriert seit
    10.03.2016.
    Beiträge
    39

    Standard Registrierung: zusätzliche Felder im grouped-template

    Hallo Community,

    habe das Frontend-Formular um diverse eigene Felder erweitert (default-palette).
    Im Standard-template (member_default) funktioniert das auch wunderbar, allerdings würde ich lieber das member_grouped-template verwenden.
    Wechsele ich aber die templates, sind meine Felder nicht sichtbar.
    Was muss ich hier ändern?
    Viele Grüße und wie immer danke
    Andi

  2. #2
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hast du die Felder einer Gruppe, eval-feGroup, zugeordnet? Z.B. personal, address, login, contact, newsletter?
    https://docs.contao.org/books/api/dc...tml#evaluation
    https://github.com/contao/core/blob/...ember.php#L149
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  3. #3
    Contao-Nutzer
    Registriert seit
    10.03.2016.
    Beiträge
    39

    Standard

    Hallo Andreas,
    vielen Dank, hier lag tatsächlich mein Fehler.
    An welcher Stelle lassen sich denn eigene Gruppen definieren?

  4. #4
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    In deiner system/modules/myExtension/dca/tl_member.php

    Ich glaube du brauchst nur einen Namen zu vergeben. 'feGroup'=>'mygroup'.

    Lese dich auch ein, wie du eigene Paletten erstellst. https://github.com/contao/core/blob/...ember.php#L119 und bei den Docs nachlesen. Bzw. wie du deine {mygroup_legend} ins BE bekommst.

    In die Sprachdatei kommt dann noch
    PHP-Code:
    $GLOBALS['TL_LANG']['tl_member']['mygroup_legend'] = 'Meine Gruppe'
    Im Template kannst du dann $this->showTemplateVars() benutzen, falls bei der Ausgabe etwas fehlen sollte.
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  5. #5
    Contao-Nutzer
    Registriert seit
    10.03.2016.
    Beiträge
    39

    Standard

    Hallo Andreas,

    sorry, leider muss ich noch einmal nachhaken.

    Habe nun eine neue palette erstellt und mit Feldern befüllt:

    PHP-Code:
    $GLOBALS['TL_DCA']['tl_member']['palettes']['exam'] = array (
    'exam' =>'{exam_legend},comments,...',

    // fields 

    'fields' => array (

    'comments' => array (
        
    'label'     => &$GLOBALS['TL_LANG']['tl_member']['comments'],
        
    'exclude'   => true,
        
    'inputType' => 'text',
        
    'eval'      => array(
        
    'feEditable' => true,
            
    'feViewable' => true,
            
    'feGroup' => 'exam',
        
    'mandatory'=> false
        
                    ),
        
    'sql'       => "varchar(80) NOT NULL default ''" 
    ),
    ),
    ); 
    In der lang-datei habe ich dann gemäß deines Hinweises
    PHP-Code:
    $GLOBALS['TL_LANG']['tl_member']['exam_legend'] = 'Klausurinformationen'
    Leider sehe ich die Felder weder im Backend in der Modulkonfiguration der Registrierung, noch im Frontend.
    Auch kann ich keine Infos finden, wie ich die legend ins Backend bekomme, falls das mit meinem Fehler zusammenhängt.

    Viele Grüße und wie immer danke für die antworten
    Snape

  6. #6
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ok, eigene Paletten erstellen war vielleicht etwas ungenau ausgedrückt. Du musst dich in die vorhandene Palette integrieren, indem du dich entweder an sie anhängst
    PHP-Code:
    $GLOBALS['TL_DCA']['tl_member']['palettes']['default'] .= ';{exam_legend},comments'
    Oder dich irgendwo dazwischen schiebst.
    PHP-Code:
    $GLOBALS['TL_DCA']['tl_member']['palettes']['default'] = str_replace(
      
    '{groups_legend}'
      
    '{exam_legend},comments;{groups_legend}'
      
    $GLOBALS['TL_DCA']['tl_member']['palettes']['default']
    ); 
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  7. #7
    Contao-Nutzer
    Registriert seit
    10.03.2016.
    Beiträge
    39

    Standard

    Hallo Andreas,

    leider klapt es immer noch nicht.


    In meiner Registrierungsmaske möchte ich also sowohl Felder an die Personendaten (personal) als auch eine eigene legend mit Feldern anfügen.
    Hier muss ich mich also wenn ich das richtig verstehe, an zwei Stellen dazwischenschieben (einmal irgendwo an den Personendaten, und einmal irgendwo ganz hinten).
    Dies versuche ich mit folgendem Code:

    PHP-Code:
    $GLOBALS['TL_DCA']['tl_member']['palettes']['default'] = str_replace
    (
        
    'gender',
        
    'gender,department,chipcard_nr,',
        
    $GLOBALS['TL_DCA']['tl_member']['palettes']['default']
    );

    $GLOBALS['TL_DCA']['tl_member']['palettes']['default'] = str_replace
    (
        
    'login;',
        
    'login;{exam_legend},extra_time,comments;',
        
    $GLOBALS['TL_DCA']['tl_member']['palettes']['default']
    ); 
    in der lang-datei ist die exam_legend entsprechend deklariert:

    PHP-Code:
    $GLOBALS['TL_LANG']['tl_member']['exam_legend'] = 'meine legend'
    die fe_group ist bei allen Feldern entsprechnend mit 'personal' bzw. 'exam' definiert.
    Leider sehe ich momentan nur die Felder, die der Gruppe 'personal' zugeordnet sind. Die Felder mit fegroup 'exam' tauchen nicht auf.
    Habe ich hier noch irgendwas vergessen?

    Viele Grüße
    Snape

  8. #8
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hier die erste Zeile endet ohne Komma, die Ersetzung endet dann mit Komma, das ist nicht gut.
    PHP-Code:
        'gender',
        
    'gender,department,chipcard_nr,'
    Hast du die Felder im Modul ausgewählt?

    Mache im Template auch mal ne Ausgabe aller Variablen
    PHP-Code:
    <?php $this->showTemplateVars(); ?>
    Wenn du es nicht hinbekommst, dann poste mal den kompl. Code von ...dca/tl_member.php, damit ich das bei mir ausprobieren kann.
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  9. #9
    Contao-Nutzer
    Registriert seit
    10.03.2016.
    Beiträge
    39

    Standard

    Hallo Andreas,

    Hier die erste Zeile endet ohne Komma, die Ersetzung endet dann mit Komma, das ist nicht gut.
    Habe ich entsprechend angepasst, ändert aber leider nichts am Ergebnis.

    Hast du die Felder im Modul ausgewählt?
    Ja.

    Mache im Template auch mal ne Ausgabe aller Variablen
    In dieser Ausgabe sind auch die nicht angezeigten Felder sichtbar. Bei der Gelegenheit ist mir auch aufgefallen, dass auch im Seitenquelltext alle Felder da sind, allerdings alle auf hidden stehen.
    Habe auch schon im modul alle Felder abgewählt und neu ausgewählt.
    Wo kann hier der Fehler liegen?

    Wenn du es nicht hinbekommst, dann poste mal den kompl. Code von ...dca/tl_member.php, damit ich das bei mir ausprobieren kann.
    PHP-Code:
    <?php

    $GLOBALS
    ['TL_DCA']['tl_member']['palettes']['default'] = str_replace
    (
        
    'gender,',
        
    'gender,department,study_course,chipcard_nr,handicaps,',
        
    $GLOBALS['TL_DCA']['tl_member']['palettes']['default']
    );

    $GLOBALS['TL_DCA']['tl_member']['palettes']['default'] = str_replace
    (
        
    'login;',
        
    'login;{exam_legend},extra_time_minutes,rehab_devices,comments;',
        
    $GLOBALS['TL_DCA']['tl_member']['palettes']['default']
    );


    // Hinzufügen der Feld-Konfiguration

    $GLOBALS['TL_DCA']['tl_member']['fields']['department'] = array
    (
        
    'label'     => &$GLOBALS['TL_LANG']['tl_member']['department'],
        
    'exclude'   => true,
        
    'inputType' => 'text',
        
    'eval'      => array(
        
    'feGroup'=>'personal',
        
    'feEditable' => true,
            
    'feViewable' => true,
        
    'mandatory'=> true
        
                    ),
        
    'sql'       => "varchar(10) NOT NULL default ''" 
    );

    $GLOBALS['TL_DCA']['tl_member']['fields']['study_course'] = array
    (
        
    'label'     => &$GLOBALS['TL_LANG']['tl_member']['study_course'],
        
    'exclude'   => true,
        
    'inputType' => 'text',
        
    'eval'      => array(
        
    'feGroup'=>'personal',
        
    'feEditable' => true,
            
    'feViewable' => true,
        
    'mandatory'=> true
        
                    ),
        
    'sql'       => "varchar(30) NOT NULL default ''" 
    );

    $GLOBALS['TL_DCA']['tl_member']['fields']['chipcard_nr'] = array
    (
        
    'label'     => &$GLOBALS['TL_LANG']['tl_member']['chip_card_nr'],
        
    'exclude'   => true,
        
    'inputType' => 'text',
        
    'eval'      => array(
        
    'feEditable' => true,
            
    'feViewable' => true,
            
    'feGroup'=>'personal',
        
    'mandatory'=> true
        
                    ),
        
    'sql'       => "varchar(20) NOT NULL default ''" 
    );

    $GLOBALS['TL_DCA']['tl_member']['fields']['handicaps'] = array
    (
        
    'label'     => &$GLOBALS['TL_LANG']['tl_member']['handicaps'],
        
    'exclude'   => true,
        
    'inputType' => 'checkbox',
    'options' => array(
    'blind',
    'sehbehndert',
    'gehörlos',
    'motorisch eingeschränkt',
    'Authismus',
    'psychische Erkrankung',
        
    'chronische Erkrankung',
        
    'akute Erkrankung'
        
    ),
        
    'eval' => array(
        
    'feEditable' => true,
            
    'feViewable' => true,
            
    'feGroup'=>'personal',
        
    'mandatory' => true
        
    ),
        
    'sql' => "char(2) NOT NULL default ''"
    );

    $GLOBALS['TL_DCA']['tl_member']['fields']['rehab_devices'] = array(
    'label'     => &$GLOBALS['TL_LANG']['tl_member']['rehab_devices'],
        
    'exclude'   => true,
        
    'inputType' => 'checkbox',
    'options' => array(
    'PC',
    'Blindenarbeitsplatz',
    'a3-Druck',
    'Verdunkelung',
    'Schreibassistenz',
    'Zoomtext',
        
    'Bildschirmlupe',
        
    'Bildschirmlesegerät',
        
    'Hochtisch',
        
    'Arbeitsplatz nahe Tür'
            
    ),
        
    'eval' => array(
        
    'feEditable' => true,
            
    'feViewable' => true,
            
    'feGroup' => 'exam',
        
    'mandatory' => true
        
    ),
        
    'sql' => "char(2) NOT NULL default ''"

    );

    // Zeitverlängerung 

    $GLOBALS['TL_DCA']['tl_member']['fields']['extra_time_minutes'] = array (
        
    'label'     => &$GLOBALS['TL_LANG']['tl_member']['extra_time_minutes'],
        
    'exclude'   => true,
        
    'inputType' => 'text',
        
    'eval'      => array(
        
    'feEditable' => true,
            
    'feViewable' => true,
            
    'feGroup' => 'exam',
        
    'mandatory'=> true
        
    'rgxp'=> 'digit''maxlength'=> 
                    
    ),
        
    'sql'       => "varchar(8) NOT NULL default ''" 
    );

    // Kommentare 

    $GLOBALS['TL_DCA']['tl_member']['fields']['coments'] = array
    (

        
    'label'     => &$GLOBALS['TL_LANG']['tl_member']['comments'],
        
    'exclude'   => true,
        
    'inputType' => 'text',
        
    'eval'      => array(
        
    'feEditable' => true,
            
    'feViewable' => true,
            
    'feGroup' => 'exam',
        
    'mandatory'=> false
        
                    ),
        
    'sql'       => "varchar(80) NOT NULL default ''" 
    );

    ?>

  10. #10
    Contao-Nutzer
    Registriert seit
    10.03.2016.
    Beiträge
    39

    Standard

    Nun antworte ich mir mal selbst

    Bei der Gelegenheit ist mir auch aufgefallen, dass auch im Seitenquelltext alle Felder
    da sind, allerdings alle auf hidden stehen.
    Hier habe ich mich vertan. Die Quelltext-Zeilen sind die Variablen, die angezeigt werden.
    Wenn ich die templatevars() ausblende, sehe ich auch nichts mehr im Seitenquelltext.

    Für Lösungen wäre ich dankbar, ich selber bin so langsam mit meinem Latein am Ende.

    Vieel Grüße
    Snape

  11. #11
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Fehler

    Ich gebe dir Recht. Sieht aus wie ein Bug.

    Ich habe deinen Code nochmal leicht korrigiert, da waren ein paar Fehler drin. Du musst noch mehr bei den vorhandenen Feldern im Core abschauen. Zum Testen habe ich die Labels mal hardcodiert.
    PHP-Code:
    $GLOBALS['TL_LANG']['tl_member']['exam_legend'] = 'meine exam legend';

    $GLOBALS['TL_DCA']['tl_member']['palettes']['default'] = str_replace
    (
      
    'gender',
      
    'gender,department,study_course,chipcard_nr,handicaps',
      
    $GLOBALS['TL_DCA']['tl_member']['palettes']['default']
    );

    $GLOBALS['TL_DCA']['tl_member']['palettes']['default'] = str_replace
    (
      
    'login;',
      
    'login;{exam_legend},extra_time_minutes,rehab_devices,comments;',
      
    $GLOBALS['TL_DCA']['tl_member']['palettes']['default']
    );


    // Hinzufügen der Feld-Konfiguration
    $GLOBALS['TL_DCA']['tl_member']['fields']['department'] = array
    (
      
    'label'     => &$GLOBALS['TL_LANG']['tl_member']['department'],
      
    'label'     => array('department''Helptext'),
      
    'exclude'   => true,
      
    'inputType' => 'text',
      
    'eval'      => array('feGroup'=>'personal''feEditable'=>true'feViewable'=>true'mandatory'=>true'maxlength'=>10),
      
    'sql'       => "varchar(10) NOT NULL default ''"
    );

    $GLOBALS['TL_DCA']['tl_member']['fields']['study_course'] = array
    (
      
    'label'     => &$GLOBALS['TL_LANG']['tl_member']['study_course'],
      
    'label'     => array('study_course''Helptext'),
      
    'exclude'   => true,
      
    'inputType' => 'text',
      
    'eval'      => array('feGroup'=>'personal''feEditable'=>true'feViewable'=>true'mandatory'=>true'maxlength'=>30),
      
    'sql'       => "varchar(30) NOT NULL default ''"
    );

    $GLOBALS['TL_DCA']['tl_member']['fields']['chipcard_nr'] = array
    (
      
    'label'     => &$GLOBALS['TL_LANG']['tl_member']['chip_card_nr'],
      
    'label'     => array('chip_card_nr''Helptext'),
      
    'exclude'   => true,
      
    'inputType' => 'text',
      
    'eval'      => array('feGroup'=>'personal''feEditable'=>true'feViewable'=>true'mandatory'=>true'maxlength'=>20),
      
    'sql'       => "varchar(20) NOT NULL default ''"
    );

    $GLOBALS['TL_DCA']['tl_member']['fields']['handicaps'] = array
    (
      
    'label'     => &$GLOBALS['TL_LANG']['tl_member']['handicaps'],
      
    'label'     => array('handicaps''Helptext'),
      
    'exclude'   => true,
      
    'inputType' => 'checkbox',
      
    'options'   => array
      (
        
    'blind',
        
    'sehbehndert',
        
    'gehörlos',
        
    'motorisch eingeschränkt',
        
    'Authismus',
        
    'psychische Erkrankung',
        
    'chronische Erkrankung',
        
    'akute Erkrankung'
      
    ),
      
    'eval'      => array('feGroup'=>'personal''feEditable'=>true'feViewable'=>true'mandatory'=>true'multiple'=>true),
      
    'sql'       => "blob NULL"
    );

    $GLOBALS['TL_DCA']['tl_member']['fields']['rehab_devices'] = array(
      
    'label'     => &$GLOBALS['TL_LANG']['tl_member']['rehab_devices'],
      
    'label'     => array('rehab_devices''Helptext'),
      
    'exclude'   => true,
      
    'inputType' => 'checkbox',
      
    'options'   => array
      (
        
    'PC',
        
    'Blindenarbeitsplatz',
        
    'a3-Druck',
        
    'Verdunkelung',
        
    'Schreibassistenz',
        
    'Zoomtext',
        
    'Bildschirmlupe',
        
    'Bildschirmlesegerät',
        
    'Hochtisch',
        
    'Arbeitsplatz nahe Tür'
      
    ),
      
    'eval'      => array('feGroup'=>'exam''feEditable'=>true'feViewable'=>true'mandatory'=>true'multiple'=>true),
      
    'sql'       => "blob NULL"
    );

    // Zeitverlängerung
    $GLOBALS['TL_DCA']['tl_member']['fields']['extra_time_minutes'] = array
    (
      
    'label'     => &$GLOBALS['TL_LANG']['tl_member']['extra_time_minutes'],
      
    'label'     => array('extra_time_minutes''Helptext'),
      
    'exclude'   => true,
      
    'inputType' => 'text',
      
    'eval'      => array('feGroup'=>'exam''feEditable'=>true'feViewable'=>true'mandatory'=>true'rgxp'=>'digit''maxlength'=>8),
      
    'sql'       => "varchar(8) NOT NULL default ''"
    );

    // Kommentare
    $GLOBALS['TL_DCA']['tl_member']['fields']['comments'] = array
    (
      
    'label'     => &$GLOBALS['TL_LANG']['tl_member']['comments'],
      
    'label'     => array('comments''Helptext'),
      
    'exclude'   => true,
      
    'inputType' => 'text',
      
    'eval'      => array('feGroup'=>'exam''feEditable'=>true'feViewable'=>true'mandatory'=>false'maxlength'=>80),
      
    'sql'       => "varchar(80) NOT NULL default ''"
    ); 
    Dass man die Öffentlichen Felder im BE bei jedem Mitglied auch freigeben muss (oder das Mitglied macht es selber in dem Formular im FE), hatten wir noch nicht erwähnt, ändert aber nichts. (Außerdem müssten die Felder ja auch trotzdem für das Mitglied im Formular Personen-Daten angezeigt werden.)

    Ich habe gerade leider keine Zeit solch ein Ticket zu erstellen. Wenn man das Ticket erstellt, sollte man ein Beispiel mit nur einem einfachen Feld zeigen.
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  12. #12
    Contao-Nutzer
    Registriert seit
    23.02.2010.
    Ort
    Engelskirchen
    Beiträge
    93
    Partner-ID
    7119

    Standard

    Hi, ich habe dazu eine genau passende Frage:

    1) Passwort durch System vergeben lassen, und auf der Registrierungsmaske nicht einbinden
    2) Ansonsten wenn nicht möglich, Passwort mit Platzhalter Text versehen

    Wie gehen diese beiden Varianten?

    Grüße
    David

  13. #13
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Das passt nicht zu diesem Thread. Hier geht es um zusätzliche Felder. Bitte nochmal neuen Thread aufmachen, nachdem du über die Suche nichts gefunden hast.

    Dann auch angeben auf welches Module und Template du dich beziehst. Passwort vom System vergeben ist nicht nötig, würde auch nur Sinn machen, wenn Passwörter über E-Mails mitgeteilt werden, was unsicher wäre. Ein Mitglied kann sich leicht ein Passwort erstellen. Platzhalter: Keine Ahnung, was du damit meinst. Wenn überhaupt, sieht man in Passwortfeldern nur Sternchen.
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  14. #14
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Man muss für die eigenen Gruppen noch eine Sprachvariable anlegen nach dem Muster
    PHP-Code:
    $GLOBALS['TL_LANG']['tl_member']['[feGroup]Details'] = 'Exam'
    Beispiel
    PHP-Code:
    $GLOBALS['TL_LANG']['tl_member']['examDetails'] = 'Exam'
    Siehe auch hier https://github.com/contao/core/issues/8637
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  15. #15
    Contao-Nutzer
    Registriert seit
    10.03.2016.
    Beiträge
    39

    Standard

    Ja, so funktioniert es auch bei mir. Vielen Dank für die vielen Antworten und die Unterstützung.

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
  •