Contao-Camp 2024
Ergebnis 1 bis 10 von 10

Thema: memberlist / xtmembers

  1. #1
    Contao-Nutzer
    Registriert seit
    17.10.2013.
    Beiträge
    13

    Standard memberlist / xtmembers

    Hallo

    Ich versuche Folgendes:
    Eine neue Contao-Installation (aufgrund der Kompatibilität von Erweiterungen v3.5.4) soll mit ca. 40 Frontend-Usern betreut werden. Jeder User soll nur seine Angaben bearbeiten können. Ein User soll seine Profil-Seite pflegen können (Name, Kontakt-Infos, Freitext, Bild), sowie neue Events erstellen und seine eigenen Events bearbeiten können - vom FE aus! Alle Events aller User sollen in EINEM Kalender zusammenlaufen. Eine Anmelde-Funktion für diese Veranstaltungen braucht's nicht.

    Mein Problem mit der Kombination von memberlist und xtmembers ist nun, dass sobald sich ein FE-User mal eingeloggt und sein Profil (FE-Modul "Personendaten") bearbeitet und gespeichert hat, von der FE-User-Auflistung (FE-Modul "Mitgliederliste") verschwunden ist, obwohl er zuvor noch vorhanden war. Die FE-User habe ich im Backend angelegt, alle haben dieselbe Gruppenzugehörigkeit. Ein Blick in die Datenbank hat mir auch keine Unterschiede zwischen den funktionierenden und kaputten FE-Usern (tl_member) gezeigt.

    Kann mir jemand mit diesem Problem helfen?
    Oder hat vielleicht jemand eine Idee mit welchen Erweiterungen ich die oben beschriebenen Funktionen auch mit der aktuellen LTS-Version von Contao (sprich 3.5.15) umsetzen kann?

    Viele Grüße
    Alexander

  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

    Personendaten ist ein Core-Modul und die Memberlist listet die Datensätze nur auf. Das funktioniert schonmal in Contao 3.5.15.

    Versuche mal, ob das Ändern des tl_member-Datensatzes mit deaktiviertem xtmembers funktioniert. Wenn nicht, dann schau erstmal, ob du alles richtig eingestellt hast, ansonsten kannst du hier ein Ticket erstellen https://github.com/hschottm/xtmembers/issues

    Bist du sicher, dass der Datensatz in der DB geändert wird, wenn du das Formular absendest?
    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
    17.10.2013.
    Beiträge
    13

    Standard Ausgabe von memberlist / memberlist_detail anpassen?

    Hallo Andreas

    Danke für deine Antwort.

    Ja, der Datensatz wurde in der DB geändert. Mittlerweile - mit einer neuen Installation und einem rudimentären anderen Theme - hat sich das Problem gelöst.

    Ich habe auch nach langer Recherche (im Netz, im Forum, durch ausprobieren ...) leider nichts gefunden dazu, wie ich auf die automatisch eingefügten Inhalte Einfluss nehmen kann.

    PHP-Code:
    <?php echo $this->publicProfile?>
    in der mod_memberlist_detail.html5 bspw. gibt "Öffentliches Profil von username" aus. Wie kann ich an dieser Stelle Vor- und Nachname stattdessen ausgeben?

    (Wie) kann ich Einfluss darauf nehmen, dass ...
    ... das Land ([de] Deutschland) ohne das vorangestellte Kürzel ausgegeben wird?
    ... das Label statt "Postleitzahl" als "PLZ" ausgegeben wird?

    Nahe der Verzweiflung aufgrund unzureichender Kenntnisse ...

    Alex

  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

    "Neue Installation" oder Theme sollte keinen Einfluss darauf haben.

    Wenn du das originale Template benutzt, müssten die Daten ausgegeben werden, welche in der DB stehen.

    "automatisch eingefügten Inhalte" - da weiß ich nicht genau, was du damit meinst.

    Ein Template bringt Variablen mit, welche du mit soner Zeile im Template im FE ausgeben kannst:
    PHP-Code:
    <?php
    $this
    ->showTemplateVars();
    ?>
    Einzelne Variablen im Template kannst du am besten so testen:
    PHP-Code:
    <?php
    // Beispiele
    dump($this->arrData);
    dump($this->record);
    dump($this->record[0]['raw']);

    // Vorname
    echo 'firstname is: '.$this->record[0]['raw']['firstname'];
    ?>
    Oder in Templateschreibweise:
    PHP-Code:
     firstname is: <?= $this->record[0]['raw']['firstname'?>
    Das Land wird mit dem original Template bereits ohne das Kürzel ausgegeben.

    "Postleitzahl ist als Sprachbaustein vorhanden, welchen du z.B. über deine system/config/langconfig.php überschreiben kannst.
    PHP-Code:
    <?php

    // Original für DE
    #$GLOBALS['TL_LANG']['tl_member']['postal'][0] = 'Postleitzahl';
    // Neu
    if($GLOBALS['TL_LANGUAGE'] == 'de')
    {
      
    $GLOBALS['TL_LANG']['tl_member']['postal'][0] = 'PLZ';
    }
    Tipp: Internen Cache im BE einschalten und aufbauen, dann den Ordner system/cache/language nach Sprachbausteinen durchsuchen.
    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
    17.10.2013.
    Beiträge
    13

    Standard

    Wow! Super - vielen Dank!

    Mit "automatisch eingefügten Inhalten" meinte ich z.B. das $this->publicProfile im Template irgendwo einen Wert übergeben bekommen muss - Die Stelle habe ich jetzt gefunden (ModuleMemberlist.php Zeile 269). Dank deiner Info zur Template-Variablen-Abfrage konnte ich das aber umgehen und Vor- und Nachname stattdessen ausgeben lassen.

    Zur Land-Ausgabe: Welches ist denn das Template, das die Ausgabe im Original übernimmt? Das habe ich leider nicht gefunden. Der DB-Wert ist bspw. "de" - irgendwo (keine Ahnung wo) wird dann die Ausgabe
    HTML-Code:
    <span class="value">[de]</span> Deutschland
    daraus gemacht. Ich könnte das span-Tag via CSS ausblenden... aber das wäre gepfuscht

    Noch eine Frage: Ich verwende calendar_editor um via Frontend von FE-Usern Events erstellen und bearbeiten zu lassen. Ich möchte nun zu jedem Event den jeweiligen Autor ausgeben. Mein Problem: In der Tabelle tl_calendar_events wird als Autor die Id des Backend-Users in der Spalte "author" gespeichert, und als Frontend-Autor die Id des Mitglieds in der Spalte "FE_User". Wie kann ich jetzt über die ID den jeweiligen Wert für firstname und lastname aus der respektiven Tabelle ziehen (tl_member bzw. tl_user)? Eine if-Abfrage für die beiden Fälle dürfte ich selbst hinkriegen. Denn wenn der Event von einem FE-User erstellt worden ist, steht bei "author" eine "0" - und viceversa.

  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

    Du hast oben ja selber schon erwähnt, welches Template für die Member-Details benutzt wird - mod_memberlist_detail.html5.

    Mit
    PHP-Code:
    foreach ($this->record as $col
    wird über die Felder gelaufen und hier wird der Wert ausgegeben
    PHP-Code:
    <td class="value"><?php echo $col['content']; ?></td>
    Bei mir steht in dieser Variable z.B. "Germany".

    Sich in den Core-Dateien umschauen ist immer ne gute Idee, aber dort darfst du niemals Änderungen vornehmen, man kann alles von außen verändern.

    Deine letzte Frage solltest du nicht an diesen Thread zu xtmembers binden. Mache einen eigenen Thread dazu auf, nachdem du mit der Suche nichts gefunden hast. Hier ein Tipp (für den Fall, dass der Wert nicht doch schon als Template-Variable vorhanden ist):
    PHP-Code:
    $memberModel = \MemberModel::findById($dieIdDesAutors); 
    echo 
    $memberModel->firstname
    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
    17.10.2013.
    Beiträge
    13

    Standard

    Hm. Wenn ich in der mod_memberlist_details.html5 das
    PHP-Code:
    $this->showTemplateVars(); 
    laufen lasse, gibt er mir als Wert [country] = de aus. Irgendwo muss die Info ja herkommen... Und wieso bei dir [country] = Germany in der DB steht und nicht de ist auch seltsam. Gibt's in Contao da eine Einstellung für wie Daten in die DB geschrieben werden?

    Deinen letzten Tipp gucke ich mir mal an. Muss erstmal verstehen, was das bedeuten könnte ... Wo gehört der Thread dann ggf. hin?

    Und nochmals: DANKE!

  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

    Das habe ich nicht gesagt, dass in tl_member.country "Germany" drin steht, dort steht "de" drin.

    Innerhalb der Schleife, wenn in $col['label'] "Country" steht, dann steht in $col['content'] "Germany" (FE in Englisch).

    In
    PHP-Code:
    $this->record[0]['raw']['country'
    steht natürlich "de".

    Hast du ein angepasstes Template? Ansonsten könnte das auch von einer Erweiterung überschrieben worden sein. Steht denn auch im BE im Selectfeld bereits "[de] Deutschland"?

    Offtopic:
    Hier findest du den Link zum Forum der Erweiterung [calendar_editor] https://contao.org/de/erweiterungsli...ar_editor.html. Mein Tipp sollte aber ausreichend sein und vorher lässt du dir ja alle Variablen ausgeben um nachzusehen, ob das Gewünschte bereits dabei ist. Wenn du dich nicht an den langen Thread im Forum https://community.contao.org/de/show...end-bearbeiten anhängen möchtest, kannst du im selben Unterforum auch einen neuen aufmachen und stelltst im Subjekt [calendar_editor] an den Anfang.
    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-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 [de] Deutschland liegt an xtmembers. Ich habe ein Ticket erstellt https://github.com/hschottm/xtmembers/issues/7.
    Geändert von Andreas (17.08.2016 um 03:08 Uhr)
    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

  10. #10
    Contao-Fan Avatar von Jens Pielawa
    Registriert seit
    08.01.2010.
    Ort
    9°45'34"E 52°20'12"N
    Beiträge
    530

    Standard

    Zitat Zitat von aZF Beitrag anzeigen
    in der mod_memberlist_detail.html5 bspw. gibt "Öffentliches Profil von username" aus. Wie kann ich an dieser Stelle Vor- und Nachname stattdessen ausgeben?
    Das würde mich ebenfalls interessieren. Ich habe hierfür aber keine für mich nachvollziehbare Änderung an den Templates lesen können. Gibt es den Code-Nachschlag dafür, bitte?
    Beste Grüße von

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
  •