YourWBB


yourWBB » WoltLab Burning Board Generation 2 * » Alles von und für das WBB 2.3.x » [WBB 2.3.x] Ideen, Wünsche und Suche » Kategorie anzeigen in der Forensuche » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag 2.695 Views | | Thema zu Favoriten hinzufügen

Neues Thema erstellen Antwort erstellen

Dieses Thema wurde als erledigt markiert. Thread erledigt

Zum Ende der Seite springen Kategorie anzeigen in der Forensuche
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Epona Epona ist weiblich
Mitglied


Dabei seit: 15.01.07
Beiträge: 48
Fähigkeiten: WBB2 Fortgeschritten; WBB Lite 1 Fortgeschritten
Herkunft: Paris
Forenversion: 2.3; Lite 1.0

 Kategorie anzeigen in der Forensuche Antworten Zitieren Editieren Melden       UP

Liebe User,
ja ich schon wieder.

Unser Forum hat relativ viele Suche & Biete Areas. Wenn man die Suche anschmeißt, steht dabei leider nicht, um welche Überkategorie es sich dabei handelt. Man kriegt also einen Post in der Suche Area angezeigt. Und klickt rauf und stellt fest - verdammt, ist ja gar nicht in der Grafiken- sondern Fotoarea etc.

Nun wollte ich das auf eigene Faust erledigen und bin schon bei den Vorbereitungen gescheitert. Um die Überkategorie abzufragen müsste ich ja wissen, wo das Forum als Unterforum eingetragen ist in der bb1_board aber ich seh - um ehrlich zu sein - bei den Spalten nicht durch. Ich dachte erst, ich müsste mir das Feld parentlist angucken. Aber irgendwie machen die Zahlen darin keinen Sinn? Steh gerade echt aufm Schlauch :/ Kann mir da jemand vielleicht einen Denkanstoß geben?

Und selbst wenn ich wüsste welche Spalte ich anfragen muss... die Abfrage sieht ja so aus:

$result = $db->unbuffered_query("SELECT
$ownuserid
t.*,
b.title, b.hotthread_reply, b.hotthread_view, b.postsperpage,
i.*
$vselect
FROM bb".$n."_threads t
LEFT JOIN bb".$n."_icons i USING (iconid)
LEFT JOIN bb".$n."_boards b ON (b.boardid=t.boardid)
$ownjoin
$vjoin
WHERE t.threadid IN (0$threadids)
ORDER BY $sortby $sortorder");

Beim fett markierten frage ich die boards ja bereits schon mal ab, um den Forennamen zu erfahren, in dem sich der Thread befindet. Kann ich jetzt überhaupt nochmal abfragen, um die Überkategorie zu erfahren? Ich arbeite so gut wie nie mit JOIN. Weiß deswegen nicht, ob das geht. Eher nicht, oder? Verwirrung unglücklich

__________________

03.11.11 15:59 Epona ist offline E-Mail WWW Finden Als Freund hinzufügen
Schrimm
Banned


Dabei seit: 21.08.11
Beiträge: 700

Antworten Zitieren Editieren Melden       UP

Der Weg führt tatsächlich über die "parentlist".

Die Zahlen dort drinnen, beinhalten ALLE übergeordneten boardids.
Im Gegensatz zur Spalte "parentid", die nur das ERSTE übergeordnete Forum zeigt.

Dazu gibt es sogar schon eine "ähnliche" Funktion im wbb.
Sie nennt sich "getnavbar".
Die siehst du Beispielsweise direkt im Thread.

Die erste ID in der "parentlist" scheint wohl direkt, die "Kategorie" zu sein.
Dadurch kannst du die "getnavbar" Funktion so bearbeiten, dass er dir nur die erste ID verwenden muss.

Ergo:
Erste ID der parentlist extrahieren und eine Abfrage nach dem Titel durchführen.

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Schrimm: 03.11.11 20:16.

03.11.11 20:08 Schrimm ist offline Finden Als Freund hinzufügen
Epona Epona ist weiblich
Mitglied


Dabei seit: 15.01.07
Beiträge: 48
Fähigkeiten: WBB2 Fortgeschritten; WBB Lite 1 Fortgeschritten
Herkunft: Paris
Forenversion: 2.3; Lite 1.0

Themenstarter Thema begonnen von Epona
Antworten Zitieren Editieren Melden       UP

Danke !!

Die Abfrage muss aber neu in der While Schleife geschehen und kann nicht im Join mit eingebaut werden, oder?

__________________

04.11.11 09:44 Epona ist offline E-Mail WWW Finden Als Freund hinzufügen
minette
HTML - Fanatiker


Dabei seit: 07.03.07
Beiträge: 235
Fähigkeiten: WBB3 Anfänger; WBB2 Profi
Herkunft: aus der bauch meine mutter
Forenversion: 3.1; 2.3

Antworten Zitieren Editieren Melden       UP

du ruf doch schon der boardid
php:
1:
LEFT JOIN bb".$n."_boards b ON (b.boardid=t.boardid)


dann in die while function:
php:
1:
$boards['title']= $boards['title'];


und in die template:
code:
1:
$row[title]



so könnten es gehen

__________________
isch bin es

04.11.11 10:18 minette ist offline E-Mail Finden Als Freund hinzufügen
Epona Epona ist weiblich
Mitglied


Dabei seit: 15.01.07
Beiträge: 48
Fähigkeiten: WBB2 Fortgeschritten; WBB Lite 1 Fortgeschritten
Herkunft: Paris
Forenversion: 2.3; Lite 1.0

Themenstarter Thema begonnen von Epona
Antworten Zitieren Editieren Melden       UP

Ja aber das ist die boardid vom Thread, also das Forum wo sich der Thread drin befindet. (;

__________________

04.11.11 11:30 Epona ist offline E-Mail WWW Finden Als Freund hinzufügen
Schrimm
Banned


Dabei seit: 21.08.11
Beiträge: 700

Antworten Zitieren Editieren Melden       UP

Je nachdem wie genau du es haben willst.
Da ich nicht genau weiß, wie die Daten in der "parentlist" aussehen.
Die Variante mit einer "getrennten" Schleife ist auf alle Fälle sicherer bzw. eine die funktioniert.

Du kannst dennoch mal versuchen die "boards"-Tabelle zweimal abzufragen. (Natürlich dann mit unterschieldichen Aliasnamen).

Zusätzlich noch mit "stristr()" oder "strstr" einmal die parentlist bearbeiten.

Beispiel:
php:
1:
$result $db->unbuffered_query("SELECT b1.boardid AS boardidone, b1.parentid, b1.title AS titleone, b2.boardid AS boardidtwo, b2.title AS titletwo FROM bb".$n."_boards b1 LEFT JOIN bb".$n."_boards b2 ON (b2.boardid=strstr(b1.parentlist,',',true)) WHERE b1.boardid=$threadboardid");

Dies ist nur ein Beispiel.
Eine Garantie, dass es so funktioniert kann ich nicht geben.
Voraussetzung für die strstr-Anweisung hier ist zudem noch php 5.3.0.

Dieser Beitrag wurde 4 mal editiert, zum letzten Mal von Schrimm: 04.11.11 12:46.

04.11.11 12:18 Schrimm ist offline Finden Als Freund hinzufügen
C-Board
unregistriert
Antworten Zitieren Editieren Melden       UP

Da ich selbst schon auf der Suche nach einer Lösung für exakt dieses Problem war, habe ich getestet und eine Lösung gefunden.

Hier habe ich den Weg beschrieben.

Gruß Mike
04.11.11 16:35
Schrimm
Banned


Dabei seit: 21.08.11
Beiträge: 700

Antworten Zitieren Editieren Melden       UP

Dein Code zeigt alle übergeordneten Boards an oder?

Das ist dann quasi die Variante aus der "navbar".
Bzw. du hast dessen Code einfach in die Schleife hinzugefügt, wenn ich das richtig sehe.
04.11.11 17:15 Schrimm ist offline Finden Als Freund hinzufügen
C-Board
unregistriert
Antworten Zitieren Editieren Melden       UP

Ja, es werden ALLE Unterforen angezeigt. Damit sind dann ja auch alle Eventualitäten beseitigt großes Grinsen

Ich habe einen Teil der NavBar-Gestaltung dafür genommen, auch das Template. Warum das Rad ein füntesmal neu erfinden??? fröhlich

Sofern Epona aber nur das letzte Unterforum angezeigt haben möchte, kann ich da morgen gern nochmal etwas umcoden.

Gruß Mike
04.11.11 17:21
Epona Epona ist weiblich
Mitglied


Dabei seit: 15.01.07
Beiträge: 48
Fähigkeiten: WBB2 Fortgeschritten; WBB Lite 1 Fortgeschritten
Herkunft: Paris
Forenversion: 2.3; Lite 1.0

Themenstarter Thema begonnen von Epona
Antworten Zitieren Editieren Melden       UP

Hallo Mike! Vielen lieben Dank für deine Anleitung! So ist es sogar noch besser großes Grinsen

Ich hab die Anleitung auch noch für die Postanzeige in der Suche verwendet. Vielen lieben Dank dafür!

Danke für eure Unterstützung!

__________________

05.11.11 18:00 Epona ist offline E-Mail WWW Finden Als Freund hinzufügen
C-Board
unregistriert
Antworten Zitieren Editieren Melden       UP

Jepp - das mit den Postings hatte ich ganz vergessen.

Allerdings werde ich da wohl eine Templateanpassung empfehlen. Denn wenn Du Dir mal den ScreenShot anschaust, dann sieht das bei langen Forennamen bescheiden aus und wird zweimal umgebrochen.

Ich mache mich morgen mal an eine passable Lösung.

Gruß Mike

Dateianhang:
jpg parentlist_test.jpg (88 KB, 66 mal heruntergeladen)
05.11.11 19:33
Baumstruktur | Brettstruktur
Gehe zu:

Neues Thema erstellen Antwort erstellen

yourWBB » WoltLab Burning Board Generation 2 * » Alles von und für das WBB 2.3.x » [WBB 2.3.x] Ideen, Wünsche und Suche » Kategorie anzeigen in der Forensuche