o.k., ich habe mich mal an die Arbeit gemacht und eine limitierte Anzeige der Benutzer möglich gemacht.
Folgende Schritte sind zu durchlaufen:
1. die Datei "contenido\templates\standard\template.rights_menu.html" ist folgendermaßen anzupassen.
Einfach den folgenen Code unter var sid = "{SID}"; einfügen
Code: Alles auswählen
function userChangeLimit()
{
var element = document.getElementsByTagName("SELECT");
url = "";
url += "main.php?area=user";
url += "&frame=2";
url += "&limit="+element[0].value;
url += "&usersStart={USERSSTART}";
url += "&contenido=" + sid;
parent.frames["left_bottom"].location.href = url;
}
function userStartSearch()
{
var element = document.getElementsByTagName("INPUT");
url = "";
url += "main.php?area=user";
url += "&frame=2";
url += "&limit={LIMITTO}";
url += "&search="+element[0].value;
url += "&usersStart={USERSSTART}";
url += "&contenido=" + sid;
parent.frames["left_bottom"].location.href = url;
}
Weiter unten in der Tabelle müssen folgende Zeilen noch eingefügt werden
Code: Alles auswählen
<tr>
<td colspan="2">
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td align="left"><img src="images/spacer.gif" width="20" height="10">{LEFT}</td>
<td align="center" class="text_medium">{PAGESPEC}</td>
<td align="right">{RIGHT}<img src="images/spacer.gif" width="20" height="10"></td>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan="2">
</td>
</tr>
<tr>
<td style="padding-left: 4px;" align="left" colspan="2">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="text_medium">i18n("Limit"):</td>
<td colspan="2" class="text_medium">{LIMIT}</td>
</tr>
<tr>
<td class="text_medium">i18n("Search"):</td>
<td class="text_medium">{SEARCH}</td>
<td class="text_medium" valign="center"><img src="images/spacer.gif" width="2">{SEARCHSUBMIT}</td>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan="2">
</td>
</tr>
2. die Datei "contenido\includes\include.rights_menu.php" ist folgendermaßen anzupassen.
Einfach den folgenden Code
Code: Alles auswählen
$sql = "SELECT
username, realname, user_id, perms
FROM
".$cfg["tab"]["phplib_auth_user_md5"]."
ORDER BY
username ASC";
if ($restriction == 1)
{
$sql = "SELECT
A.username AS username, A.realname AS realname, A.user_id as user_id, A.perms as perms
FROM
".$cfg["tab"]["phplib_auth_user_md5"]." AS A,
".$cfg["tab"]["rights"]." AS B,
".$cfg["tab"]["actions"]." AS C
WHERE
C.name = 'front_allow' AND
B.user_id = A.user_id AND
C.idaction = B.idaction AND
A.perms LIKE ''
GROUP BY
user_id
ORDER BY
username ASC";
}
if ($restriction == 3)
{
$sql = "SELECT
A.username AS username, A.realname AS realname, A.user_id as user_id, A.perms as perms
FROM
".$cfg["tab"]["phplib_auth_user_md5"]." AS A,
".$cfg["tab"]["rights"]." AS B,
".$cfg["tab"]["actions"]." AS C
WHERE
C.name NOT LIKE 'front_allow' AND
B.user_id = A.user_id AND
C.idaction = B.idaction AND
A.perms NOT LIKE ''
GROUP BY
user_id
ORDER BY
username ASC";
}
$db->query($sql);
// Empty Row
$bgcolor = '#FFFFFF';
$tpl->set('s', 'PADDING_LEFT', '10');
$thisperm = split(",", $auth->auth["perm"]);
$accessibleClients = $classclient->getAccessibleClients();
while ($db->next_record())
{
$userperm = split(",", $db->f("perms"));
$allow = false;
durch folgenden Code ersetzen
Code: Alles auswählen
$tpl->set('s', 'USERSSTART',$usersStart);
if (is_string($search) && strlen($search) > 0)
{
$search = urlencode($search); /* HerrB: urlencode ergänzt*/
$limitSQL = "AND name LIKE '%$search%' OR email LIKE '%$search%' ";
} else {
$limitSQL = "";
}
$sql = "SELECT
COUNT(*)
FROM
".$cfg["tab"]["phplib_auth_user_md5"]."
ORDER BY
username ASC
$limitSQL";
$db->query($sql);
if ($db->next_record())
{
$numUsers = $db->f("COUNT(*)");
} else {
$numUsers = 0;
}
if (!is_numeric($limit) || $limit == 0)
{
$limit = 20;
}
$tpl->set('s', 'LIMITTO', $limit);
$howManyUsers = $limit;
if ($usersStart > $numUsers)
{
$usersStart = $numUsers-$howManyUsers;
}
if ($usersStart < 0)
{
$usersStart = 0;
}
$limitOptions = array(
10 => "10",
20 => "20",
50 => "50",
100 => "100");
$tpl2 = new Template;
$tpl2->set('s', 'NAME', 'limit');
$tpl2->set('s', 'CLASS', 'text_medium');
$tpl2->set('s', 'ID', 'limit');
$tpl2->set('s', 'OPTIONS', "onChange='userChangeLimit()'");
foreach ($limitOptions as $key => $value)
{
if ($key == $limit)
{
$selected = "SELECTED";
} else {
$selected = "";
}
$tpl2->set('d', 'VALUE', $key);
$tpl2->set('d', 'CAPTION', $value);
$tpl2->set('d', 'SELECTED', $selected);
$tpl2->next();
}
$select = $tpl2->generate($cfg["path"]["templates"]. $cfg["templates"]["generic_select"],true);
if ($usersStart > 0)
{
$left = '<a href="'.$sess->url("main.php?area=$area&frame=2&limit=$limit&usersStart=".($usersStart-$howManyUsers)).'"><img border="0" src="images/pfeil_links.gif"></a>';
} else {
$left = '<img src="images/spacer.gif" width="9" height=15">';
}
if (($usersStart + $howManyUsers) < $numUsers)
{
$right = '<a href="'.$sess->url("main.php?area=$area&frame=2&limit=$limit&usersStart=".($usersStart+$howManyUsers)).'"><img border="0" src="images/pfeil_rechts.gif"></a>';
} else {
$right = '<img src="images/spacer.gif" width="9" height=15">';
}
$tpl->set('s', 'LEFT', $left);
$tpl->set('s', 'RIGHT', $right);
$tpl->set('s', 'LIMIT', $select);
$pageCount = ceil($numUsers / $limit);
$currentPage = ceil($usersStart / $limit)+1;
if ($numUsers > 0)
{
$tpl->set('s', 'PAGESPEC', i18n("Page") .' '. $currentPage .' / '.$pageCount);
} else {
$tpl->set('s', 'PAGESPEC', i18n("No results"));
}
$tpl->set('s', 'SEARCH', '<input type="text" name="search" class="text_medium" maxlen="256" size="16">');
$tpl->set('s', 'SEARCHSUBMIT', '<input type="image" onclick="userStartSearch()" src="images/submit.gif" alt="'.i18n("Start search").'" title="'.i18n("Start search").'">');
$sql = "SELECT
username, realname, user_id, perms
FROM
".$cfg["tab"]["phplib_auth_user_md5"]."
ORDER BY
username ASC
$limitSQL";
$db->query($sql);
// Empty Row
$bgcolor = '#FFFFFF';
$tpl->set('s', 'PADDING_LEFT', '10');
$thisperm = split(",", $auth->auth["perm"]);
if ($numUsers > 0)
{
$db->seek($usersStart);
}
$userCount = 0;
$accessibleClients = $classclient->getAccessibleClients();
while ($db->next_record())
{
$userCount++;
if ($userCount > $howManyUsers)
{
break;
}
$userperm = split(",", $db->f("perms"));
$allow = false;
Die beiden Dateien einfach mit einem FTP-Programm wieder auf den Server spielen und schon sollte es funktionieren.
Eine Sache sei noch angemerkt. Der folgende Code wurde von mir nicht beachtet und einfach gelöscht.
Code: Alles auswählen
if ($restriction == 1)
{
$sql = "SELECT
A.username AS username, A.realname AS realname, A.user_id as user_id, A.perms as perms
FROM
".$cfg["tab"]["phplib_auth_user_md5"]." AS A,
".$cfg["tab"]["rights"]." AS B,
".$cfg["tab"]["actions"]." AS C
WHERE
C.name = 'front_allow' AND
B.user_id = A.user_id AND
C.idaction = B.idaction AND
A.perms LIKE ''
GROUP BY
user_id
ORDER BY
username ASC";
}
if ($restriction == 3)
{
$sql = "SELECT
A.username AS username, A.realname AS realname, A.user_id as user_id, A.perms as perms
FROM
".$cfg["tab"]["phplib_auth_user_md5"]." AS A,
".$cfg["tab"]["rights"]." AS B,
".$cfg["tab"]["actions"]." AS C
WHERE
C.name NOT LIKE 'front_allow' AND
B.user_id = A.user_id AND
C.idaction = B.idaction AND
A.perms NOT LIKE ''
GROUP BY
user_id
ORDER BY
username ASC";
}
Ich weiß nicht vorauf sich das $restriction bezieht und für was es wichtig ist. Es funktioniert aber auch so.
So ich hoffe, ich habe nichts vergessen.
Ich stehe aber bei Problemchen gerne zur Verfügung.
Viel Spaß damit.
kiyoku