Profilfeld in Userliste anzeigen/einfügen

Eingetragen von Mairu am So, 01. Mär 2009 - 8:48


Um solche Variablen anzulegen, die man dann im Template mit {xxx} einfügen kann, was ja nicht so schwer sein sollte (wird hier also nicht beschrieben) muss man halt die contents/user/memb_list.php etwas erweitern.

Zuerstmal muss man die ID des bzw. der Felder herausfinden, die man hinzufügen will, dazu mit phpmyadmin die Tabelle xic_profilefields öffnen und sich die IDs merken.
Nun muss die SQL Abfrage geändert werden, die sieht vorher so aus
$erg = db_query("SELECT
  posts,
  xic_user.id,
  xic_grundrechte.name as recht_name,
  regist,
  xic_user.name
FROM xic_user
 LEFT JOIN xic_grundrechte ON xic_user.recht = xic_grundrechte.id
 $sql_search
ORDER by recht,xic_user.posts DESC LIMIT ".$anfang.",".$limit);


und muss in etwas so geändert werden, wobei natürlich auch die richtige ID (also die Zahl, anstatt von ID bzw ID2) verwendet werden muss.

$erg = db_query("SELECT
  posts,
  xic_user.id,
  xic_grundrechte.name as recht_name,
  regist,
  xic_user.name,
  uf1.val AS feld1,
  uf2.val AS feld2
FROM xic_user
 LEFT JOIN xic_grundrechte ON xic_user.recht = xic_grundrechte.id
 LEFT JOIN xic_userfields uf1 ON xic_user.id = uf1.uid AND uf1.fid = ID
 LEFT JOIN xic_userfields uf2 ON xic_user.id = uf2.uid AND uf2.fid = ID2
 $sql_search
ORDER by recht,xic_user.posts DESC LIMIT ".$anfang.",".$limit);


Hab hier im Beispiel 2 Felder hinzugefügt, um es mal ungefähr zu zeigen. Damit gibts halt jetzt zusätzlich noch feld1 bzw. feld2 die natürlich frei gewählt werden können.
Damit diese nun auch noch im Template erkannt werden, müssen sie noch übergeben werden, dazu
	$ar = array ( 'NAME' => $row->name,
	                'RANG' => userrang($row->posts,$row->id),
									'CLASS' => $class,
									'POSTS' => $row->posts,
									'UID'   => $row->id,
									'DATE' => date('d.m.Y',$row->regist),
									'GRUPE' => $row->recht_name
	);
ungefähr so abändern
	$ar = array ( 'NAME' => $row->name,
	                'RANG' => userrang($row->posts,$row->id),
									'CLASS' => $class,
									'POSTS' => $row->posts,
									'UID'   => $row->id,
									'DATE' => date('d.m.Y',$row->regist),
									'GRUPE' => $row->recht_name,
									'FELD1' => $row->feld1,
									'FELD2' => $row->feld2
	);
natürlich können treffendere Namen gewählt werden. Dann können {FELD1} und {FELD2} im Template genutzt werden.