Profile und Userliste in Joomla 1.5
Joomla bringt von Haus aus keine „Community-Elemente“ mit. Schon eine einfache Profilseite für den einzelnen User überfordert das System (zumindest habe ich nichts dergleichen gefunden). Nun kann man die verschiedenen „Community-Komponenten“ benutzen, um Userprofile einzurichten. Als da wären der Community-Builder, der Community-Builder Enhanced, Joomunity oder JomSocial. Letzteres habe ich nicht getestet, weil es kostenpflichtig ist. Nichts gegen kostenpflichtige Leistung – bezahle ich gerne – aber die Vorgaben hier waren halt „frei erhältlich“.
Zusammenfassend kann ich über die drei anderen Komponenten sagen: gefallen mir nicht! Joomunity hat mir das Layout zerschossen und die beiden Community-Builder zeichnen sich durch eine eher undurchsichtige Konfiguration und sporadische Fehlermeldungen im Frontend meines installierten Joomla 1.5 aus. Nach 3 Tagen und ein paar grauen Haaren mehr, habe ich’s dran gegeben.
Nun sollte es auf der enstprechenden Site aber auch ein Forum geben. Hier habe ich mich für das ccBoard entschieden. Es ist einfach zu installieren, simpel zu konfigurieren und erschlägt nicht mit ausufernder Optik. Funktionell und schlicht, gefiel mir auf Anhieb sehr gut. Und es bringt auch ein erweitertes Userprofil mit, welches auf dem Standard-Joomla-Profil aufbaut. Genau das habe ich gesucht! Aber wie dort hin kommen außer über das Forum?
Dazu kann man die Userlist 2.5 benutzen. Die kleine, unter Joomla 1.5 im Legacy-Mode lauffähige Komponente erzeugt eine einfache, sortierbare Liste aller registrierten Benutzer. Nicht mehr und nicht weniger. Verlinkt ist in dieser Liste allerdings nur die E-Mailadresse des Benutzer. Aber das kann man ja erweitern :-) Dazu ergänzt man in der userlist.html.php die gewünschte Zeile (je nachdem welches Userdetail man mit dem Profil verknüpfen möchte) wie folgt: if ($settings->username) { echo "\t\t<td><a href='/pfad/zur/index.php?option=com_ccboard&view=myprofile&id=$row->id'>$row->username</a></td>\n"; } Den Pfad muß man natürlich der individuellen Installation anpassen.
Unglücklich dabei ist, dass das Array $row erstmal nicht die gewünschte ID enthält. Das Array wird in der userlist.php gefüllt. Darin gibt es drei Queries – je nach installiertem System wird offensichtlich was anderes ausgeführt. Da stecke ich noch nicht tief genug im System ;-) Egal, gibt man jeder Abfrage eben den Auftrag die ID mitzunehmen: $query = „SELECT id, name, username, email, usertype, registerDate, lastvisitDate FROM #__users AS u“; bzw. bei den beiden anderen $query = „SELECT u.id AS id, u.name AS name, u.username AS username, u.email AS email, u.registerDate AS registerDate, u.lastvisitDate AS lastvisitDate, g.name AS usertype“ Das war’s schon!
Ach, und wenn man im ccBoard die neuen Postings unten im Thread haben will (wie es eigentlich überall üblich ist), dann muß man in /components/com_ccboard/models/postlist.php folgendes ändern: $order = ‚p.id DESC‘; nach $order = ‚p.id‘; Nun ist alles zu meiner Zufriedenheit.
Nur zur Damelei oder betreibst du das irgendwo öffentlich ? Oder hast es vor ?
Weder noch. Das ist für ein Intranet.