So, ich habe Einiges abgeändert, zur Erklärung:
Die doppelte Abfrage erst nach den bestehenden Grundrechten und dann pro Grundrecht nach den zugehörigen Usern finde ich unnötig.
Desweiteren habe ich die Ausgabe der E-Mails etwas geändert, so wie Du es jetzt hast, kann jeder Hansel die Mail-Adressen sehen, wenn er mit der Maus über den Umschlag geht. Das ist privatsphären-technisch eher Murks, kannst Du aber halten, wie Du möchtest.
Hier mal die geänderte omember.php, mach Dir aber vorher von Deiner originalen Datei eine Kopie, falls Dir nicht gefällt, was ich gemacht habe:
<?php
# Copyright by: Manuel Staechele
# Support: www.ilch.de
defined ('main') or die ( 'no direct access' );
$title = $allgAr['title'].' :: User :: '.$lang['listofmembers'];
$hmenu = $extented_forum_menu.'User <b> » </b> '.$lang['listofmembers'].$extented_forum_menu_sufix;
$design = new design ( $title , $hmenu, 1);
$design->header();
$limit = 5; // Limit
if($menu->exists('filtername')){
$page = ($menu->getA(3) == 'p' ? $menu->getE(3) : 1 );
$filtername = escape($menu->get(2), 'string');
}else{
$page = ($menu->getA(1) == 'p' ? $menu->getE(1) : 1 );
}
$anfang = ($page - 1) * $limit;
$tpl = new tpl ( 'omember.htm' );
$tpl->out(0);
if(isset($_GET['filtername']) AND !empty($_GET['filtername'])){
$filtername = escape($_GET['filtername'], 'string');
}
if(!empty($filtername)){
$sql_search=" WHERE prefix_user.name LIKE '".$filtername."%'";
$MPL = db_make_sites ($page , $sql_search , $limit , '?omember-filtername-'.$filtername , 'user' );
}else{
$sql_search="";
$MPL = db_make_sites ($page , "" , $limit , '?omember' , 'user' );
}
$tpl->set('SITELINK', $MPL);
$class = '';
$check_grecht = '';
$erg = db_query("SELECT
posts,
icq,
staat,
email,
llogin,
opt_mail,
prefix_user.id as uid,
prefix_grundrechte.name as recht_name,
prefix_grundrechte.id as recht_id,
regist,
prefix_user.name,
recht
FROM prefix_user
LEFT JOIN prefix_grundrechte ON prefix_user.recht = prefix_grundrechte.id
$sql_search
ORDER by prefix_user.recht, prefix_user.posts DESC LIMIT ".$anfang.",".$limit);
while ($row = db_fetch_object($erg)) {
if ($check_grecht != $row->recht_name) {
$tpl->set('group_name', $row->recht_name);
$tpl->set('group_id', $row->recht_id);
$tpl->out(1);
}
if ($class == 'Cmite') { $class = 'Cnorm'; } else { $class = 'Cmite'; }
$avatar = (!empty($row->avatar) ? $row->avatar : 'include/images/avatars/gast.png');
if ($row->staat != '') {
$flagg = $row->staat;
if ($row->staat == 'na.gif') {
$flagg_title = 'keine Angabe';
} else {
$flagg_title = substr($flagg, 0, $flagg.length - 4);
}
} else {
$flagg = 'na.gif';
$flagg_title = 'keine Angabe';
}
if($row->icq == ""){
$icq = "";
} else {
$icq = "<a href=\"http://wwp.icq.com/scripts/search.dll?to=".str_replace("-","",$row->icq)."\" target=\"_blank\"><img src=\"http://status.icq.com/online.gif?web=".str_replace("-","",$row->icq)."&img=5\" border=\"0\"></a>";
}
if (loggedin()) {
if(!empty($row->email) && $row->opt_mail == 1) {
$show_mail = '<a href="index.php?user-mail-'.$row->uid.'"><img src="include/images/profilmod/email.png" border="0" /></a>';
} elseif (!empty($row->email) && $row->opt_mail == 0){
$show_mail = '';
} else {
$show_mail = '';
}
}
$ar = array (
'NAME' => $row->name,
'RANG' => userrang($row->posts,$row->uid),
'CLASS' => $class,
'POSTS' => $row->posts,
'ICQ' => $icq,
'UID' => $row->uid,
'DATE' => date('d.m.Y',$row->regist),
'GRUPE' => $row->recht_name,
'STAAT' => ($row->staat!="" ? $row->staat : "na.gif"),
'EMAIL' => $show_mail,
'LLOGIN' => date('d.m.Y <b\r> H:i',$row->llogin).' Uhr'
);
$tpl->set_ar_out($ar,2);
$check_grecht = $row->recht_name;
}
$tpl->set_out('filtername',escape(isset($_GET['filtername'])?$_GET['filtername']:'','string'),3);
$design->footer();
?>
Für die geänderte Email-Ausgabe in der omember.htm noch das markierte ändern, in sofern es sich um die originale Datei von DD handelt:
<table width="100%" border="0" cellpadding="3" cellspacing="1" class="border">
{EXPLODE}
<tr>
<!-- hier das gruppenbild! (bspw. group-9.jpg für alle admins)-->
<td colspan="7"><img src="include/images/rangs/group{group_id}.jpg" alt="{group_name}"/></td>
</tr>
<tr class="Chead">
<th align="center" width="5%">{_lang_land}</th>
<th align="center" height="30" width="25%">{_lang_name}</th>
<th align="center" width="20%">{_lang_rank}</th>
<th align="center" width="15%">{_lang_group}</th>
<th align="center" width="5%">{_lang_contact}</th>
<th align="center" width="30%">{_lang_lasttimeonline}</th>
<th width="20%" align="center">{_lang_regtime}</th>
</tr>{EXPLODE}<tr class="{CLASS}">
<th align="center" width="5%"><img src="include/images/flags/{STAAT}" alt="" border="0"></th>
<td align="center" width="30%"><a href="index.php?user-details-{UID}">{NAME}</a></td>
<td align="center"><font style="font-size: 10px">{RANG}</font></td>
<td align="center" width="15%">{GRUPE}</td>
<td align="center" width="20%">{EMAIL}
{ICQ}</td>
<td align="center" width="30%">{LLOGIN}</td>
<td align="center" width="5%">{DATE}</td>
</tr>{EXPLODE}
</table>
<div align="center">{SITELINK}
<form method="get" action=""><input type="hidden" name="omember" value="" /><input type="text" name="filtername" size="15" value="{filtername}" /> <input type="submit" value="{_lang_filter}" /></form>
</div>
Bei mir funktionieren die Multiseiten und es werden keine User doppelt ausgegeben.
Ich hoffe, das entspricht Deinen Vorstellungen.
Gruß Markus
P.S.:
Das Limit steht noch auf 5
Zuletzt modifiziert von Outi77 am 16.10.2014 - 14:36:19
Die richtige Formulierung eines Problems ist nicht selten bereits die halbe Lösung.
»Albert Einstein«