Ergebnis 1 bis 8 von 8

Thema: Memberlist - wie baue ich denn den Hook ein?

  1. #1
    Contao-Fan
    Registriert seit
    26.09.2012.
    Beiträge
    271

    Standard Memberlist - wie baue ich denn den Hook ein?

    Hallo.

    Ich möchte gerne die Erweiterung Memberlist einsetzen. Allerdings habe ich die relevanten Felder seinerzeit selbst eingefügt und benannt.
    Nun habe ich es so verstanden, das man mit dem in Github angegebenen Hook diese neu erstellten Felder auslesen und anzeigen lassen kann. Aber anscheinend baue ich die beiden Dateien config und Myclass falsch ein. Wie macht man das denn korrekt???

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

    Standard

    Reden wir von https://github.com/friends-of-contao/contao-memberlist ?

    Dann solltest Du den Hook laut Doku nur brauchen, wenn Du eigene Feldtypen (nicht eigene Felder) definiert hast.

    Zitat Zitat von damac Beitrag anzeigen
    Aber anscheinend baue ich die beiden Dateien config und Myclass falsch ein. Wie macht man das denn korrekt???
    Wir hast Du es den "falsch" gemacht, d.h. was funktioniert nicht?
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  3. #3
    Contao-Fan
    Registriert seit
    26.09.2012.
    Beiträge
    271

    Standard

    Das ist eine gute Frage - was ist der Unterschied zwischen Feldtyp und Feld? Evtl liegt da mein Fehler.

    Ich habe seinerzeit die Modul dca so eingefügt:
    HTML-Code:
    <?php
       // Anpassung der Palette
    $GLOBALS['TL_DCA']['tl_member']['palettes']['default'] = str_replace
    (
        'company',
        'Mitgliedsnummer,company',
        $GLOBALS['TL_DCA']['tl_member']['palettes']['default']
    );
    
    // Hinzufügen der Feld-Konfiguration
    $GLOBALS['TL_DCA']['tl_member']['fields']['Mitgliedsnummer'] = array
    (
        'label'     => &$GLOBALS['TL_LANG']['tl_member']['Mitgliedsnummer'],
        'exclude'   => true,
        'inputType' => 'text',
        'eval'      => array('mandatory'=>true, 'rgxp'=>'alnum','extnd', 'maxlength'=>20),
        'sql'       => "varchar(20) NOT NULL default ''"
    );   
       // Anpassung der Palette
    $GLOBALS['TL_DCA']['tl_member']['palettes']['default'] = str_replace
    (
        'Mitgliedsnummer',
        'Schulort,Mitgliedsnummer,Graduierung',
        $GLOBALS['TL_DCA']['tl_member']['palettes']['default']
    );
    
    // Hinzufügen der Feld-Konfiguration
    $GLOBALS['TL_DCA']['tl_member']['fields']['Schulort'] = array
    (
        'label'     => &$GLOBALS['TL_LANG']['tl_member']['Schulort'],
        'exclude'   => true,
        'inputType' => 'text',
        'eval'      => array('mandatory'=>true, 'rgxp'=>'alnum','extnd', 'maxlength'=>50),
        'sql'       => "varchar(50) NOT NULL default ''"
    );
    
    // Hinzufügen der Feld-Konfiguration
    $GLOBALS['TL_DCA']['tl_member']['fields']['Graduierung'] = array
    (
        'label'     => &$GLOBALS['TL_LANG']['tl_member']['Graduierung'],
        'exclude'   => true,
        'inputType' => 'text',
        'eval'      => array('mandatory'=>true, 'rgxp'=>'alnum','extnd', 'maxlength'=>50),
        'sql'       => "varchar(50) NOT NULL default ''"
    );
    
    ?>
    Dann habe ich nun das Modul Memberlist, passend für meine Contao Version 3.5.38, via FTP eingespielt und die Datenbank aktualisert.

    Dann habe ich die Modul config.php um die angegebene "Hook-Zeile" erweitert. Die Datei MyClass.php habe ich jetzt schon an den verschiedensten Orten abgelegt zZt liegt sie im config Ordner.

    Im Backend werden mir aber die neuen Felder nicht angezeigt.

    Ich habe da bestimmt etwas falsch verstanden...

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

    Standard

    Zitat Zitat von damac Beitrag anzeigen
    Das ist eine gute Frage - was ist der Unterschied zwischen Feldtyp und Feld?
    Bei Dir wohl mit 'text' ein Standardtyp, also nichts, was Du im Hook gesondert bearbeiten müsstest.

    Code:
    'inputType' => 'text',
    Im Backend werden mir aber die neuen Felder nicht angezeigt.
    Ich habe Deinen DCA-Code Testweise in eine ansonsten leere Contao-Installation eingefügt und bekomme Deine Neuen Felder angezeigt.

    Meine Erklärung, warum das bei Dir nicht so ist, wären:

    • Cache gelöscht (damit die neue DCA-Konfiguration wirksam werden kann)
    • In Deiner Palette der tl_member existiert durch irgendeine andere Änderung 'company' nicht mehr. Wo nichts ist, kann die Ersetzung
      PHP-Code:
         // Anpassung der Palette
      $GLOBALS['TL_DCA']['tl_member']['palettes']['default'] = str_replace
      (
          
      'company',
          
      'Mitgliedsnummer,company',
          
      $GLOBALS['TL_DCA']['tl_member']['palettes']['default']
      ); 
      dann natürlich nicht greifen.


    Das Problem der nicht angezeigten Felder musst Du zuerst lösen. Dann kannst Du herausfinden ob Du den Hook brauchst (ich denke, nein).
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  5. #5
    Contao-Fan Avatar von Fachinger
    Registriert seit
    24.04.2016.
    Ort
    Limburg
    Beiträge
    308

    Standard

    Wurde das Install-Tool aufgerufen, damit die neuen Felder auch in der DB angelegt werden?

    Gesendet von meinem CLT-L29 mit Tapatalk

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

    Standard

    Das ist zwar nötig, hat aber zunächst nichts damit zu tun, daß die Felder überhaupt angezeigt werden. Ohne Aufruf des Install-Tools (und damit Anlegen der Felder) bekommt man halt eine Fehlermeldung beim Speichern.

    Andererseits: wenn im Install-Tool nichts zum Ändern vorgeschlagen wird, würde es dafür sprechen, daß die DCA-Datei ger nicht gefunden wird. Das wäre dann Grund 3, warum es nicht funktionieren könnte.
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  7. #7
    Contao-Fan
    Registriert seit
    26.09.2012.
    Beiträge
    271

    Standard

    Sorry, ich habe mich falsch ausgedrückt:

    Die neuen Felder bekomme ich bei den Mitgliedern im BE angezeigt. Allerdings zeigt die Erweiterung Memberlist diese Felder nicht an. Nicht im BE zur Auswahl, um sie öffentlich zu machen, und auch nicht im FE.
    Und genau um diese Felder geht es mir, um sie nach bestimmten Kriterien (Suche nach Name, Firma, etc ) anzeigen zu lassen.

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

    Standard

    PHP-Code:
    'eval'  => array(/* ...*/ 'feViewable'=>true/*...*/), 
    und bei Bedarf auch 'feEditable' und vielleicht 'feGroup' setzen (schau Dir die tl_member.php von Contao an).
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

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
  •