contenido\includes\include.frontend.user_menu.php:
cInclude("classes", "class.todo.php"); wird IMHO nicht benötigt. $oPage = new cPage; wird zweimal eingesetzt (eins kann entfallen).
Genereller Vorschlag: Statt
Code: Alles auswählen
$aFieldsToSearch = array("--all--" => i18n("-- All fields --"), "username" => i18n("Username"));
Code: Alles auswählen
$aFieldsToSearch = array("all" => i18n("All"), "username" => i18n("Username"));
In der Schleife while ($feuser = $oFEUsers->next()) wird mehrfach
$feuser->get("idfrontenduser") verwendet. Da bei jedem get ein DB-Aufruf erfolgt, ist das nicht sehr performant, der Wert sollte am Anfang der Schleife in eine Variable gespeichert werden.
Ähm:
Code: Alles auswählen
$oSelectItemsPerPage->autoFill(array(25 => 25, 50 => 50, 75 => 75, 100 => 100));
if (!isset($_REQUEST["elemperpage"]))
{
$oSelectItemsPerPage->setDefault(2);
} else {
...
Für dieses Konstrukt bitte ich um Erläuterung, wie zusätzliche Felder eingebaut werden können:
Code: Alles auswählen
$aFieldSources = array();
$aFieldSources["username"] = "base";
...
while ($feuser = $oFEUsers->next())
{
foreach ($aFieldSources as $key => $field)
{
switch ($field)
{
case "base":
$aUserTable[$feuser->get("idfrontenduser")][$key] = $feuser->get("username");
break;
default:
$aUserTable[$feuser->get("idfrontenduser")][$key] = call_user_func("frontendusers_".$field."_getvalue", $key);
break;
...
Code: Alles auswählen
switch ($field)
{
case "base":
$aUserTable[$feuser->get("idfrontenduser")][$key] = $feuser->get("username");
break;
default:
$aUserTable[$feuser->get("idfrontenduser")][$key] = $feuser->get($key);
break;
...
Code: Alles auswählen
$aUserTable = array_csort($aUserTable, $_REQUEST["sortby"], $sortorder);
Auch hier konstruktive Kritik: mySQL und alle anderen DBs sind auf die Sortierung von Werten optimiert (und ORDER BY ist ein SQL92-Standard). Ich wäre dafür, die DB-Sortierungsfähigkeiten zu nutzen (Datumseinträge werden z.B. mit array_csort auch garantiert nicht "richtig" sortiert). Das gleiche gilt für das Filtern von Werten. Dazu später mehr.
Das Löschen von Einträgen funktioniert nicht (gilt überall, wo FolderRow eingesetzt wird, also auch http://www.contenido.org/forum/viewtopi ... 0381#50381, Fehlermeldung DEDE). Ansonsten wird der Code in $deleteScript z.Z. kaum genutzt. Wenn, wäre der Funktionsname deleteModule falsch und außerdem enthält die Funktion die Zeile
Code: Alles auswählen
url += \'&page=\' +form.page.value;
Da ich persönlich ein Fan der JS-messageBox und kein Freund der Standard-confirm-Box bin, würde ich die nächsten Tagen einen funktionierenden Code zur Verfügung stellen. Das würde dann auch ein Code zum Sortieren und Filtern enthalten (der Code zum Filtern in include.rights_menu.php ist mir zu kompliziert).
Hierzu habe ich noch eine Frage:
Code: Alles auswählen
$oListActionRow = new cFoldingRow("339b79d1-48f7-4ac6-ba17-b958c5b3bb2b",i18n("Actions"));
Gruß
HerrB