Contao-Camp 2024
Ergebnis 1 bis 17 von 17

Thema: Im Backend bei Mitgliederübersicht noch den Gruppennamen anzeigen

  1. #1
    Alter Contao-Hase
    Registriert seit
    20.06.2009.
    Ort
    Graz (Austria)
    Beiträge
    1.429

    Standard Im Backend bei Mitgliederübersicht noch den Gruppennamen anzeigen

    Hallo Leute, ich möchte im Backend bei den Mitgliedern in der Übersicht noch hinzufügen, welcher Gruppe der User angehört. Ich hab 3 Gruppen erstellt.

    Jetzt hab ich unter contao/dca/tl_member.php folgenden Inhalt hineingegeben. Leider sehe ich jetzt bei grups nur die Zahl, da ja der Gruppenname in einer anderen Tabelle steht. Wie kann ich hier eine Verknüpfung aufbauen, so dass der Gruppenname anstelle der Zahl steht?

    PHP-Code:
    $GLOBALS['TL_DCA']['tl_member']['list']['label']['fields'] = ['icon''firstname''lastname''username''groups''dateAdded']; 
    LG, Andi

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

    Standard

    Dazu wirst du einen label_callback brauchen, wo du dann die Gruppen IDs ausliest und dann einen String setzt, der sich aus den Namen der ausgwählten Gruppen zusammensetzt.
    » sponsor me via GitHub or PayPal or Revolut

  3. #3
    Alter Contao-Hase
    Registriert seit
    20.06.2009.
    Ort
    Graz (Austria)
    Beiträge
    1.429

    Standard

    Hm, ich hab jetzt mal dort wo 'groups' steht folgendes eingebaut: 'groups:tl_member_group.name'

    Das funktioniert jetzt mal nicht.
    LG, Andi

  4. #4
    Alter Contao-Hase
    Registriert seit
    20.06.2009.
    Ort
    Graz (Austria)
    Beiträge
    1.429

    Standard

    So jetzt hab ich folgendes probiert:

    PHP-Code:
    $GLOBALS['TL_DCA']['tl_member']['list'] = array 

        
    'label' => array 
        (     
            
    'fields'            => array('icon''firstname''lastname''username''groups''dateAdded'), 
            
    'label_callback'    => array('tl_member_group''name'
        )
    ); 
    Jetzt kommt die Meldung:
    Internal Error
    System::import() failed because class "tl_member_group" is not a valid class name or does not exist.
    LG, Andi

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

    Standard

    Du bist da am falschen Dampfer . Wie du eigene Callbacks implementieren kannst findest du hier: https://docs.contao.org/dev/framewor...ring-callbacks
    » sponsor me via GitHub or PayPal or Revolut

  6. #6
    Alter Contao-Hase
    Registriert seit
    20.06.2009.
    Ort
    Graz (Austria)
    Beiträge
    1.429

    Standard

    Ok, das ist mir jetzt etwas zu hoch.
    LG, Andi

  7. #7
    Alter Contao-Hase
    Registriert seit
    20.06.2009.
    Ort
    Graz (Austria)
    Beiträge
    1.429

    Standard

    So, wollte etwas testen, aber leider funktioniert dies nicht. Wollte nur das Wort "test" mal in der Liste mir anzeigen lassen. Leider ohne Erfolg
    PHP-Code:
    $GLOBALS['TL_DCA']['tl_member']['list']['label_callback'][] = array('classGroupName''groupName');

    class 
    classGroupName extends Backend
    {  
        public function 
    groupName(DataContainer $dc)
        {    
            
    $varValue 'test';
            return 
    $varValue;
        }

    LG, Andi

  8. #8
    Contao-Urgestein Avatar von cliffparnitzky
    Registriert seit
    08.10.2010.
    Ort
    Lüneburg
    Beiträge
    2.446
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ich hab seit Tagen gerätselt, wo ich das schon mal gemacht hab. Nun bin ich drüber gestolpert: https://github.com/cliffparnitzky/Ba...roupsDisplayer

    Vlt. hilft dir das ja weiter.

  9. #9
    Alter Contao-Hase
    Registriert seit
    20.06.2009.
    Ort
    Graz (Austria)
    Beiträge
    1.429

    Standard

    Tja, hat jetzt schon sehr geholfen, aber mit der liste komm ich noch nicht ganz klar:

    Jetzt sehe ich im Backend NUR die Gruppennamen, aber nicht die restlichen, wie z.B. Vorname Benutzername usw.

    PHP-Code:
    $GLOBALS['TL_DCA']['tl_member']['list']['label']['label_callback'] = array('classGroupName''groupName'); 
    Hier müsste ich jetzt noch die restlichen Fields hier einbauen, oder?

    Der Rest sieht nun so aus:
    PHP-Code:
    $GLOBALS['TL_DCA']['tl_member']['list']['label']['label_callback'] = array('classGroupName''groupName');

    class 
    classGroupName extends tl_member
    {
        public function 
    groupName($row$labelDataContainer $dc=null$args=array())
        {    
            
    $args parent::addIcon($row$label$dc$args);
            
    $objGroupNames $this->Database->prepare("SELECT DISTINCT name FROM tl_member_group WHERE id IN (" implode(", "deserialize($row['groups'])) . ") ORDER BY name"
                              ->
    execute();
            
    $arrGroupNames = array();
            while (
    $objGroupNames->next()) {
                
    $arrGroupNames[] = $objGroupNames->name;
            }
                
            if (
    count($arrGroupNames) > 0) {
                
    $returnString '';
                
                if (
    $blnFormatOutput)
                {
                    
    $returnString .= '<span style="color:#b3b3b3; padding-left:3px; font-size: 9px;">[';
                }
                
                
    $returnString .= implode(", "$arrGroupNames);
                
                if (
    $blnFormatOutput)
                {
                    
    $returnString .= ']</span>';
                }
                
                return 
    $returnString;
            }
                    
            
    $groupsColumnIndex array_search('groups'$GLOBALS['TL_DCA']['tl_member']['list']['label']['fields']);
            if (
    $groupsColumnIndex !== FALSE)
            {
                
    $args[$groupsColumnIndex];
            }
            
            return 
    $args;
        }

    LG, Andi

  10. #10
    Contao-Urgestein Avatar von cliffparnitzky
    Registriert seit
    08.10.2010.
    Ort
    Lüneburg
    Beiträge
    2.446
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Wenn die Backend Liste als Tabelle dargestellt wird, müssen die Werte in einem Array zurück gegeben werden. Gemäß deinem Code wird aber ein String zurück gegeben, wenn du Mitgliedergruppen findest. Das müsste angepasst werden.

  11. #11
    Alter Contao-Hase
    Registriert seit
    20.06.2009.
    Ort
    Graz (Austria)
    Beiträge
    1.429

    Standard

    Hm, und wie?

    Das hier funktioniert auch nicht. Als Überschrift habe ich das Erstellungsdatum und darunter die Gruppennamen, aber nicht die Mitgliedsnamen

    PHP-Code:
    $GLOBALS['TL_DCA']['tl_member']['list']['label'] = array(
                                                            
    'fields' => array('icons''firstname''username'),
                                                            
    'label_callback' => array('classGroupName''groupName'),
                                                            ); 
    LG, Andi

  12. #12
    Alter Contao-Hase
    Registriert seit
    20.06.2009.
    Ort
    Graz (Austria)
    Beiträge
    1.429

    Standard

    Tja, da ich hier nicht weitergekommen bin, hab ich nun dein Modul manuel installiert und siehe da, das funktioniert prima, so wie ich es auch wollte.
    LG, Andi

  13. #13
    Contao-Urgestein Avatar von cliffparnitzky
    Registriert seit
    08.10.2010.
    Ort
    Lüneburg
    Beiträge
    2.446
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ja super. Vlt. kannst bei Github ein Ticket machen, dass das alles mit Contao 4.11. funktioniert. Dann kann ich das mal bei Zeiten freigeben.

  14. #14
    Alter Contao-Hase
    Registriert seit
    20.06.2009.
    Ort
    Graz (Austria)
    Beiträge
    1.429

    Standard

    Ja, hab ich, wobei ich mir nicht sicher bin, ob ich es unter issues gehört ;-)

    Mir ist nur noch eine kleinigkeit aufgefallen: Da ich jetzt dieses Modul installiert habe, funktioniert ein anderes jetzt nicht mehr, was auch mit der Mitgliederliste zusammenhängt.

    Und zwar das Modul "BE User Online" von Bugbuster.
    Hier wird ein zusätzliches Icon am Anfang dargestellt, welches den Online-Status des Users zeigt (grau = nicht online, grün = online). Das hab ich nicht geschafft, noch zusätzlich einzubinden.

    PHP-Code:
    $GLOBALS['TL_DCA']['tl_member']['list']['label']['fields'] = ['icon''firstname''lastname''username''dateAdded''groups''email']; 
    Dies hab ich in meiner tl_member.php noch eingebaut, so dass ich auch die emails habe. Am Anfang das icon, welches aber nicht dargestellt wird.
    LG, Andi

  15. #15
    Contao-Urgestein Avatar von cliffparnitzky
    Registriert seit
    08.10.2010.
    Ort
    Lüneburg
    Beiträge
    2.446
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Joah, im Idealfall sollten sich beide Erweiterungen ergänzen und nicht behindern. Aber wie das so ist mit dem Idealfall

  16. #16
    Alter Contao-Hase
    Registriert seit
    20.06.2009.
    Ort
    Graz (Austria)
    Beiträge
    1.429

    Standard

    Vielleicht könntest du dies noch reparieren?
    LG, Andi

  17. #17
    Contao-Urgestein Avatar von cliffparnitzky
    Registriert seit
    08.10.2010.
    Ort
    Lüneburg
    Beiträge
    2.446
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hmm. Ist immer ne Frage von Zeit und Motivation. Das muss ich mal schauen, wie sich das ergibt.

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
  •