Contao-Camp 2024
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 40 von 63

Thema: Aktuelle Erweiterung für Mitgliederfelder

  1. #1
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard Aktuelle Erweiterung für Mitgliederfelder

    Hallo zusammen,

    gibt es eine aktuelle und gute Erweiterung um die Felder bei Mitgliedern zu erweitern und zwar so das man auch im Backend einen Filter für das jeweilige Feld hat?

    Früher gabs mal xt_members bzw. xt_memberfields aber da ist seit 2017 keine Bewegung mehr drin....daher hab ich etwas bedenken ob das aktuell oder in der Zukunft noch funzt.

    VG

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.883
    Partner-ID
    10107

    Standard

    Passe doch einfach das DCA selbst an deine Bedürfnisse an? Das wäre die reguläre Vorgehensweise.

  3. #3
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    Wie schwierig ist das für jemand der kein Entwickler ist?

  4. #4
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.883
    Partner-ID
    10107

    Standard

    Da ich mich als "Entwickler" sehe, kann ich dir das nicht beantworten. Aber jede Person die eine Website entwickelt, ist ja ein(e) Entwickler*in.

  5. #5
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    Naja ich kann halt keine Module programmieren..Templates entsprechend anpassen schon. DCA umbiegen/erweitern klingt schon etwas komplexer :-(

  6. #6
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    Kannst vielleicht du oder irgendwer mir ein Beispiel mit einem weiteren Textfeld zur Verfügung stellen wovon ich den Rest dann ableiten kann?

  7. #7
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.883
    Partner-ID
    10107

  8. #8
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    Ich versuchs mal..macht euch auf viele Fragen gefasst ;-)

    Ich konnte anhand der Beispiele schon mal einen Bereich + Textfeld hinzufügen. Wie bekomme ich da denn ein Datumsfeld? Bzw. wo finde ich eine Erklärung welche Felder es gibt.

    <?php
    // contao/dca/tl_member.php
    use Contao\CoreBundle\DataContainer\PaletteManipulator ;






    Code:
    $GLOBALS['TL_DCA']['tl_member']['fields']['custom_field'] = [
        'label' => ['Mündliche Prüfung', 'Datum der mündlichen Prüfung.'],
        'inputType' => 'text',
        'eval' => ['tl_class' => 'w50', 'maxlength' => 255],
        'sql' => ['type' => 'string', 'length' => 255, 'default' => '']
    ];
    // appending custom_field to the palette
    $GLOBALS['TL_DCA']['tl_member']['palettes']['default'] .= ';{Infos Jagdschüler},custom_field';
    
    
    // using str_replace() to insert the field after the username
    str_replace('username', 'username,custom_field', $GLOBALS['TL_DCA']['tl_member']['palettes']['default']);
    Und das Feld ist noch nicht in der Mitglieder Übersicht filterbar.
    Geändert von Kahmoon (18.09.2020 um 13:52 Uhr)

  9. #9
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.883
    Partner-ID
    10107

    Standard

    Zitat Zitat von Kahmoon Beitrag anzeigen
    Wie bekomme ich da denn ein Datumsfeld? Bzw. wo finde ich eine Erklärung welche Felder es gibt.
    https://docs.contao.org/dev/reference/dca/fields/

    Du kannst dir ja auch die Felder aus dem Core ansehen.

  10. #10
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    Ich hab mir jetzt das Datumsfeld aus dem Core adaptiert. Datepicker funzt auch aber in der Filteransicht steht jetzt der Datumswert als Integer. Ich brauche aber im Filter ein lesbares Datum.

    24.09.2020 = 1600898400


    Code:
    $GLOBALS['TL_DCA']['tl_member']['fields']['custom_field'] = [
        'label' => ['Mündliche Prüfung', 'Datum der mündlichen Prüfung.'],
    	'exclude'	=> true,
    	filter => true,
    	'inputType'	=> 'text',
    	'eval' => array('rgxp'=>'date', 'mandatory'=>false, 'doNotCopy'=>true, 'datepicker'=>true, 'tl_class'=>'w50 wizard'),
        'sql' => "int(10) unsigned NULL"
    ];
    // appending custom_field to the palette
    $GLOBALS['TL_DCA']['tl_member']['palettes']['default'] .= ';{Infos zur Jagdausbildung},custom_field';
    
    
    // using str_replace() to insert the field after the username
    str_replace('username', 'username,custom_field', $GLOBALS['TL_DCA']['tl_member']['palettes']['default']);

  11. #11
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.883
    Partner-ID
    10107

    Standard

    Je nach was du filtern willst, musst du den "flag" des Feldes setzen. Siehe https://docs.contao.org/dev/referenc...lds/#reference

    z.B.:
    7 Sort by month ascending
    Das ändert auch das Filter Drop down, sodass du dann ein Monat auswählen kannst.

  12. #12
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    Mir reicht schon das Datum in Klarschrift. Ich glaube mein Problem hat mit der Sortierung erst mal nichts zu tun.

    Ein Redakteur muss "24.09.2020" sehen und nicht "1600898400"

  13. #13
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.883
    Partner-ID
    10107

    Standard

    Zitat Zitat von Kahmoon Beitrag anzeigen
    Mir reicht schon das Datum in Klarschrift.
    Du willst es also pro Tag filtern? Dann wäre das:
    5 Sort by day ascending
    6 Sort by day descending

  14. #14
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.935

    Standard

    Zitat Zitat von Kahmoon Beitrag anzeigen
    Mir reicht schon das Datum in Klarschrift. Ich glaube mein Problem hat mit der Sortierung erst mal nichts zu tun.
    Doch: was Du bei der Sortierung wählst (Tag oder Monat) impliziert die Formatierung des Timestamps im Dropdown.
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  15. #15
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    Zitat Zitat von fiedsch Beitrag anzeigen
    Doch: was Du bei der Sortierung wählst (Tag oder Monat) impliziert die Formatierung des Timestamps im Dropdown.
    Moin beisammen,

    alles klar! Jetzt wird es formatiert. Voll gut..danke!

    Bekommt man diese Info auch in die Auflistung im Backend? Also Vorname, Nachname, Last Login, Prüfungsdatum?
    Geändert von Kahmoon (21.09.2020 um 09:21 Uhr)

  16. #16
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    Ach ja..und wenn ich den Cache lösche bekomme ich ein warning

    Code:
    Warning: Use of undefined constant filter - assumed 'filter' (this will throw an Error in a future version of PHP) in /homepages/46/d346729057/htdocs/spielwiese/contao/dca/tl_member.php on line 31Warning: Use of undefined constant sorting - assumed 'sorting' (this will throw an Error in a future version of PHP) in /homepages/46/d346729057/htdocs/spielwiese/contao/dca/tl_member.php on line 32


    Code:
    
    
    Code:
    $GLOBALS['TL_DCA']['tl_member']['fields']['schriftliche_pruefung'] = [
        'label' => ['schriftliche Prüfung', 'Datum der schriftlichen Prüfung.'],
        'exclude'    => true,
        filter => true,
        sorting => true,
        flag => 5,
        'inputType'    => 'text',
        'eval' => array('rgxp'=>'date', 'mandatory'=>false, 'doNotCopy'=>true, 'datepicker'=>true, 'tl_class'=>'w50 wizard'),
        'sql' => "int(10) unsigned NULL"
    ];


  17. #17
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.883
    Partner-ID
    10107

    Standard

    Du hast Hochkommas vergessen.

  18. #18
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    Ahh i see....danke

    Noch mal zur Frage aus dem vorherigen Post:
    Bekomme ich diese neuen Felder in die Auflistung der Mitglieder?

  19. #19
    Contao-Nutzer Avatar von eki89
    Registriert seit
    20.04.2016.
    Beiträge
    41
    Partner-ID
    11715
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Die Felder welche in einer Liste angezeigt werden, kannst du ebenfals über das DCA erweitern. Dafür musst du dieses lediglich unter list -> label -> fields ergänzen.

    Code:
    $GLOBALS['TL_DCA']['tl_member']['list']['label']['fields'][] = 'customField';
    Je nach Feld müsste dies allerdings programmatisch korrekt formatiert werden. Dies wäre aber auch wieder über die tl_member zu bewerkstelligen.

  20. #20
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    Danke...das funzt super!
    Angehängte Grafiken Angehängte Grafiken

  21. #21
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    Eine Frage hätte ich noch. Wie bekomme ich denn die neuen Felder etwas mehr nach oben? Aktuell sind die ganz unten...also sogar noch nach "Veröffentlichen".

  22. #22
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.883
    Partner-ID
    10107

    Standard

    Mit dem PaletteManipulator hast du diverse Möglichkeiten: https://docs.contao.org/dev/framewor...temanipulator/

  23. #23
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    Das heisst ich hole mir die ORiginalreihenfolge aus der tl_member (Core)

    Code:
    {personal_legend},firstname,lastname,dateOfBirth,gender;{address_legend:hide},company,street,postal,city,state,country;{contact_legend},phone,mobile,fax,email,website,language;{groups_legend},groups;{login_legend},login;{homedir_legend:hide},assignDir;{account_legend},disable,start,stop
    und füge dann meinen custom Part an der gewünschten Stelle ein?

    Code:
    {personal_legend},firstname,lastname,dateOfBirth,gender;{address_legend:hide},company,street,postal,city,state,country;{contact_legend},phone,mobile,fax,email,website,language;{groups_legend},groups;{Infos zur Jagdausbildung},jaegerpruefung,praktische_pruefung,info;{login_legend},login;{homedir_legend:hide},assignDir;{account_legend},disable,start,stop'
    Wäre das der korrekte Weg?
    Geändert von Kahmoon (21.09.2020 um 17:29 Uhr)

  24. #24
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.883
    Partner-ID
    10107

    Standard

    Nein, der korrekte Weg wäre den PaletteManipulator zu benutzen.

  25. #25
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    haha das habe ich versucht :-P

    Bräuchte da bitte Hilfe.

    Vermutlich mit diesen Befehlen?

    Code:
    use Contao\CoreBundle\DataContainer\PaletteManipulator;
    
    
    PaletteManipulator::create()
        ->addField('custom_field', 'username', PaletteManipulator::POSITION_AFTER)
        ->addField('custom_field_2', 'name_legend', PaletteManipulator::POSITION_APPEND)
        ->removeField('username', 'name_legend')
        ->applyToPalette('default', 'tl_example')
    ;

  26. #26
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.883
    Partner-ID
    10107

    Standard

    Genau. Laut deinem vorherigen Post möchtest du aber eine eigene Legend nach der groups_legend einfügen - und dann alle Felder dieser neuen Legend hinzufügen.

  27. #27
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    Ich habe es jetzt zumindest geschafft es ganz nach oben zu schieben. Zwischenrein check ich irgendwie nicht.

    Code:
    PaletteManipulator::create()
        ->addLegend('Infos zur Jagdausbildung', 'groups_legend', PaletteManipulator::POSITION_PREPEND)
        ->addField('jaegerpruefung', 'Infos zur Jagdausbildung', PaletteManipulator::POSITION_APPEND)
        ->addField('praktische_pruefung', 'Infos zur Jagdausbildung', PaletteManipulator::POSITION_APPEND)
        ->addField('info', 'Infos zur Jagdausbildung', PaletteManipulator::POSITION_APPEND)
        ->applyToPalette('default', 'tl_member')
    ;

  28. #28
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.883
    Partner-ID
    10107

    Standard

    Du willst es ja nach der groups_legend haben, also PaletteManipulator::POSITION_AFTER.

  29. #29
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    OK, jetzt hab ich das Prinzip verstanden. Danke

  30. #30
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    Jetzt ist noch mal eine Frage aufgetaucht. Wie schaffe ich es das eins der neuen Felder auch für Mitglieder selbst im Modul "Personendaten" editierbar ist? Aktuell taucht dort keins auf.

  31. #31
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.883
    Partner-ID
    10107

    Standard

    Dazu musst du es im "eval" zu einer "feGroup" hinzufügen. Siehe https://docs.contao.org/dev/referenc...ds/#evaluation

  32. #32
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    Sprich aus:
    Code:
    $GLOBALS['TL_DCA']['tl_member']['fields']['jaegerpruefung'] = [
        'label'         => ['Jägerprüfung', 'Geplantes Prüfungsquartal des Jagdschülers'],
        'exclude'       => true,
        'filter'         => true,
        'inputType'     => 'select',
        'options'       => ['','JP3/2020','JP4/2020', 'JP1/2021', 'JP2/2021', 'JP3/2021', 'JP4/2021', 'JP1/2022', 'JP2/2022', 'JP3/2022', 'JP4/2022', 'JP1/2023', 'JP2/2023', 'JP3/2023', 'JP4/2023'],
        'eval'          => array('tl_class'=>'w33', 'mandatory'=>false, 'doNotCopy'=>true),
        'sql'           => "varchar(32) NOT NULL default"
    ];
    wird

    Code:
    'eval'          => array('tl_class'=>'w33', 'mandatory'=>false, 'doNotCopy'=>true, 'feGroup'=>'Jagdschüler'),
    Das wirkt irgendwie sehr hardcoded

    Edit: Funktioniert so auch nicht. Weder in den Moduleinstellungen noch im Frontend
    Geändert von Kahmoon (08.10.2020 um 09:56 Uhr)

  33. #33
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    Code:
    'eval'          => array('tl_class'=>'w33', 'mandatory'=>false, 'doNotCopy'=>true, 'feEditable' => true),
    feEditable hat gefehlt. feGroup besagt ja nur in welchem Bereich es ist.

    Jetzt hätte ich da gerne noch eine Überschrift im Frontend :-P. Aktuell bazt er es einfach nur unten dran.
    Geändert von Kahmoon (08.10.2020 um 10:04 Uhr)

  34. #34
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.883
    Partner-ID
    10107

    Standard

    Du musst wie gesagt eine der feGroups wählen. Du kannst auch eine eigene feGroup erzeugen und die entsprechende Translation bereitstellen (weiß ich aber nicht auswendig wie).

  35. #35
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    Ja, aber ich kann nur eine der 4 vorgegebenen Gruppen wählen. Wenn ich einen neuen Wert 'xyz' eintrage, nimmt er den nicht.

    Eins der Felder ist im Backend ein Feld mit Datepicker. Das geht im Frontend nicht wenn ich das richtig sehe.

  36. #36
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.883
    Partner-ID
    10107

    Standard

    Zitat Zitat von Kahmoon Beitrag anzeigen
    Ja, aber ich kann nur eine der 4 vorgegebenen Gruppen wählen. Wenn ich einen neuen Wert 'xyz' eintrage, nimmt er den nicht.
    Geht schon, nur muss auch das entsprechende Label dafür bereitgestellt werden. Wie das genau funktioniert weiß ich nicht auswendig, wie gesagt. Müsste ich zuerst in alten Projekten nachsehen.


    Zitat Zitat von Kahmoon Beitrag anzeigen
    Eins der Felder ist im Backend ein Feld mit Datepicker. Das geht im Frontend nicht wenn ich das richtig sehe.
    Was genau meinst du damit?

  37. #37
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    Ich habe ein zusätzliches Memberfeld im Backend mit einem Datepicker gemacht.

    Code:
    $GLOBALS['TL_DCA']['tl_member']['fields']['praktische_pruefung'] = [
        'label' 	=> ['Praktische Prüfung', 'Datum der praktischen Prüfung. Wichtig für die Planung der WHH Termine!'],
        'exclude'   => true,
        'filter' 	=> true,
        'sorting' 	=> true,
        'flag' 		=> 5,
        'inputType' => 'text',
        'eval' 		=> array('rgxp'=>'date', 'mandatory'=>false, 'doNotCopy'=>true, 'datepicker'=>true, 'tl_class'=>'w33 wizard', 'feGroup'=>'personal', 'feEditable' => true),
        'sql' 		=> "int(10) unsigned NULL"
    ];
    Wenn ich dieses Feld in den Mitgliederdaten zum Bearbeiten freigebe ist es im Frontend nur ein Textfeld ohne Datepicker.
    Angehängte Grafiken Angehängte Grafiken

  38. #38
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.883
    Partner-ID
    10107

    Standard

    Ja, den Date Picker gibt es nur für das Backend.

    Für das Frontend gibt es Erweiterungen dafür, um automatisch einen Date Picker zu haben, soweit ich weiß.
    Geändert von Spooky (08.10.2020 um 13:46 Uhr)

  39. #39
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    Dachte ich mir. Es gibt ne Fehlermeldung wenn das Datum falsch eingegeben wird. Das sollte auch passen.

  40. #40
    Contao-Urgestein Avatar von Kahmoon
    Registriert seit
    22.06.2009.
    Ort
    München
    Beiträge
    5.273

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Du musst wie gesagt eine der feGroups wählen. Du kannst auch eine eigene feGroup erzeugen und die entsprechende Translation bereitstellen (weiß ich aber nicht auswendig wie).
    Dürfte ich hier noch mal nachhaken. Ich komme nicht weiter mir eine eigene feGroup anzulegen. Aktuell ist das alles bei persönlichen Daten. Siehe Anhang.
    Angehängte Grafiken Angehängte Grafiken

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
  •