Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.37 veröffentlicht (04.11.23)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Automatische Liste
#21
Die Gruppe kannst du leicht abfragen. Einfach vor ORDER BY dies einfügen:
Code:
WHERE u.usergroup=8
oder
Code:
WHERE u.usergroup=8 OR u.usergroup=12345

Die Sortierung ist aufwendiger, da habe ich spontan keinen Code parat.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#22
Das hat schon mal wunderbar funktioniert. Danke!

Wegen der Sortierung wurde mir in einem anderen Forum [wo ich besagte Hilfe für den grundsätzlichen Aufbau hatte] folgendes mal vorgeschlagen, aber bei nicht funktionieren keine Rückmeldung mehr bekommen... Sad Da dachte ich, ich frage euch hier mal. ^^

Diesen Teil direkt nach dem Öffnen:
PHP-Code:
$sortby $_GET['sortby'];
$ascdesc $_GET['ascdesc'];

if(!
$sortby$sortby "u.username";
if(!
$ascdesc$ascdesc "ASC"

In der Abfrage wie folgt:
PHP-Code:
$registered $db->query("SELECT * FROM mybb_users u LEFT JOIN mybb_userfields uf ON(u.uid=uf.ufid) $sortby $ascdesc"); 

Geht bloß leider nicht, weil dieses sortby plus ascdesc mir immer eine Fehlermeldung raushaut.
[Wie gesagt, mir wurde das vorgeschlagen, aber dann nicht mehr reagiert...]
Zitieren
#23
So bitte NICHT, das ermöglicht SQL-Injection. Du musst auf jeden Fall sicherstellen, dass $sortby und $ascdesc nur gültige Werte enthalten können. Aktuell kann man da alles mögliche einsetzen.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#24
Oh! Okay! Danke für den Link! Gut zu wissen. Vielleicht hat ja sonst noch jemand eine Idee.
Könnte man das vielleicht auf die selbe Art und Weise lösen, wie zum Beispiel in der Sortierung der Threads? Im Default-Theme kann man die ja auch mit einem Klick auf "Antworten" etc. danach sortieren lassen. Ich habe leider keine Ahnung von sowas, weshalb ich da gerade nur spekulieren kann, ob man über so einen Weg da ran gehen könnte.
Zitieren
#25
Du darfst schon mit Variablen arbeiten, aber der Inhalt muss geprüft werden, sodass nur erlaubte Werte enthalten sind.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#26
Hallo!

Ich bin mit meiner Sortierung immer noch nicht weiter gekommen. Weiß vielleicht jemand sonst, wie man das realisieren könnte? Grundsätzlich ist nach dem Nachnamen sortiert, wie es in meiner Abfrage steht. Über Links möchte ich eben auch nach Vorname und ein paar Profilfeldern sortieren lassen.
Nach dem Versuchen mit mehreren Tutorials bin ich langsam am Ende. ^^

Viele Grüße
Zitieren
#27
Du könntest Dir mal dieses Plugin ansehen und wie dort die Sortierung nach unterschiedlichen Kriterien umgesetzt wurde.....
https://www.mybb.de/erweiterungen/18x/pl...eitraegen/
Vielleicht hilft Dir das weiter.
viele Grüße
Jockl
übersetzte und eigene Plugins
Zitieren
#28
Danke, Jockl, ich habe mich daran mal versucht, die Sortierung - denke ich - auch richtig übernommen und angepasst, aber es sortiert nichts. Dazu muss ich sagen, dass ich die Voreingestellte Sortierung auch nicht so eingefügt kriege, wie ich sie bisher hatte (den Teil mit dem Substring). Aber selbst, wenn ich das rausnehme, wird nichts weiter sortiert, wenn ich beim Alter bspw. auf den Link klicke.

PHP-Code:
if($mybb->input['action']=="einwohner")
{
$order my_strtolower(htmlspecialchars($mybb->input['order']));
  $sortby my_strtolower(htmlspecialchars($mybb->input['sortby']));

switch(
$order)
{
case 
"desc":
$order "asc";
   $order_by "desc";
   $oppsort $lang->list_asc;
   $oppsortnext "asc";
break;
default:
$order "desc";
   $order_by "asc";
   $oppsort $lang->list_desc;
   $oppsortnext "desc";
break;
}

switch(
$sortby)
{
case 
"Vorname":
$sort_field "u.username";
break;
case 
"Atter":
$sort_field "uf.fid9";
break;
case 
"Beruf":
$sort_field "uf.fid13";
break;
case 
"Wohnort":
$sort_field "uf.fid11";
break;
case 
"Beziehung":
$sort_field "uf.fid14";
break;
case 
"Abschlussjahrgang":
$sort_field "uf.fid8";
break;
}

   eval("\$orderarrow['$sortby'] = \"".$templates->get("listen_orderarrow")."\";");

$bit "";
$registered $db->query("SELECT * FROM mybb_users u LEFT JOIN mybb_userfields uf ON(u.uid=uf.ufid) WHERE (u.usergroup > '7') OR (u.additionalgroups > '7') ORDER BY SUBSTRING_INDEX(username, ' ', -1), u.username ASC");

while(
$row=$db->fetch_array($registered)) 
{
$namen explode(" "$row[username]);
$nachname "$namen[1]";
if(
count($namen) == "3"$nachname "$namen[1] $namen[2]";
$altbg alt_trow();
eval(
"\$einbit .= \"".$templates->get("listen_einwohner_bit")."\";"); 
}

eval(
"\$menu .= \"".$templates->get("listen_nav")."\";");
eval(
"\$page = \"".$templates->get("listen_einwohner")."\";");
output_page($page);

Zitieren
#29
Nur eine Vermutung, aber bei dir steht: case "Atter": nicht Alter.
Zitieren
#30
(17.01.2016, 22:01)SCOTTISH. schrieb: ....ich habe mich daran mal versucht, die Sortierung - denke ich - auch richtig übernommen und angepasst, aber es sortiert nichts. .... Aber selbst, wenn ich das rausnehme, wird nichts weiter sortiert, wenn ich beim Alter bspw. auf den Link klicke.
Lässt sich "es sortiert nichts" evtl. etwas genauer beschreiben?
Mit den wenigen Code-Zeilen kann man aber auch recht wenig sagen. Wie sehen Deine Templates und damit die Links für die verschiedenen Sortierungen aus? Evtl. setzt Du hier mal den kompletten Code und auch die Templates ein. Dann kann man sich einen besseren Überblick verschaffen.
viele Grüße
Jockl
übersetzte und eigene Plugins
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  automatische Liste aus Profilfeld - mycode parsen? Risu 2 1.811 05.04.2014, 13:36
Letzter Beitrag: MrBrechreiz