Archiv verlassen und diese Seite im Standarddesign anzeigen : Anfrage: "Zeige eigene Beiträge"
Supernature
03.04.2002, 10:20
Einer unserer User hat dieses Feature auf einem anderen Board (kein vB) gesehen und nun danach gefragt - vielleicht gibt es sowas ja schon:
Auf der Startseite erscheint ein Link "Eigene Beiträge anzeigen" - als Ergebnis erscheinen alle Beiträge, in denen der User gepostet hat.
Im Prinzip also das gleiche, als wenn man übers Profil sagt "such alle Beiträge von .......", nur das es als Themenübersicht angezeigt werden soll und die UserID automatisch erkannt werden muss.
das sollte nicht allzu schwierig sein.. in search.php musst du einfach eine neue aktion (action) definieren.. welche nach deinen posts sucht.
Supernature
03.04.2002, 16:33
tja, was für die einen einfach ist....:D
Eigentlich ist es schon einfach.
Also in der search.php suche
//
Start posts by user x
#if ($action=="finduser") {
// get allowable forums:
$forumsql=getallforumsql();
// get user:
$usersql=" AND post.userid='$userid'";
$wheresql="1=1".$forumsql.$usersql;
if ($getsearch=$DB_site->query_first("SELECT searchid FROM search WHERE query='".addslashes($wheresql)."'")) {
$searchid=$getsearch[searchid];
} else {
// get last search for this user and check floodcheck
if ($prevsearch=$DB_site->query_first("SELECT searchid,dateline FROM search WHERE ".iif($bbuserinfo[userid]==0,"ipaddress='".addslashes($ipaddress)."'","userid=$bbuserinfo[userid]")." ORDER BY dateline DESC LIMIT 1")) {
if (time()-$prevsearch[dateline]<$searchfloodcheck and $searchfloodcheck!=0) { // and !ismoderator()) {
eval("standarderror(\"".gettemplate("error_searchfloodcheck")."\");");
exit;
}
}
// insert query into db
$DB_site->query("INSERT INTO search (searchid,query,dateline,querystring,showposts,userid,ipaddress) VALUES (NULL,'".addslashes($wheresql)."',".time().",'".addslashes($query)."',1,$bbuserinfo[userid],'".addslashes($ipaddress)."')");
$searchid=$DB_site->insert_id();
}
eval("standardredirect(\"".gettemplate("redirect_search")."\",\"search.php?s=$session[sessionhash]&action=showresults&searchid=$searchid\");");
}
Danach füge folgenden Code ein:
//
Start own posts by Wolf42
#if ($action=="own") {
// get allowable forums:
$forumsql=getallforumsql();
// get user:
$usersql=" AND post.userid=$bbuserinfo[userid]";
$wheresql="1=1".$forumsql.$usersql;
if ($getsearch=$DB_site->query_first("SELECT searchid FROM search WHERE query='".addslashes($wheresql)."'")) {
$searchid=$getsearch[searchid];
} else {
// get last search for this user and check floodcheck
if ($prevsearch=$DB_site->query_first("SELECT searchid,dateline FROM search WHERE ".iif($bbuserinfo[userid]==0,"ipaddress='".addslashes($ipaddress)."'","userid=$bbuserinfo[userid]")." ORDER BY dateline DESC LIMIT 1")) {
if (time()-$prevsearch[dateline]<$searchfloodcheck and $searchfloodcheck!=0) { // and !ismoderator()) {
eval("standarderror(\"".gettemplate("error_searchfloodcheck")."\");");
exit;
}
}
// insert query into db
$DB_site->query("INSERT INTO search (searchid,query,dateline,querystring,showposts,userid,ipaddress) VALUES (NULL,'".addslashes($wheresql)."',".time().",'".addslashes($query)."',1,$bbuserinfo[userid],'".addslashes($ipaddress)."')");
$searchid=$DB_site->insert_id();
}
eval("standardredirect(\"".gettemplate("redirect_search")."\",\"search.php?s=$session[sessionhash]&action=showresults&searchid=$searchid\");");
}
Datei speicher und hochladen.
Aufgerufen wird diese Funktion mit:
http://www.Deine_Domain.de/Dein_Forum/search.php?s=&action=own
War doch ganz einfach, oder? :D
Supernature
04.04.2002, 14:14
Jetzt wo ich es so sehe...:D
Ne Spass beiseite, vielen herzlichen Dank, wie kann ich das nur wiedergutmachen????
Aber Du weisst ja wie es ist. kaum hilft man den Leuten, schon geben sie sich mit nichts mehr zufrieden ;) - ist es auch möglich, das Ergebnis nur als Themenübersicht auszugeben?
Mal schaun, geht sicherlich. ;) Aber lass mir ein wenig Zeit, muss mal mein Auto vom Service holen. :(
@ Supernature:
Dafür musst du genau eine Zahl ändern:
// insert query into db
$DB_site->query("INSERT INTO search (searchid,query,dateline,querystring,showposts,userid,ipaddress) VALUES (NULL,'".addslashes($wheresql)."',".time().",'".addslashes($query)."',1,$bbuserinfo[userid],'".addslashes($ipaddress)."')");
$searchid=$DB_site->insert_id();
Die fette rote Eins zu einer 0 :).
Supernature
04.04.2002, 14:46
Erstmal danke für die rasche Antwort :) - leider sieht das Resultat dann so aus:
Invalid SQL: SELECT COUNT(*) AS threads FROM thread
WHERE thread.visible=1 AND 1=1 AND post.userid=1
mysql error: Unknown table 'post' in where clause
mysql error number: 1109
Da muss wohl auch noch umgebaut werden.
hmm.. sehr komisch.. aber bevor du meine veränderung vorgenommen hast.. hat es funktioniert?
weil.. der fehler ist logisch.. in der where-clause wird nach einem feld in der tabelle post gesucht.. was ja nicht möglich ist. aber der fehler müsste ja schon vorher aufgetaucht sein.. hat nichts mit meiner änderung zu tun..
The_Sisko
04.04.2002, 19:59
Original geschrieben von Supernature
Erstmal danke für die rasche Antwort :) - leider sieht das Resultat dann so aus:
Invalid SQL: SELECT COUNT(*) AS threads FROM thread
WHERE thread.visible=1 AND 1=1 AND post.userid=1
mysql error: Unknown table 'post' in where clause
mysql error number: 1109
Da muss wohl auch noch umgebaut werden.
Das sollte so aussehen:
SELECT COUNT(*) AS threads FROM thread,post
WHERE thread.visible=1 AND 1=1 AND post.userid=1
Teste das mal
Original geschrieben von The_Sisko
Das sollte so aussehen:
SELECT COUNT(*) AS threads FROM thread,post
WHERE thread.visible=1 AND 1=1 AND post.userid=1
Teste das mal
Das ist schwer möglichlich ohne die search.php weiträumig umzuschreiben. Der SELECT kommt aus der Function "showresults" (ca. Zeile 757 im Originalscript), das WHERE allerdings aus der modifzierten Function "own".
Supernature
05.04.2002, 12:10
schade :(
Hintergrund war: Ein User kommt aufs Board zurück und möchte sehen, ob es neue Antworten in Themen gibt, an denen er beteiligt war. Wenn die Beiträge einzeln aufgelistet werden, ist das auf den ersten Blick nicht zu erkennen, ausser er hat sich die Anzahl der Antworten gemerkt.
Trotzdem möchte ich auf keinen Fall undankbar wirken. Man kann es nicht hoch genug einschätzen, wenn sich jemand für andere Arbeit macht, ohne selbst etwas davon zu haben. Also an dieser Stelle nochmals herzlichen Dank an alle Beteiligten, und vielleicht hat ja doch noch jemand die rettende Idee ;)
Dafür gibt es die Möglichkeit Themen zu abonieren. :D
hallo ist ja ein tolles teil ;) ich habe aber noch ne frage .....
wie kann ich mir in der suche alle beiträge ohne antworten anzeigen lassen?
vBulletin® v3.7.2, Copyright ©2000-2008, Jelsoft Enterprises Ltd.