Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.11 veröffentlicht (04.04.17)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Virtuelle Wunschtreads zusammenstellen
#1
Ich habe einen Wunsch, nämlich dass jeder User sich Threads aus bereits vorhandenen Beiträgen zusammenstellen kann in einem Forum, in dem er Moderationsrechte hat, nebenbei bemerkt. Das könnte er auf statische und speicherintensive Weise tun, indem er diejenigen Beiträge jeweils zitiert und diese in einem neuen Thread veröffentlicht.

Ich suche aber nach einer dynamischen Lösung, nämlich dass die Beiträge nicht noch mal abgespeichert werden, sondern dass ein User in einer Art Thread diejenigen Beiträge nach Erstellungsdatum geordnet anzeigen lassen kann, die er jeweils auserwählt hat.

Weil das so nicht direkt geht, habe ich mir eine Ersatzlösung ausgedacht, die bspw. mit dem phpBB3 durchführbar ist, aber im Moment nicht mit dem MyBB. Dazu müsste erst mal jeder Beitrag seine Beitrags-ID im Betreff oder im Text haben, bspw. #123#. Dann sucht man mit der Oder-Verknüpfung (or) nach denjenigen BeitragsIDs, die in den gewünschten Beiträgen enthalten sind.

Der dann im Browser angezeigte Suchlink lässt dann (wie durch ein Wunder) diejenigen Beiträge auflisten, die man sich zuvor erwählte. Um das auf diese Weise zu erreichen, müsste es möglich sein, dass man Suchlinks erstellt, in deren Url die vielen Beitrags-IDs (man könnte sie auch Schlüsselwörter nennen) enthält.

Wenn ich bspw. nach diesen Schlüsselwörtern suche:

artttt or qftzhh or geuenjh or keierh or siej or weiorj or weirh or siej or odieri or uehreh or we894j4jh or siejhrh or eiejkejej or 48rhridi or eidjhdh or eoeiejk or eidjdjdj or weidjdj or eididjdj or dfieriridi or dodidid or dgd or Schlüsselwörter

ergibt sich im Supportforum dieser Suchlink:

https://www.mybb.de/forum/search.php?act...order=desc

Wie durch ein Wunder funktioniert dieser Suchlink, obwohl es doch nicht sein kann, dass in dieser kurzen Url die zuvor genannten Schlüsselwörter enthalten sein können. Das ist meine erste Frage, nämlich warum dieser trotzdem funktioniert. Aber vielleicht funktioniert dieser systembedingt nur auf meinem PC.

Meine zweite Frage ist, ob man Suchlinks selbst erstellen kann, ohne dass diese ID in ihr enthalten ist und stattdessen die gesuchten Schlüsselwörter enthält.

Meine letzte Frage bezieht sich auf meinen Anfangs dieses Beitrages erwähnten Wunsch, ob man diese m.E. doch sehr interessante und erstrebenswerte Möglichkeit ins MyBB einbauen könnte; aber natürlich am besten ohne dass man es über solche Suchlinks behelfsmäßig ermöglichen würde.

Edit: Inzwischen habe ich herausgefunden, dass Suchlinks im MyBB nicht "richtig" funktionieren. Ein Suchlink, der bspw. alle Themen auflistet, die Beiträge von mir enthalten, listet nämlich nur diejenigen Themen auf, die zum Zeitpunkt der Erstellung dieses Suchlinks schon vorhanden waren.

Das bedeutet also, dass mit so einem Suchlink eine im System abgespeicherte Suchabfrage abgerufen wird. Dass dabei neu hinzugekommene Beiträge ignoriert werden, wäre für meinen Zweck kein Problem. Ich befürchte nur, dass so eine Such-ID irgendwann im System nicht mehr gültig ist, also dass diese Abspeicherung nicht mehr vorhanden ist.
Zitieren
#2
forumtreff schrieb:Wenn ich bspw. nach diesen Schlüsselwörtern suche:

artttt or qftzhh or geuenjh or keierh or siej or weiorj or weirh or siej or odieri or uehreh or we894j4jh or siejhrh or eiejkejej or 48rhridi or eidjhdh or eoeiejk or eidjdjdj or weidjdj or eididjdj or dfieriridi or dodidid or dgd or Schlüsselwörter

ergibt sich im Supportforum dieser Suchlink:

https://www.mybb.de/forum/search.php?act...order=desc

Wie durch ein Wunder funktioniert dieser Suchlink, obwohl es doch nicht sein kann, dass in dieser kurzen Url die zuvor genannten Schlüsselwörter enthalten sein können. Das ist meine erste Frage, nämlich warum dieser trotzdem funktioniert. Aber vielleicht funktioniert dieser systembedingt nur auf meinem PC.
Dass dieser Link funktioniert hat folgenden Grund: Die Suchanfrage wird in der Datenbank zwischengespeichert. Das hat z.B. den Grund, dass die gleiche Suchanfrage beim nächsten Mal schneller bearbeitet werden kann. Über die URL wird über den Parameter sid die eindeutige ID der Anfrage aus der Datenbank geholt und dann die Ergebnisse angezeigt.
forumtreff schrieb:Meine zweite Frage ist, ob man Suchlinks selbst erstellen kann, ohne dass diese ID in ihr enthalten ist und stattdessen die gesuchten Schlüsselwörter enthält.
Du kannst die Suche über folgende URL ebenfalls anstoßen: search.php?keywords=test&action=do_search&forums=all&postthread=1&showresults=threads

Damit das funktioniert ist eine Änderung in der Datei search.php notwendig. Suche in der Datei die Zeile:
PHP-Code:
elseif($mybb->input['action'] == "do_search" && $mybb->request_method == "post"
Ersetzen durch:
PHP-Code:
elseif($mybb->input['action'] == "do_search"
forumtreff schrieb:Meine letzte Frage bezieht sich auf meinen Anfangs dieses Beitrages erwähnten Wunsch, ob man diese m.E. doch sehr interessante und erstrebenswerte Möglichkeit ins MyBB einbauen könnte; aber natürlich am besten ohne dass man es über solche Suchlinks behelfsmäßig ermöglichen würde.
Naja, unmöglich ist nichts. Aber so wie du es dir glaube ich denkst geht es ohne größere Änderungen im Code nicht. Vielleicht wäre hier eine Anfrage in einer der Mod-Communities sinnvoll.
forumtreff schrieb:Edit: Inzwischen habe ich herausgefunden, dass Suchlinks im MyBB nicht "richtig" funktionieren. Ein Suchlink, der bspw. alle Themen auflistet, die Beiträge von mir enthalten, listet nämlich nur diejenigen Themen auf, die zum Zeitpunkt der Erstellung dieses Suchlinks schon vorhanden waren.

Das bedeutet also, dass mit so einem Suchlink eine im System abgespeicherte Suchabfrage abgerufen wird. Dass dabei neu hinzugekommene Beiträge ignoriert werden, wäre für meinen Zweck kein Problem. Ich befürchte nur, dass so eine Such-ID irgendwann im System nicht mehr gültig ist, also dass diese Abspeicherung nicht mehr vorhanden ist.
Siehe meine Anmerkung oben zum Caching der Suchanfragen. Wenn aktuelle Ergebnisse erzielt werden sollen muss eine neue Anfrage gestartet werden. Für die Themen eines Benutzers ist der Aufbau der URL immer gleich: search.php?action=finduserthreads&uid=x, wobei x durch die ID des Benutzers ersetzt werden muss.

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Zitieren
#3
Michael schrieb:Dass dieser Link funktioniert hat folgenden Grund: Die Suchanfrage wird in der Datenbank zwischengespeichert. Das hat z.B. den Grund, dass die gleiche Suchanfrage beim nächsten Mal schneller bearbeitet werden kann. Über die URL wird über den Parameter sid die eindeutige ID der Anfrage aus der Datenbank geholt und dann die Ergebnisse angezeigt.
Danke für ausführliche Hilfestellung, da komme ich klar damit, weil ich auch schon bisschen Erfahrung habe, weil ich mit so einem Html-Trick für das IPB und das phpBB solche Suchlinks schon machen konnte, weil mir in den dortigen Supportforen auch entsprechend geholfen wurde.

Diese Zwischenspeicherung über den Parameter sid ist wie lange gültig? Ich nehme an, dass diese Zwischenspeicherung irgendwann gelöscht wird und dann der Suchlink nicht mehr funktionieren würde. Wenn ich wüsste, dass diese Zwischenspeicherungen nicht irgendwann gelöscht werden, bzw. dass man das so ändern könnte, dass es nie gelöscht wird, könnte ich auch Suchlinks verwenden, die eine Such-ID enthalten.

Weil dann aber die Datenbank irgendwann überquellen würde von so vielen abgespeicherten Suchanfragen, glaube ich, dass die Idee, das Sytem so abzuändern, dass Such-IDs ewig abgespeichert bleiben, sowieso nicht gut wäre, sodass ich doch Suchlinks ohne Such-IDs machen werde.

Oder funktioniert das so, dass diese zwischengespeicherten Suchanfragen jeweils immer vom letzten Aufruf an noch eine bestimmte Zeit zwischengespeichert werden kann? Wie bzw. wo kann man dann diese Zeit einstellen?
Zitieren
#4
Ich mach mir am Wochenende nochmal Gedanken zu deinem Problem.
Dann gibt es mehr Informationen.

Zitieren
#5
Die Sucheinträge werden nach einem Monat automatisch entfernt.

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Zitieren
#6
Ein Monat ist schon ein guter Wert. Ggf. würde ich diesen auf ein Jahr einstellen.

@Jan, danke, dass Du Dir deswegen Gadanken machen willst.


Zitate sind nur statisch (fest), eben nur als 'Zitate' möglich. Wenn sie dynamisch wären, wären es keine 'Zitate' mehr, sondern, ich weiß nicht wie man so was nennen könnte, vielleicht dynamische Zitate oder so.

Man könnte so was auch 'Fenster', 'Frames' oder 'Beitragsframes' nennen, wenn ein Link, der zu einem Beitrag führt, nicht (nur) als Link, sondern direkt angezeigt werden würde; wie das bei Bildern mit [IMG] doch auch möglich ist.

Denkbar wären solche dynamische Zitate aber doch. Nur müsste für den Fall, dass der Beitrag, der dynamisch ins Zitat gesetzt wird, falls er editiert wird, nachdem er so ins 'Zitat' gesetzt wurde, dann in diesem Fenster deutlich als editiert gekennzeichnet werden.

Bspw. könnte ggf. dort der Warnhinweis erscheinen: "Achtung, dieser Beitrag wurde verändert, nachdem er hier als Fenster eingefügt wurde." Diese Möglichkeit hätte den Vorteil, dass User öfters auch wirklich vollständig ihre eigenen Beiträge editieren oder löschen könnten, weil das dadurch auch in solchen Fenstern passieren würde.

Trotzdem würde es weiterhin jedem User freistehen, einen Beitrag als normales Zitat in seinem Beitrag einzufügen.

Edit: Im Moment bin ich dabei, diese Einstellung in der Datenbank unter [Präfix_]searchlog zu suchen.
Zitieren
#7
forumtreff schrieb:Zitate sind nur statisch (fest), eben nur als 'Zitate' möglich. Wenn sie dynamisch wären, wären es keine 'Zitate' mehr, sondern, ich weiß nicht wie man so was nennen könnte, vielleicht dynamische Zitate oder so.
Hierfür sind leider wieder umfangreiche Erweiterungen notwendig. Einen fertigen Code kann ich dir nicht geben, aber einen Ansatz: Zuerst muss ein eigener MyCode erstellt werden, über dessen Parameter die Beitrags-ID übergeben wird. Beipiel: [dynquote id=1234]. Dieser Code muss durch HTML-Code ersetzt werden, z.B. ein Iframe, in dem eine PHP-Datei geladen wird, die den Beitrag ausgibt.
forumtreff schrieb:Edit: Im Moment bin ich dabei, diese Einstellung in der Datenbank unter [Präfix_]settings zu suchen.
Es gibt keine Einstellung für die Länge der Speicherung der Suchdaten. Den Code findest du in der Datei search.php:
PHP-Code:
// Clear out searches older than a month
if($rand == 3)
{
    
$timecut time()-60*60*24*30;
    
$db->delete_query(TABLE_PREFIX."searchlog""dateline<='$timecut'");

Du kannst die 30 durch die gewünschte Anzahl an Tagen ersetzen.

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Zitieren
#8
Den Ansatz brauche ich jetzt noch nicht, denn ich beherrsche PHP (noch) nicht. Der Hinweis, wo ich die Verfallszeit von Such-IDs einstellen kann, ist für mich aber sehr nützlich, danke!
Zitieren