rellek
retired
Dabei seit: 16.01.04
Beiträge: 720
Themenstarter
|
|
Du hattest noch die Ur-Version drin - die hat so gut wie nichts gefunden.
Habe dir mal die Beta eingebaut, die sollte die Themen finden.
|
|
13.04.05 13:51 |
WWW
Finden
Als Freund hinzufügen
|
|
Icebreaker3108
Mitglied
Dabei seit: 19.01.04
Beiträge: 96
Forenversion: 2.1.3
|
|
Ey das kann doch net sein. Ich habe alles eingebaut, habe auch verschiedene Threads wie blablabla 1-10 usw. aber der findet nix. Wo könnte der Fehler sein?
Und von dem Betazeugs hab ich auch versucht, jetzt kommt ne Fehlermeldung wenn ich in Thread will:
Fatal error: Cannot redeclare getaccessableforums() (previously declared in /home/www/htdocs/icebreakers-page.de/wbb213/wbb2/thread.php:919) in /home/www/htdocs/icebreakers-page.de/wbb213/wbb2/thread.php on line 1019
Ist doch voll scheiße ey, echt
PS: Das Scheiss hier nimmt keine Dateianhänge von mir an, hö? Auch als zip net. Gibts doch net.
Hier die Thread.php:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
274:
275:
276:
277:
278:
279:
280:
281:
282:
283:
284:
285:
286:
287:
288:
289:
290:
291:
292:
293:
294:
295:
296:
297:
298:
299:
300:
301:
302:
303:
304:
305:
306:
307:
308:
309:
310:
311:
312:
313:
314:
315:
316:
317:
318:
319:
320:
321:
322:
323:
324:
325:
326:
327:
328:
329:
330:
331:
332:
333:
334:
335:
336:
337:
338:
339:
340:
341:
342:
343:
344:
345:
346:
347:
348:
349:
350:
351:
352:
353:
354:
355:
356:
357:
358:
359:
360:
361:
362:
363:
364:
365:
366:
367:
368:
369:
370:
371:
372:
373:
374:
375:
376:
377:
378:
379:
380:
381:
382:
383:
384:
385:
386:
387:
388:
389:
390:
391:
392:
393:
394:
395:
396:
397:
398:
399:
400:
401:
402:
403:
404:
405:
406:
407:
408:
409:
410:
411:
412:
413:
414:
415:
416:
417:
418:
419:
420:
421:
422:
423:
424:
425:
426:
427:
428:
429:
430:
431:
432:
433:
434:
435:
436:
437:
438:
439:
440:
441:
442:
443:
444:
445:
446:
447:
448:
449:
450:
451:
452:
453:
454:
455:
456:
457:
458:
459:
460:
461:
462:
463:
464:
465:
466:
467:
468:
469:
470:
471:
472:
473:
474:
475:
476:
477:
478:
479:
480:
481:
482:
483:
484:
485:
486:
487:
488:
489:
490:
491:
492:
493:
494:
495:
496:
497:
498:
499:
500:
501:
502:
503:
504:
505:
506:
507:
508:
509:
510:
511:
512:
513:
514:
515:
516:
517:
518:
519:
520:
521:
522:
523:
524:
525:
526:
527:
528:
529:
530:
531:
532:
533:
534:
535:
536:
537:
538:
539:
540:
541:
542:
543:
544:
545:
546:
547:
548:
549:
550:
551:
552:
553:
554:
555:
556:
557:
558:
559:
560:
561:
562:
563:
564:
565:
566:
567:
568:
569:
570:
571:
572:
573:
574:
575:
576:
577:
578:
579:
580:
581:
582:
583:
584:
585:
586:
587:
588:
589:
590:
591:
592:
593:
594:
595:
596:
597:
598:
599:
600:
601:
602:
603:
604:
605:
606:
607:
608:
609:
610:
611:
612:
613:
614:
615:
616:
617:
618:
619:
620:
621:
622:
623:
624:
625:
626:
627:
628:
629:
630:
631:
632:
633:
634:
635:
636:
637:
638:
639:
640:
641:
642:
643:
644:
645:
646:
647:
648:
649:
650:
651:
652:
653:
654:
655:
656:
657:
658:
659:
660:
661:
662:
663:
664:
665:
666:
667:
668:
669:
670:
671:
672:
673:
674:
675:
676:
677:
678:
679:
680:
681:
682:
683:
684:
685:
686:
687:
688:
689:
690:
691:
692:
693:
694:
695:
696:
697:
698:
699:
700:
701:
702:
703:
704:
705:
706:
707:
708:
709:
710:
711:
712:
713:
714:
715:
716:
717:
718:
719:
720:
721:
722:
723:
724:
725:
726:
727:
728:
729:
730:
731:
732:
733:
734:
735:
736:
737:
738:
739:
740:
741:
742:
743:
744:
745:
746:
747:
748:
749:
750:
751:
752:
753:
754:
755:
756:
757:
758:
759:
760:
761:
762:
763:
764:
765:
766:
767:
768:
769:
770:
771:
772:
773:
774:
775:
776:
777:
778:
779:
780:
781:
782:
783:
784:
785:
786:
787:
788:
789:
790:
791:
792:
793:
794:
795:
796:
797:
798:
799:
800:
801:
802:
803:
804:
805:
806:
807:
808:
809:
810:
811:
812:
813:
814:
815:
816:
817:
818:
819:
820:
821:
822:
823:
824:
825:
826:
827:
828:
829:
830:
831:
832:
833:
834:
835:
836:
837:
838:
839:
840:
841:
842:
843:
844:
845:
846:
847:
848:
849:
850:
851:
852:
853:
854:
855:
856:
857:
858:
859:
860:
861:
862:
863:
864:
865:
866:
867:
868:
869:
870:
871:
872:
873:
874:
875:
876:
877:
878:
879:
880:
881:
882:
883:
884:
885:
886:
887:
888:
889:
890:
891:
892:
893:
894:
895:
896:
897:
898:
899:
900:
901:
902:
903:
904:
905:
906:
907:
908:
909:
910:
911:
912:
913:
914:
915:
916:
917:
918:
919:
920:
921:
922:
923:
924:
925:
926:
927:
928:
929:
930:
931:
932:
933:
934:
935:
936:
937:
938:
939:
940:
941:
942:
943:
944:
945:
946:
947:
948:
949:
950:
951:
952:
953:
954:
955:
956:
957:
958:
959:
960:
961:
962:
963:
964:
965:
|
<?php
// ************************************************************************************//
// * WoltLab Burning Board 2
// ************************************************************************************//
// * Copyright (c) 2001-2004 WoltLab GmbH
// * Web http://www.woltlab.de/
// * License http://www.woltlab.de/products/burning_board/license_en.php
// * http://www.woltlab.de/products/burning_board/license.php
// ************************************************************************************//
// * WoltLab Burning Board 2 is NOT free software.
// * You may not redistribute this package or any of it's files.
// ************************************************************************************//
// * $Date: 2004-11-17 13:23:39 +0100 (Wed, 17 Nov 2004) $
// * $Author: Burntime $
// * $Rev: 1496 $
// ************************************************************************************//
$filename = 'thread.php';
require('./global.php');
require('./acp/lib/class_parse.php');
$lang->load('THREAD,MEMBERS');
if ((!isset($postid) && !isset($threadid)) || $thread['closed'] == 3) error($lang->get("LANG_GLOBAL_ERROR_FALSELINK", array('$adminmail' => $adminmail)));
if (!checkpermissions("can_read_thread")) access_error();
/** Thread Class **/
class Thread {
/**
* @var integer threadid
*/
var $threadid = 0;
/**
* @var string pagelink
*/
var $pagelink = "";
/**
* @var integer page
*/
var $page = 0;
/**
* @var integer pages
*/
var $pages = 0;
/**
* @var string postids
*/
var $postids = "";
/**
* @var string orderby
*/
var $orderBy = "";
/**
* @var array userfieldcache
*/
var $userfieldcache = array();
/**
* @var object parse
*/
var $parse;
/**
* @var array attachmentArray
*/
var $attachmentArray = array();
/**
* @var boolean readAttachments
*/
var $readAttachments = false;
/**
* parse a message and generate postbit
*
* @param array posts
* @param integer count
* @param integer indentwidth
*
* @return string postbit
*/
function makePostBit($posts, $count, $indentwidth = 0) {
global $guthaben;
global $thread, $board, $tpl, $wbbuserdata, $style, $lang, $session, $userratings, $showuserratinginthread, $showuserlevels, $showonlineinthread, $useronlinetimeout, $showregdateinthread, $showuserfieldsinthread, $showgenderinthread, $showavatar, $_GET, $showthreadstarter, $showuserpostsinthread, $allowsigsmilies, $allowsightml, $allowsigbbcode, $max_sig_image, $authormarking, $picmaxwidth, $picmaxheight, $allowflashavatar, $thumbnailsperrow, $SID_ARG_1ST, $SID_ARG_2ND, $SID_ARG_2ND_UN;
if ($this->userfieldcache) reset($this->userfieldcache);
$userrating = '';
$signature = '';
$lastedit = '';
$user_online = '';
$userfields = '';
$useravatar = '';
$rankimages = '';
$setvisible = '';
$userlevel = '';
$posts['username'] = htmlconverter($posts['username']);
$username = $posts['username'];
/** mod / admin option -> set visible post **/
if ($posts['visible'] == 0 && $posts['posttime'] != $thread['starttime']) $invisible = 1;
else $invisible = 0;
$tdclass = getone($count, 'tableb', 'tablea');
// use postcache if possible
if ($posts['cache']) $posts['message'] = $this->parse->parseCache($posts['cache']);
else $posts['message'] = $this->parse->doparse($posts['message'], $posts['allowsmilies'], $posts['allowhtml'], $posts['allowbbcode'], $posts['allowimages']);
$posts['posttopic'] = htmlconverter(textwrap($posts['posttopic']));
if ($posts['iconid']) $posticon = makeimgtag($posts['iconpath'], getlangvar($posts['icontitle'], $lang), 0);
else $posticon = '';
if ($posts['posttime'] > $thread['lastvisit']) $newpost = 1;
else $newpost = 0;
$postdate = formatdate($wbbuserdata['dateformat'], $posts['posttime'], 1);
$posttime = formatdate($wbbuserdata['timeformat'], $posts['posttime']);
// show attachments
$attachments = '';
$attachment_thumbnailCount = 0;
$attachmentbit = '';
$attachmentbit_img = '';
$attachmentbit_img_small = '';
$attachmentbit_img_thumbnails = '';
if (isset($this->attachmentArray[$posts['postid']]) && count($this->attachmentArray[$posts['postid']])) {
unset($LANG_THREAD_ATTACHMENT_IMAGE_THUMBNAIL);
unset($LANG_THREAD_ATTACHMENT_IMAGE_SMALL);
unset($LANG_THREAD_ATTACHMENT_IMAGE);
unset($LANG_THREAD_ATTACHMENT);
foreach ($this->attachmentArray[$posts['postid']] as $attachment) {
$attachment['attachmentextension'] = htmlconverter($attachment['attachmentextension']);
$attachment['attachmentname'] = htmlconverter($attachment['attachmentname']);
// attachment is an image, display it directly
if (checkpermissions('can_download_attachments') == 1 && $wbbuserdata['showimages'] == 1 && $wbbuserdata['can_download_attachments'] == 1 && ($attachment['attachmentextension'] == 'gif' || $attachment['attachmentextension'] == 'jpg' || $attachment['attachmentextension'] == 'jpeg' || $attachment['attachmentextension'] == 'png')) {
if ($attachment['thumbnailextension'] != '') {
$attachment_thumbnailCount++;
if ($attachment_thumbnailCount && ($attachment_thumbnailCount % $thumbnailsperrow) == 0) $thumbnailNewline = true;
else $thumbnailNewline = false;
if (!isset($LANG_THREAD_ATTACHMENT_IMAGE_THUMBNAIL)) $LANG_THREAD_ATTACHMENT_IMAGE_THUMBNAIL = $lang->get("LANG_THREAD_ATTACHMENT_IMAGE_SMALL", array('$username' => $username));
else $LANG_THREAD_ATTACHMENT_IMAGE_THUMBNAIL = $lang->get("LANG_THREAD_ATTACHMENTS_IMAGE_SMALL", array('$username' => $username));
eval("\$attachmentbit_img_thumbnails .= \"".$tpl->get("thread_attachmentbit_show_thumbnail")."\";");
}
else {
$imgsize = @getimagesize("./attachments/attachment-$attachment[attachmentid].$attachment[attachmentextension]");
if (($picmaxwidth != 0 && $imgsize[0] > $picmaxwidth) || ($picmaxheight != 0 && $imgsize[1] > $picmaxheight)) {
if ($picmaxwidth != 0) $div1 = $picmaxwidth / $imgsize[0];
else $div1 = 1;
if ($picmaxheight != 0) $div2 = $picmaxheight / $imgsize[1];
else $div2 = 1;
if ($div1 < $div2) {
$attachment['imgwidth'] = $picmaxwidth;
$attachment['imgheight'] = round($imgsize[1] * $div1);
}
else {
$attachment['imgheight'] = $picmaxheight;
$attachment['imgwidth'] = round($imgsize[0] * $div2);
}
if (!isset($LANG_THREAD_ATTACHMENT_IMAGE_SMALL)) $LANG_THREAD_ATTACHMENT_IMAGE_SMALL = $lang->get("LANG_THREAD_ATTACHMENT_IMAGE_SMALL", array('$username' => $username));
else $LANG_THREAD_ATTACHMENT_IMAGE_SMALL = $lang->get("LANG_THREAD_ATTACHMENTS_IMAGE_SMALL", array('$username' => $username));
eval("\$attachmentbit_img_small .= \"".$tpl->get("thread_attachmentbit_show_small")."\";");
}
else {
if (!isset($LANG_THREAD_ATTACHMENT_IMAGE)) $LANG_THREAD_ATTACHMENT_IMAGE = $lang->get("LANG_THREAD_ATTACHMENT_IMAGE", array('$username' => $username));
else $LANG_THREAD_ATTACHMENT_IMAGE = $lang->get("LANG_THREAD_ATTACHMENTS_IMAGE", array('$username' => $username));
eval("\$attachmentbit_img .= \"".$tpl->get("thread_attachmentbit_show")."\";");
}
}
}
else {
if (!file_exists($style['imagefolder']."/filetypes/".$attachment['attachmentextension'].".gif")) $extensionimage = "unknown";
else $extensionimage = $attachment['attachmentextension'];
$attachment['attachmentsize'] = ceil($attachment['attachmentsize'] / 1024);
if ($attachment['counter'] >= 1000) $attachment['counter'] = number_format($attachment['counter'], 0, "", $lang->get("LANG_GLOBAL_THOUSANDS_SEP"));
$LANG_THREAD_ATTACHMENT_INFO = $lang->get("LANG_THREAD_ATTACHMENT_INFO", array('$attachmentsize' => $attachment['attachmentsize'], '$counter' => $attachment['counter']));
if (!isset($LANG_THREAD_ATTACHMENT)) $LANG_THREAD_ATTACHMENT = $lang->get('LANG_THREAD_ATTACHMENT');
else $LANG_THREAD_ATTACHMENT = $lang->get('LANG_THREAD_ATTACHMENTS');
eval("\$attachmentbit .= \"".$tpl->get("thread_attachmentbit")."\";");
}
}
eval("\$attachments = \"".$tpl->get("thread_attachments")."\";");
}
if ($posts['editorid']) {
$editdate = formatdate($wbbuserdata['dateformat'], $posts['edittime'], 1);
$edittime = formatdate($wbbuserdata['timeformat'], $posts['edittime']);
$posts['editor'] = htmlconverter($posts['editor']);
$LANG_THREAD_EDITOR = $lang->get("LANG_THREAD_EDITOR", array('$editcount' => $posts['editcount'], '$editor' => $posts['editor'], '$editdate' => $editdate, '$edittime' => $edittime));
}
if ($posts['userid']) {
global $db, $n;
list($xa_rekorde) = $db->query_first("SELECT COUNT(*) FROM bb".$n."_arcadegames WHERE championid_1 = '$posts[userid]' AND active = '1'");
if($xa_rekorde) $xait = "<br /><a href=\"./proarcade.php?userid=$posts[userid]$SID_ARG_2ND\">$posts[username] hält bei xArcade<br /><b>$xa_rekorde</b> Rekorde</a><br />";
else $xait = '';
$posts['homepage'] = htmlconverter($posts['homepage']);
$posts['email'] = getASCIICodeString($posts['email']);
$rankimages = formatRI($posts['rankimages']);
if ($posts['title']) $posts['ranktitle'] = htmlconverter($posts['title']);
else $posts['ranktitle'] = getlangvar($posts['ranktitle'], $lang);
/* #### sternzeichen Hack by det1706 #### */
switch($posts[sternzeichen]) {
case 1: eval ("\$sternzeichen = \"".$tpl->get("profile_sternzeichen1")."\";"); break;
case 2: eval ("\$sternzeichen = \"".$tpl->get("profile_sternzeichen2")."\";"); break;
case 3: eval ("\$sternzeichen = \"".$tpl->get("profile_sternzeichen3")."\";"); break;
case 4: eval ("\$sternzeichen = \"".$tpl->get("profile_sternzeichen4")."\";"); break;
case 5: eval ("\$sternzeichen = \"".$tpl->get("profile_sternzeichen5")."\";"); break;
case 6: eval ("\$sternzeichen = \"".$tpl->get("profile_sternzeichen6")."\";"); break;
case 7: eval ("\$sternzeichen = \"".$tpl->get("profile_sternzeichen7")."\";"); break;
case 8: eval ("\$sternzeichen = \"".$tpl->get("profile_sternzeichen8")."\";"); break;
case 9: eval ("\$sternzeichen = \"".$tpl->get("profile_sternzeichen9")."\";"); break;
case 10: eval ("\$sternzeichen = \"".$tpl->get("profile_sternzeichen10")."\";"); break;
case 11: eval ("\$sternzeichen = \"".$tpl->get("profile_sternzeichen11")."\";"); break;
case 12: eval ("\$sternzeichen = \"".$tpl->get("profile_sternzeichen12")."\";"); break;
default: eval ("\$sternzeichen = \"".$tpl->get("profile_nosternzeichen")."\";"); break;
}
/* #### sternzeichen Hack by det1706 #### */
if ($userratings == 1 && $showuserratinginthread == 1) $userrating = userrating($posts['ratingcount'], $posts['ratingpoints'], $posts['userid']);
if ($showuserlevels == 1) $userlevel = userlevel($posts['userposts'], $posts['regdate']);
if ($showonlineinthread == 1) {
if (($posts['invisible'] == 0 || $wbbuserdata['a_can_view_ghosts'] == 1) && $posts['lastactivity'] >= time() - $useronlinetimeout * 60) {
$user_online = 1;
$LANG_MEMBERS_USERONLINE = $lang->get("LANG_MEMBERS_USERONLINE", array('$username' => $username));
}
else {
$user_online = 0;
$LANG_MEMBERS_USERONLINE = $lang->get("LANG_MEMBERS_USEROFFLINE", array('$username' => $username));
}
}
if ($showregdateinthread == 1) $posts['regdate'] = formatdate($wbbuserdata['dateformat'], $posts['regdate']);
if ($showuserfieldsinthread == 1 && is_array($this->userfieldcache) && count($this->userfieldcache)) {
while (list($key, $val) = each($this->userfieldcache)) {
$fieldcontent = textwrap($posts["field".$val['profilefieldid']], 20);
if ($fieldcontent && $fieldcontent != "0000-00-00") {
if ($val['fieldtype'] == "multiselect") $fieldcontent = str_replace("\n", "; ", $fieldcontent);
elseif ($val['fieldtype'] == "date") {
$row_datearray = explode("-", $fieldcontent);
if ($row_datearray[0] == "0000") $fieldcontent = $row_datearray[2].".".$row_datearray[1].".";
else $fieldcontent = $row_datearray[2].".".$row_datearray[1].".".$row_datearray[0];
}
$fieldcontent = htmlconverter($fieldcontent);
eval("\$userfields .= \"".$tpl->get("thread_userfields")."\";");
}
}
}
if ($showgenderinthread == 0) $posts['gender'] = 0;
if ($posts['gender'] == 1) $LANG_THREAD_MALE = $lang->get("LANG_THREAD_MALE", array('$username' => $username));
if ($posts['gender'] == 2) $LANG_THREAD_FEMALE = $lang->get("LANG_THREAD_FEMALE", array('$username' => $username));
if ($posts['showemail'] == 1 || $posts['usercanemail'] == 1) $LANG_MEMBERS_SENDEMAIL = $lang->get("LANG_MEMBERS_SENDEMAIL", array('$username' => $username));
if ($posts['homepage']) $LANG_MEMBERS_HOMEPAGE = $lang->get("LANG_MEMBERS_HOMEPAGE", array('$username' => $username));
$LANG_MEMBERS_SEARCH = $lang->get("LANG_MEMBERS_SEARCH", array('$username' => $username));
$LANG_MEMBERS_BUDDY = $lang->get("LANG_MEMBERS_BUDDY", array('$username' => $username));
if ($posts['receivepm'] == 1 && $wbbuserdata['can_use_pms'] == 1) $LANG_MEMBERS_PM = $lang->get("LANG_MEMBERS_PM", array('$username' => $username));
if ($posts['icq']) $LANG_MEMBERS_ICQ = $lang->get("LANG_MEMBERS_ICQ", array('$username' => $username));
if ($posts['aim']) {
$posts['aim'] = htmlconverter($posts['aim']);
$aim = $posts['aim'];
$LANG_MEMBERS_AIM = $lang->get("LANG_MEMBERS_AIM", array('$username' => $username, '$aim' => $aim));
}
if ($posts['yim']) {
$posts['yim'] = htmlconverter($posts['yim']);
$yim = $posts['yim'];
$LANG_MEMBERS_YIM = $lang->get("LANG_MEMBERS_YIM", array('$username' => $username, '$yim' => $yim));
}
if ($posts['msn']) {
$posts['msn'] = htmlconverter($posts['msn']);
$LANG_MEMBERS_MSN = $lang->get("LANG_MEMBERS_MSN", array('$username' => $username));
}
if ($posts['avatarid'] && $showavatar == 1 && $wbbuserdata['showavatars'] == 1) {
$avatarname = "images/avatars/avatar-$posts[avatarid].".htmlconverter($posts['avatarextension']);
$avatarwidth = $posts['width'];
$avatarheight = $posts['height'];
if ($posts['avatarextension'] == "swf" && $allowflashavatar == 1) eval("\$useravatar = \"".$tpl->get("avatar_flash")."\";");
elseif ($posts['avatarextension'] != "swf") eval("\$useravatar = \"".$tpl->get("avatar_image")."\";");
}
if ($authormarking == 1 && $posts['useronlinemarking'] != '') $posts['username'] = sprintf($posts['useronlinemarking'], $posts['username']);
if (isset($_GET['hilightuser']) && $_GET['hilightuser'] == $posts['userid']) $posts['username'] = "<span class=\"highlight\">".$posts['username']."</span>";
if ($showthreadstarter == 1 && $thread['starterid'] == $posts['userid'] && $thread['starttime'] != $posts['posttime']) {
$threadstarter = 1;
$LANG_THREAD_THREADSTARTER_ALT = $lang->get("LANG_THREAD_THREADSTARTER_ALT", array('$starter' => $thread['starter']));
}
else $threadstarter = 0;
if ($posts['showsignature'] == 1 && !$posts['disablesignature'] && $wbbuserdata['showsignatures'] == 1 && $posts['signature']) {
$posts['signature'] = $this->parse->doparse($posts['signature'], $posts['allowsigsmilies'], $posts['allowsightml'], $posts['allowsigbbcode'], $posts['allowsigimages']);
eval("\$signature = \"".$tpl->get("thread_signature")."\";");
}
if ($showuserpostsinthread == 1 && $posts['userposts'] >= 1000) $posts['userposts'] = number_format($posts['userposts'], 0, "", $lang->get("LANG_GLOBAL_THOUSANDS_SEP"));
}
/* Guthaben A */
$waehrung = $guthaben['waehrung'];
$user_guthaben = number_format($posts['guthaben'],0,",",".");
/* Guthaben E */
eval("\$postbit = \"".$tpl->get("thread_postbit")."\";");
return $postbit;
}
/**
* jump to last post
*
* @return void
*/
function lastpost() {
global $visible, $SID_ARG_2ND_UN, $db, $n, $url2board;
$result = $db->query_first("SELECT postid FROM bb".$n."_posts WHERE threadid = '".$this->threadid."' $visible ORDER BY posttime DESC", 1);
header("Location: thread.php?postid=".$result['postid'].$SID_ARG_2ND_UN."#post$result[postid]");
exit;
}
/**
* jump to first new post
*
* @param integer lastvisit
*
* @return void
*/
function firstnew($lastvisit) {
global $visible, $db, $n, $SID_ARG_2ND_UN, $threadid, $url2board;
$result = $db->query_first("SELECT postid FROM bb".$n."_posts WHERE threadid='".$this->threadid."' AND posttime>'".$lastvisit."' $visible ORDER BY posttime ASC", 1);
if ($result['postid']) header("Location: thread.php?postid=".$result['postid'].$SID_ARG_2ND_UN."#post$result[postid]");
else header("Location: thread.php?goto=lastpost&threadid=".$threadid.$SID_ARG_2ND_UN);
exit;
}
/**
* jump to next newest thread
*
* @return void
*/
function nextnewest() {
global $db, $n, $thread, $boardid, $tpl, $lang, $threadid;
$result = $db->query_first("SELECT threadid FROM bb".$n."_threads WHERE visible = 1 AND lastposttime>'$thread[lastposttime]' AND closed <> 3 AND boardid = '$boardid' ORDER BY lastposttime ASC", 1);
if (!$result['threadid']) error($lang->get("LANG_THREAD_ERROR_NONEXTNEWEST"));
$threadid = $result['threadid'];
$this->threadid = $threadid;
$thread = $db->query_first("SELECT * FROM bb".$n."_threads WHERE threadid = '".$this->threadid."'");
}
/**
* jump to next oldest thread
*
* @return void
*/
function nextoldest() {
global $db, $n, $thread, $boardid, $tpl, $lang, $threadid;
$result = $db->query_first("SELECT threadid FROM bb".$n."_threads WHERE visible = 1 AND lastposttime<'$thread[lastposttime]' AND closed <> 3 AND boardid = '$boardid' ORDER BY lastposttime DESC", 1);
if (!$result['threadid']) error($lang->get("LANG_THREAD_ERROR_NONEXTOLDEST"));
$threadid = $result['threadid'];
$this->threadid = $threadid;
$thread = $db->query_first("SELECT * FROM bb".$n."_threads WHERE threadid = '$threadid'");
}
/**
* create links to further pages
*
* @return void
*/
function makePagelink() {
global $SID_ARG_2ND, $threadview, $hilight, $hilightuser, $showpagelinks;
$this->pagelink = makepagelink("thread.php?threadid=".$this->threadid."&threadview=$threadview&hilight=".urlencode($hilight)."&hilightuser=$hilightuser".$SID_ARG_2ND, $this->page, $this->pages, $showpagelinks - 1);
}
/**
* read post information from database
*
* @return resource result
*/
function readPosts() {
global $docensor, $board, $wbbuserdata, $hilight, $usecode, $showuserfieldsinthread, $db, $n, $showavatar, $authormarking, $lang;
$this->parse = &new parse($docensor, 75, $wbbuserdata['showimages'], $hilight, $usecode);
if ($this->readAttachments) {
$result = $db->unbuffered_query("SELECT postid, attachmentid, attachmentname, attachmentextension, attachmentsize, counter, thumbnailextension FROM bb".$n."_attachments WHERE postid IN (0".$this->postids.") ORDER BY uploadtime");
while ($row = $db->fetch_array($result)) {
$this->attachmentArray[$row['postid']][$row['attachmentid']] = $row;
}
}
if ($showuserfieldsinthread == 1) {
$userfields = ", uf.*";
$userfieldsjoin = "LEFT JOIN bb".$n."_userfields uf ON (uf.userid=p.userid)";
$result = $db->unbuffered_query("SELECT profilefieldid, title, fieldtype FROM bb".$n."_profilefields WHERE showinthread=1".(($wbbuserdata['a_can_view_hidden'] == 0) ? (" AND hidden=0") : (""))." ORDER BY fieldorder ASC");
while ($row = $db->fetch_array($result)) {
$row['title'] = getlangvar($row['title'], $lang);
$this->userfieldcache[] = $row;
}
}
else {
$userfields = '';
$userfieldsjoin = '';
}
if ($showavatar == 1) {
$avatar = ", av.avatarid, av.avatarextension, av.width, av.height";
$avatarjoin = "LEFT JOIN bb".$n."_avatars av ON (u.avatarid=av.avatarid)";
}
else {
$avatar = '';
$avatarjoin = '';
}
if ($authormarking == 1) {
$marking = ", g.useronlinemarking";
$markingjoin = "LEFT JOIN bb".$n."_groups g ON (u.useronlinegroupid=g.groupid)";
}
else {
$marking = '';
$markingjoin = '';
}
$result = $db->query("SELECT p.*, pc.cache,
u.userposts, u.regdate, u.signature, u.email, u.homepage, u.icq, u.aim, u.yim, u.msn, u.showemail, u.receivepm, u.usercanemail, u.ratingcount, u.ratingpoints, u.gender, u.invisible, u.title, u.sternzeichen, u.lastactivity, u.allowsigsmilies, u.allowsightml, u.allowsigbbcode, u.allowsigimages, u.disablesignature, u.guthaben,
r.ranktitle, r.rankimages,
i.iconpath, i.icontitle
$userfields
$avatar
$marking
FROM bb".$n."_posts p
LEFT JOIN bb".$n."_users u USING (userid)
LEFT JOIN bb".$n."_ranks r USING (rankid)
LEFT JOIN bb".$n."_icons i ON (p.iconid=i.iconid)
LEFT JOIN bb".$n."_postcache pc ON (p.postid=pc.postid)
$userfieldsjoin
$avatarjoin
$markingjoin
WHERE p.postid IN (0".$this->postids.")".$this->orderBy);
return $result;
}
}
/** FlatThread Class **/
class FlatThread extends Thread {
/**
* constructor
*
* @param integer threadid
*/
function FlatThread($threadid) {
$this->threadid = $threadid;
}
/**
* get and stores the pagenumber of a certain message
*
* @param integer postid
*
* @return void
*/
function gotoPost($postid) {
global $db, $n, $visible, $postorder, $postsperpage, $_GET;
if ($postorder == 0) $result = $db->query_first("SELECT COUNT(*) AS posts FROM bb".$n."_posts WHERE threadid='".$this->threadid."' AND postid<='$postid' $visible");
else $result = $db->query_first("SELECT COUNT(*) AS posts FROM bb".$n."_posts WHERE threadid='$threadid' AND postid>='$postid' $visible");
$_GET['page'] = ceil($result['posts'] / $postsperpage);
}
/**
* parse messages and returns complete postbit
*
* @return string postbit
*/
function start() {
global $postorder, $db;
$this->getPostIds();
$this->orderBy = "ORDER BY p.posttime ".(($postorder) ? ("DESC") : ("ASC"));
$count = 0;
$postbit = '';
$result = $this->readPosts();
while ($row = $db->fetch_array($result)) $postbit .= $this->makePostBit($row, $count++);
return $postbit;
}
/**
* get and stores the postids of the current page
*
* @return void
*/
function getPostIds() {
global $visible, $db, $n, $_GET, $postsperpage, $postorder, $thread;
$postcount = $thread['replycount'] + 1;
if (isset($_GET['page'])) {
$this->page = intval($_GET['page']);
if ($this->page == 0) $this->page = 1;
}
else $this->page = 1;
$this->pages = ceil($postcount / $postsperpage);
if ($this->pages > 1) $this->makePagelink();
$result = $db->unbuffered_query("SELECT postid, attachments FROM bb".$n."_posts WHERE threadid = '".$this->threadid."' $visible ORDER BY posttime ".(($postorder) ? ("DESC") : ("ASC")), 0, $postsperpage, $postsperpage * ($this->page - 1));
while ($row = $db->fetch_array($result)) {
$this->postids .= ",".$row['postid'];
if ($row['attachments']) $this->readAttachments = true;
}
}
}
/** ThreadedThread Class **/
class ThreadedThread extends Thread {
/**
* @var integer offset
*/
var $offset = 0;
/**
* @var integer offset2
*/
var $offset2 = 0;
/**
* @var array cache
*/
var $cache = array();
/**
* @var array list
*/
var $list = array();
/**
* @var integer max
*/
var $max = -1;
/**
* @var integer total
*/
var $total = 0;
/**
* @var integer cout
*/
var $count = 0;
/**
* @var string postbitlist
*/
var $postbitlist = '';
/**
* constructor
*
* @param integer threadid
*/
function ThreadedThread($threadid) {
$this->threadid = $threadid;
}
/**
* get and stores the pagenumber of a certain message
*
* @param integer postid
*
* @return void
*/
function gotoPost($postid) {
global $_GET, $postsperpage, $db, $n, $visible;
$result = $db->query("SELECT postid, parentpostid, attachments FROM bb".$n."_posts WHERE threadid='".$this->threadid."' $visible ORDER BY posttime ASC");
$this->total = $db->num_rows($result);
while ($row = $db->fetch_array($result)) {
$this->cache[$row['parentpostid']][$row['postid']] = 1;
if ($row['attachments']) $this->readAttachments = true;
}
$this->countPosts($postid);
$_GET['page'] = ceil($this->count / $postsperpage);
}
/**
* get and stores the number of a certain message in threaded view
*
* @param integer postid
* @param integer count
* @param integer parentid
*
* @return void
*/
function countPosts($finalpostid, $count = 0, $parentid = 0) {
if (!isset($this->cache[$parentid])) return $count;
reset($this->cache[$parentid]);
while (list($postid, ) = each($this->cache[$parentid])) {
$count++;
if ($postid == $finalpostid) {
$this->count = $count;
break;
}
$count = $this->countPosts($finalpostid, $count, $postid);
}
return $count;
}
/**
* parse messages and returns complete postbit
*
* @return string postbit
*/
function start() {
global $db, $n, $postsperpage, $_GET, $visible;
if (isset($_GET['page'])) {
$this->page = intval($_GET['page']);
if ($this->page == 0) $this->page = 1;
}
else $this->page = 1;
$this->offset = $postsperpage * ($this->page - 1);
$this->offset2 = $this->offset + $postsperpage;
if (count($this->cache) == 0) {
$result = $db->query("SELECT postid, parentpostid, attachments FROM bb".$n."_posts WHERE threadid='".$this->threadid."' $visible ORDER BY posttime ASC");
$this->total = $db->num_rows($result);
while ($row = $db->fetch_array($result)) {
$this->cache[$row['parentpostid']][$row['postid']] = 1;
if ($row['attachments']) $this->readAttachments = true;
}
}
$this->pages = ceil($this->total / $postsperpage);
if ($this->pages > 1) $this->makePagelink();
reset($this->cache);
$this->generate();
if ($this->max > 0) $this->sync();
$result = $this->readPosts();
while ($posts = $db->fetch_array($result)) {
$temp = $this->list[$posts['postid']];
$this->list[$posts['postid']] = $posts;
$this->list[$posts['postid']]['depth'] = $temp;
}
$count = 0;
$postbit = '';
reset($this->list);
while (list($postid, ) = each($this->list)) {
$postbit .= $this->makePostBit($this->list[$postid], $count++, $this->list[$postid]['depth'] * 15);
$this->postbitlist .= $this->makePostBitList($this->list[$postid], $this->list[$postid]['depth'] * 15);
}
return $postbit;
}
/**
* calculates the depth of the threaded view
*
* @param integer parentid
* @param integer count
* @param integer depth
*
* @return integer count
*/
function generate($parentid = 0, $count = 0, $depth = 0) {
if (!isset($this->cache[$parentid])) return $count;
reset($this->cache[$parentid]);
while (list($postid, ) = each($this->cache[$parentid])) {
if ($count >= $this->offset && $count < $this->offset2) {
if ($this->max == -1) $this->max = $depth;
if ($depth < $this->max) $this->max = $depth;
$this->list[$postid] = $depth;
$this->postids .= ",".$postid;
}
$count++;
$count = $this->generate($postid, $count, $depth + 1);
}
return $count;
}
/**
* generates a postlist
*
* @param array posts
* @param integer imgwidth
*
* @return string postlist
*/
function makePostBitList($posts, $imgwidth = 0) {
global $tpl, $wbbuserdata, $lang, $SID_ARG_1ST, $SID_ARG_2ND, $SID_ARG_2ND_UN, $style, $thread;
$postdate = formatdate($wbbuserdata['dateformat'], $posts['posttime']);
$posttime = formatdate($wbbuserdata['timeformat'], $posts['posttime']);
if (!$posts['posttopic']) $posts['posttopic'] = "RE: ".$thread['topic'];
$posts['posttopic'] = htmlconverter(textwrap($posts['posttopic']));
$posts['username'] = htmlconverter(textwrap($posts['username'], 30));
if ($posts['posttime'] > $thread['lastvisit']) $newpost = 1;
else $newpost = 0;
eval("\$postbit = \"".$tpl->get("thread_postbitlist")."\";");
return $postbit;
}
/**
* calculates the depth of the threaded view
*
* @return void
*/
function sync() {
reset($this->list);
while (list($postid, $depth) = each($this->list)) $this->list[$postid] = $depth - $this->max;
}
}
if (checkmodpermissions()) $visible = '';
else $visible = "AND visible=1";
if (isset($_REQUEST['threadview'])) $threadview = intval($_REQUEST['threadview']);
else $threadview = $wbbuserdata['threadview'];
if (isset($_REQUEST['hilight'])) $hilight = urldecode($_REQUEST['hilight']);
else $hilight = '';
if (isset($_REQUEST['hilightuser'])) $hilightuser = intval($_REQUEST['hilightuser']);
else $hilightuser = 0;
if (!isset($_REQUEST['goto'])) $_REQUEST['goto'] = '';
if ($threadview == 1) $t = &new ThreadedThread($threadid);
else $t = &new FlatThread($threadid);
/* goto actions 1 */
if ($_REQUEST['goto'] == "lastpost") $t->lastpost();
if ($_REQUEST['goto'] == "nextnewest") $t->nextnewest();
if ($_REQUEST['goto'] == "nextoldest") $t->nextoldest();
/* threadvisit */
if ($board['lastvisit'] > $thread['lastvisit']) $thread['lastvisit'] = $board['lastvisit'];
if ($wbbuserdata['lastvisit'] > $thread['lastvisit']) $thread['lastvisit'] = $wbbuserdata['lastvisit'];
/* goto actions 2 */
if ($_REQUEST['goto'] == "firstnew") $t->firstnew($thread['lastvisit']);
if ($_REQUEST['goto'] == "firstnew_thread") $t->firstnew($wbbuserdata['lastvisit']);
if ($wbbuserdata['umaxposts']) $postsperpage = $wbbuserdata['umaxposts'];
elseif ($board['postsperpage']) $postsperpage = $board['postsperpage'];
else $postsperpage = $default_postsperpage;
$postorder = $board['postorder'];
if (isset($postid)) $t->gotoPost($postid);
$db->unbuffered_query("UPDATE bb".$n."_threads SET views=views+1 WHERE threadid='$threadid'", 1);
if ($wbbuserdata['userid'] && $thread['lastposttime'] > $thread['lastvisit']) $db->unbuffered_query("REPLACE INTO bb".$n."_threadvisit (threadid,userid,lastvisit) VALUES ('".$threadid."','".$wbbuserdata['userid']."','".time()."')", 1);
$boardnavcache = array();
if ($showboardjump == 1) $boardjump = makeboardjump($boardid);
$navbar = getNavbar($board['parentlist']);
eval("\$navbar .= \"".$tpl->get("navbar_board")."\";");
$postbit = $t->start();
$thread_poll = '';
if ($thread['pollid']) {
if (checkmodpermissions("m_can_edit_poll")) eval("\$mod_poll_edit = \"".$tpl->get("thread_poll_edit")."\";");
unset($votecheck);
$poll = $db->query_first("SELECT * FROM bb".$n."_polls WHERE pollid='$thread[pollid]'");
$poll['question'] = htmlconverter($poll['question']);
if ($poll['timeout'] == 0) $timeout = time() + 1;
else $timeout = $poll['starttime'] + $poll['timeout'] * 86400;
if ($_REQUEST['preresult'] != 1 && checkpermissions("can_vote_poll") == 1 && $timeout >= time()) {
if ($wbbuserdata['userid']) $votecheck = $db->query_first("SELECT id AS pollid FROM bb".$n."_votes WHERE id='$thread[pollid]' AND votemode=1 AND userid='$wbbuserdata[userid]'");
else $votecheck = $db->query_first("SELECT id AS pollid FROM bb".$n."_votes WHERE id='$thread[pollid]' AND votemode=1 AND ipaddress='$REMOTE_ADDR'");
}
// already voted; show result
if ($_REQUEST['preresult'] == 1 || $votecheck['pollid'] || !checkpermissions("can_vote_poll") || $timeout < time()) {
$votes = 0;
unset($polloption);
$totalvotes = 0;
$polloptions = array();
$result = $db->unbuffered_query("SELECT * FROM bb".$n."_polloptions WHERE pollid='$thread[pollid]' ORDER BY votes DESC");
while ($row = $db->fetch_array($result)) {
$totalvotes += $row['votes'];
$polloptions[] = $row;
}
$i = 1;
if (count($polloptions)) {
while (list($key, $row) = each($polloptions)) {
$row['polloption'] = htmlconverter(textwrap($row['polloption']));
if ($totalvotes) {
$percent_float = $row['votes'] * 100 / $totalvotes;
$percent = number_format($percent_float, 2);
$percent_int = floor($percent_float) * 3;
$percent_int += 1;
}
else $percent = $percent_int = 0;
eval("\$thread_poll_resultbit .= \"".$tpl->get("thread_poll_resultbit")."\";");
if ($i == 5) $i = 0;
$i++;
}
}
$lang->items['LANG_THREAD_POLL_VOTES'] = $lang->get("LANG_THREAD_POLL_VOTES", array('$totalvotes' => $totalvotes));
eval("\$thread_poll = \"".$tpl->get("thread_poll_result")."\";");
}
else {
if ($poll['choicecount'] > 1) $inputtype = "checkbox";
else $inputtype = "radio";
$result = $db->unbuffered_query("SELECT * FROM bb".$n."_polloptions WHERE pollid='$thread[pollid]' ORDER BY showorder ASC");
while ($row = $db->fetch_array($result)) {
$row['polloption'] = htmlconverter(textwrap($row['polloption']));
eval("\$thread_pollbit .= \"".$tpl->get("thread_pollbit")."\";");
}
eval("\$thread_poll = \"".$tpl->get("thread_poll")."\";");
}
}
if ($board['allowratings'] == 1) {
$colors = createGradient($style['gradientleft'], $style['gradientmiddle'], $style['gradientright']);
if ($thread['voted'] && $thread['voted'] >= $showvotes) $threadrating = threadrating($thread['votepoints'], $thread['voted']);
}
else $threadrating = '';
if ($board['closed'] == 0) eval("\$newthread = \"".$tpl->get("board_newthread")."\";");
if ($thread['closed'] != 0) eval("\$addreply = \"".$tpl->get("thread_closed")."\";");
elseif ($board['closed'] == 0) eval("\$addreply = \"".$tpl->get("thread_addreply")."\";");
/* Ähnliche Themen */
$threadtopic = addslashes($thread['topic']);
/* Ähnliche Themen Ende */
$thread['topic'] = htmlconverter(textwrap($thread['topic']));
if ($board['emailnotify'] == 1 && $board['countemails'] != 0) $db->unbuffered_query("UPDATE bb".$n."_subscribeboards SET countemails=0 WHERE userid = '".$wbbuserdata['userid']."' AND boardid = '".$boardid."'", 1);
if ($thread['emailnotify'] == 1 && $thread['countemails'] != 0) $db->unbuffered_query("UPDATE bb".$n."_subscribethreads SET countemails=0 WHERE userid = '".$wbbuserdata['userid']."' AND threadid = '".$threadid."'", 1);
/* Ähnlich Themen */
function GetAccessableForums() {
global $db, $n, $wbbuserdata, $boardcache;
if (!isset($boardcache) || !is_array($boardcache)) $boardcache = array();
$result = $db->query("SELECT boardid,boardorder,parentid,parentlist FROM bb".$n."_boards ORDER BY parentid ASC, boardorder ASC");
while ($row = $db->fetch_array($result)) {
$boardcache[$row['parentid']][$row['boardorder']][$row['boardid']] = $row;
}
$boardpermissions = getPermissions();
$boardids = '';
foreach ($boardcache as $key => $val) {
foreach ($val as $key2 => $val2) {
foreach ($val2 as $row) if ((!isset($boardpermissions[$row['boardid']]['can_view_board']) || $boardpermissions[$row['boardid']]['can_view_board'] != 0) && (!isset($boardpermissions[$row['boardid']]['can_enter_board']) || $boardpermissions[$row['boardid']]['can_enter_board'] != 0) && (!isset($boardpermissions[$row['boardid']]['can_read_thread']) || $boardpermissions[$row['boardid']]['can_read_thread'] != 0)) $boardids .= ",".$row['boardid'];
}
}
return $boardids;
}
$similar = $db->query("SELECT t.threadid, t.boardid, x.title, x.boardid, t.prefix, t.topic, t.starttime, t.starterid, t.starter, t.lastposttime, t.lastposterid, t.lastposter, t.replycount, t.views, t.attachments, t.closed, t.important, t.pollid FROM bb".$n."_threads t, bb".$n."_boards x LEFT JOIN bb".$n."_boards b ON (t.boardid=b.boardid) WHERE t.visible='1' AND t.closed <> 3 AND t.threadid <> $threadid AND b.password='' AND t.boardid=x.boardid AND t.boardid IN (0".GetAccessableForums().") AND t.topic LIKE '%$threadtopic%' ORDER BY t.lastposttime DESC LIMIT 0, 5;");
if($db->num_rows($similar)) {
$i = "0";
while ($row = $db->fetch_array($similar)) {
$i++;
$tdclass = getone($i, "tablea", "tableb");
$started = formatdate($wbbuserdata['dateformat'], $row['starttime'],1);
$started .= " <span class=\"time\">".formatdate($wbbuserdata['timeformat'], $row['starttime'])."</span>";
$lastreply = formatdate($wbbuserdata['dateformat'], $row['lastposttime'],1);
$lastreply .= " <span class=\"time\">".formatdate($wbbuserdata['timeformat'], $row['lastposttime'])."</span>";
if ($row['replycount'] >= 1000) $row['replycount'] = number_format($row['replycount'], 0, "", $lang->get("LANG_GLOBAL_THOUSANDS_SEP"));
if ($row['views'] >= 1000) $row['views'] = number_format($row['views'], 0, "", $lang->get("LANG_GLOBAL_THOUSANDS_SEP"));
if (strlen($row['topic']) > 60) $row['topic'] = substr($row['topic'], 0, 54).' [...]';
eval("\$similar_thread_bit .= \"".$tpl->get("thread_similarthread_bit")."\";");
}
eval("\$similar_thread = \"".$tpl->get("thread_similarthread")."\";");
}
/* Ähnliche Themen Ende */
eval("\$tpl->output(\"".$tpl->get("thread")."\");");
?> |
|
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Icebreaker3108: 15.04.05 02:26.
|
|
15.04.05 01:49 |
E-Mail
WWW
Finden
Als Freund hinzufügen
|
|
rellek
retired
Dabei seit: 16.01.04
Beiträge: 720
Themenstarter
|
|
Wenns so viele gibt, bei denen das Gerät sauber läuft, würd ich mir mal eine etwas andere Tonart angewöhnen, ok? :stinkt
Es handelt sich außerdem bei dir um einen Einbaufehler. Das müsste gehen:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
274:
275:
276:
277:
278:
279:
280:
281:
282:
283:
284:
285:
286:
287:
288:
289:
290:
291:
292:
293:
294:
295:
296:
297:
298:
299:
300:
301:
302:
303:
304:
305:
306:
307:
308:
309:
310:
311:
312:
313:
314:
315:
316:
317:
318:
319:
320:
321:
322:
323:
324:
325:
326:
327:
328:
329:
330:
331:
332:
333:
334:
335:
336:
337:
338:
339:
340:
341:
342:
343:
344:
345:
346:
347:
348:
349:
350:
351:
352:
353:
354:
355:
356:
357:
358:
359:
360:
361:
362:
363:
364:
365:
366:
367:
368:
369:
370:
371:
372:
373:
374:
375:
376:
377:
378:
379:
380:
381:
382:
383:
384:
385:
386:
387:
388:
389:
390:
391:
392:
393:
394:
395:
396:
397:
398:
399:
400:
401:
402:
403:
404:
405:
406:
407:
408:
409:
410:
411:
412:
413:
414:
415:
416:
417:
418:
419:
420:
421:
422:
423:
424:
425:
426:
427:
428:
429:
430:
431:
432:
433:
434:
435:
436:
437:
438:
439:
440:
441:
442:
443:
444:
445:
446:
447:
448:
449:
450:
451:
452:
453:
454:
455:
456:
457:
458:
459:
460:
461:
462:
463:
464:
465:
466:
467:
468:
469:
470:
471:
472:
473:
474:
475:
476:
477:
478:
479:
480:
481:
482:
483:
484:
485:
486:
487:
488:
489:
490:
491:
492:
493:
494:
495:
496:
497:
498:
499:
500:
501:
502:
503:
504:
505:
506:
507:
508:
509:
510:
511:
512:
513:
514:
515:
516:
517:
518:
519:
520:
521:
522:
523:
524:
525:
526:
527:
528:
529:
530:
531:
532:
533:
534:
535:
536:
537:
538:
539:
540:
541:
542:
543:
544:
545:
546:
547:
548:
549:
550:
551:
552:
553:
554:
555:
556:
557:
558:
559:
560:
561:
562:
563:
564:
565:
566:
567:
568:
569:
570:
571:
572:
573:
574:
575:
576:
577:
578:
579:
580:
581:
582:
583:
584:
585:
586:
587:
588:
589:
590:
591:
592:
593:
594:
595:
596:
597:
598:
599:
600:
601:
602:
603:
604:
605:
606:
607:
608:
609:
610:
611:
612:
613:
614:
615:
616:
617:
618:
619:
620:
621:
622:
623:
624:
625:
626:
627:
628:
629:
630:
631:
632:
633:
634:
635:
636:
637:
638:
639:
640:
641:
642:
643:
644:
645:
646:
647:
648:
649:
650:
651:
652:
653:
654:
655:
656:
657:
658:
659:
660:
661:
662:
663:
664:
665:
666:
667:
668:
669:
670:
671:
672:
673:
674:
675:
676:
677:
678:
679:
680:
681:
682:
683:
684:
685:
686:
687:
688:
689:
690:
691:
692:
693:
694:
695:
696:
697:
698:
699:
700:
701:
702:
703:
704:
705:
706:
707:
708:
709:
710:
711:
712:
713:
714:
715:
716:
717:
718:
719:
720:
721:
722:
723:
724:
725:
726:
727:
728:
729:
730:
731:
732:
733:
734:
735:
736:
737:
738:
739:
740:
741:
742:
743:
744:
745:
746:
747:
748:
749:
750:
751:
752:
753:
754:
755:
756:
757:
758:
759:
760:
761:
762:
763:
764:
765:
766:
767:
768:
769:
770:
771:
772:
773:
774:
775:
776:
777:
778:
779:
780:
781:
782:
783:
784:
785:
786:
787:
788:
789:
790:
791:
792:
793:
794:
795:
796:
797:
798:
799:
800:
801:
802:
803:
804:
805:
806:
807:
808:
809:
810:
811:
812:
813:
814:
815:
816:
817:
818:
819:
820:
821:
822:
823:
824:
825:
826:
827:
828:
829:
830:
831:
832:
833:
834:
835:
836:
837:
838:
839:
840:
841:
842:
843:
844:
845:
846:
847:
848:
849:
850:
851:
852:
853:
854:
855:
856:
857:
858:
859:
860:
861:
862:
863:
864:
865:
866:
867:
868:
869:
870:
871:
872:
873:
874:
875:
876:
877:
878:
879:
880:
881:
882:
883:
884:
885:
886:
887:
888:
889:
890:
891:
892:
893:
894:
895:
896:
897:
898:
899:
900:
901:
902:
903:
904:
905:
906:
907:
908:
909:
910:
911:
912:
913:
914:
915:
916:
917:
918:
919:
920:
921:
922:
923:
924:
925:
926:
927:
928:
929:
930:
931:
932:
933:
934:
935:
936:
937:
938:
939:
940:
941:
942:
943:
944:
945:
946:
947:
948:
949:
950:
951:
952:
953:
954:
955:
956:
957:
958:
959:
960:
961:
962:
963:
964:
965:
966:
967:
968:
969:
970:
971:
972:
973:
974:
975:
976:
977:
978:
979:
980:
981:
982:
983:
984:
985:
986:
987:
988:
989:
990:
991:
992:
993:
994:
995:
996:
997:
998:
999:
1000:
1001:
1002:
1003:
1004:
1005:
1006:
1007:
1008:
1009:
1010:
1011:
1012:
1013:
1014:
1015:
1016:
1017:
1018:
1019:
1020:
1021:
1022:
1023:
1024:
1025:
|
<?php
// ************************************************************************************//
// * WoltLab Burning Board 2
// ************************************************************************************//
// * Copyright (c) 2001-2004 WoltLab GmbH
// * Web http://www.woltlab.de/
// * License http://www.woltlab.de/products/burning_board/license_en.php
// * http://www.woltlab.de/products/burning_board/license.php
// ************************************************************************************//
// * WoltLab Burning Board 2 is NOT free software.
// * You may not redistribute this package or any of it's files.
// ************************************************************************************//
// * $Date: 2004-11-17 13:23:39 +0100 (Wed, 17 Nov 2004) $
// * $Author: Burntime $
// * $Rev: 1496 $
// ************************************************************************************//
$filename = 'thread.php';
require('./global.php');
require('./acp/lib/class_parse.php');
$lang->load('THREAD,MEMBERS');
if ((!isset($postid) && !isset($threadid)) || $thread['closed'] == 3) error($lang->get("LANG_GLOBAL_ERROR_FALSELINK", array('$adminmail' => $adminmail)));
if (!checkpermissions("can_read_thread")) access_error();
/** Thread Class **/
class Thread {
/**
* @var integer threadid
*/
var $threadid = 0;
/**
* @var string pagelink
*/
var $pagelink = "";
/**
* @var integer page
*/
var $page = 0;
/**
* @var integer pages
*/
var $pages = 0;
/**
* @var string postids
*/
var $postids = "";
/**
* @var string orderby
*/
var $orderBy = "";
/**
* @var array userfieldcache
*/
var $userfieldcache = array();
/**
* @var object parse
*/
var $parse;
/**
* @var array attachmentArray
*/
var $attachmentArray = array();
/**
* @var boolean readAttachments
*/
var $readAttachments = false;
/**
* parse a message and generate postbit
*
* @param array posts
* @param integer count
* @param integer indentwidth
*
* @return string postbit
*/
function makePostBit($posts, $count, $indentwidth = 0) {
global $guthaben;
global $thread, $board, $tpl, $wbbuserdata, $style, $lang, $session, $userratings, $showuserratinginthread, $showuserlevels, $showonlineinthread, $useronlinetimeout, $showregdateinthread, $showuserfieldsinthread, $showgenderinthread, $showavatar, $_GET, $showthreadstarter, $showuserpostsinthread, $allowsigsmilies, $allowsightml, $allowsigbbcode, $max_sig_image, $authormarking, $picmaxwidth, $picmaxheight, $allowflashavatar, $thumbnailsperrow, $SID_ARG_1ST, $SID_ARG_2ND, $SID_ARG_2ND_UN;
if ($this->userfieldcache) reset($this->userfieldcache);
$userrating = '';
$signature = '';
$lastedit = '';
$user_online = '';
$userfields = '';
$useravatar = '';
$rankimages = '';
$setvisible = '';
$userlevel = '';
$posts['username'] = htmlconverter($posts['username']);
$username = $posts['username'];
/** mod / admin option -> set visible post **/
if ($posts['visible'] == 0 && $posts['posttime'] != $thread['starttime']) $invisible = 1;
else $invisible = 0;
$tdclass = getone($count, 'tableb', 'tablea');
// use postcache if possible
if ($posts['cache']) $posts['message'] = $this->parse->parseCache($posts['cache']);
else $posts['message'] = $this->parse->doparse($posts['message'], $posts['allowsmilies'], $posts['allowhtml'], $posts['allowbbcode'], $posts['allowimages']);
$posts['posttopic'] = htmlconverter(textwrap($posts['posttopic']));
if ($posts['iconid']) $posticon = makeimgtag($posts['iconpath'], getlangvar($posts['icontitle'], $lang), 0);
else $posticon = '';
if ($posts['posttime'] > $thread['lastvisit']) $newpost = 1;
else $newpost = 0;
$postdate = formatdate($wbbuserdata['dateformat'], $posts['posttime'], 1);
$posttime = formatdate($wbbuserdata['timeformat'], $posts['posttime']);
// show attachments
$attachments = '';
$attachment_thumbnailCount = 0;
$attachmentbit = '';
$attachmentbit_img = '';
$attachmentbit_img_small = '';
$attachmentbit_img_thumbnails = '';
if (isset($this->attachmentArray[$posts['postid']]) && count($this->attachmentArray[$posts['postid']])) {
unset($LANG_THREAD_ATTACHMENT_IMAGE_THUMBNAIL);
unset($LANG_THREAD_ATTACHMENT_IMAGE_SMALL);
unset($LANG_THREAD_ATTACHMENT_IMAGE);
unset($LANG_THREAD_ATTACHMENT);
foreach ($this->attachmentArray[$posts['postid']] as $attachment) {
$attachment['attachmentextension'] = htmlconverter($attachment['attachmentextension']);
$attachment['attachmentname'] = htmlconverter($attachment['attachmentname']);
// attachment is an image, display it directly
if (checkpermissions('can_download_attachments') == 1 && $wbbuserdata['showimages'] == 1 && $wbbuserdata['can_download_attachments'] == 1 && ($attachment['attachmentextension'] == 'gif' || $attachment['attachmentextension'] == 'jpg' || $attachment['attachmentextension'] == 'jpeg' || $attachment['attachmentextension'] == 'png')) {
if ($attachment['thumbnailextension'] != '') {
$attachment_thumbnailCount++;
if ($attachment_thumbnailCount && ($attachment_thumbnailCount % $thumbnailsperrow) == 0) $thumbnailNewline = true;
else $thumbnailNewline = false;
if (!isset($LANG_THREAD_ATTACHMENT_IMAGE_THUMBNAIL)) $LANG_THREAD_ATTACHMENT_IMAGE_THUMBNAIL = $lang->get("LANG_THREAD_ATTACHMENT_IMAGE_SMALL", array('$username' => $username));
else $LANG_THREAD_ATTACHMENT_IMAGE_THUMBNAIL = $lang->get("LANG_THREAD_ATTACHMENTS_IMAGE_SMALL", array('$username' => $username));
eval("\$attachmentbit_img_thumbnails .= \"".$tpl->get("thread_attachmentbit_show_thumbnail")."\";");
}
else {
$imgsize = @getimagesize("./attachments/attachment-$attachment[attachmentid].$attachment[attachmentextension]");
if (($picmaxwidth != 0 && $imgsize[0] > $picmaxwidth) || ($picmaxheight != 0 && $imgsize[1] > $picmaxheight)) {
if ($picmaxwidth != 0) $div1 = $picmaxwidth / $imgsize[0];
else $div1 = 1;
if ($picmaxheight != 0) $div2 = $picmaxheight / $imgsize[1];
else $div2 = 1;
if ($div1 < $div2) {
$attachment['imgwidth'] = $picmaxwidth;
$attachment['imgheight'] = round($imgsize[1] * $div1);
}
else {
$attachment['imgheight'] = $picmaxheight;
$attachment['imgwidth'] = round($imgsize[0] * $div2);
}
if (!isset($LANG_THREAD_ATTACHMENT_IMAGE_SMALL)) $LANG_THREAD_ATTACHMENT_IMAGE_SMALL = $lang->get("LANG_THREAD_ATTACHMENT_IMAGE_SMALL", array('$username' => $username));
else $LANG_THREAD_ATTACHMENT_IMAGE_SMALL = $lang->get("LANG_THREAD_ATTACHMENTS_IMAGE_SMALL", array('$username' => $username));
eval("\$attachmentbit_img_small .= \"".$tpl->get("thread_attachmentbit_show_small")."\";");
}
else {
if (!isset($LANG_THREAD_ATTACHMENT_IMAGE)) $LANG_THREAD_ATTACHMENT_IMAGE = $lang->get("LANG_THREAD_ATTACHMENT_IMAGE", array('$username' => $username));
else $LANG_THREAD_ATTACHMENT_IMAGE = $lang->get("LANG_THREAD_ATTACHMENTS_IMAGE", array('$username' => $username));
eval("\$attachmentbit_img .= \"".$tpl->get("thread_attachmentbit_show")."\";");
}
}
}
else {
if (!file_exists($style['imagefolder']."/filetypes/".$attachment['attachmentextension'].".gif")) $extensionimage = "unknown";
else $extensionimage = $attachment['attachmentextension'];
$attachment['attachmentsize'] = ceil($attachment['attachmentsize'] / 1024);
if ($attachment['counter'] >= 1000) $attachment['counter'] = number_format($attachment['counter'], 0, "", $lang->get("LANG_GLOBAL_THOUSANDS_SEP"));
$LANG_THREAD_ATTACHMENT_INFO = $lang->get("LANG_THREAD_ATTACHMENT_INFO", array('$attachmentsize' => $attachment['attachmentsize'], '$counter' => $attachment['counter']));
if (!isset($LANG_THREAD_ATTACHMENT)) $LANG_THREAD_ATTACHMENT = $lang->get('LANG_THREAD_ATTACHMENT');
else $LANG_THREAD_ATTACHMENT = $lang->get('LANG_THREAD_ATTACHMENTS');
eval("\$attachmentbit .= \"".$tpl->get("thread_attachmentbit")."\";");
}
}
eval("\$attachments = \"".$tpl->get("thread_attachments")."\";");
}
if ($posts['editorid']) {
$editdate = formatdate($wbbuserdata['dateformat'], $posts['edittime'], 1);
$edittime = formatdate($wbbuserdata['timeformat'], $posts['edittime']);
$posts['editor'] = htmlconverter($posts['editor']);
$LANG_THREAD_EDITOR = $lang->get("LANG_THREAD_EDITOR", array('$editcount' => $posts['editcount'], '$editor' => $posts['editor'], '$editdate' => $editdate, '$edittime' => $edittime));
}
if ($posts['userid']) {
global $db, $n;
list($xa_rekorde) = $db->query_first("SELECT COUNT(*) FROM bb".$n."_arcadegames WHERE championid_1 = '$posts[userid]' AND active = '1'");
if($xa_rekorde) $xait = "<br /><a href=\"./proarcade.php?userid=$posts[userid]$SID_ARG_2ND\">$posts[username] hält bei xArcade<br /><b>$xa_rekorde</b> Rekorde</a><br />";
else $xait = '';
$posts['homepage'] = htmlconverter($posts['homepage']);
$posts['email'] = getASCIICodeString($posts['email']);
$rankimages = formatRI($posts['rankimages']);
if ($posts['title']) $posts['ranktitle'] = htmlconverter($posts['title']);
else $posts['ranktitle'] = getlangvar($posts['ranktitle'], $lang);
/* #### sternzeichen Hack by det1706 #### */
switch($posts[sternzeichen]) {
case 1: eval ("\$sternzeichen = \"".$tpl->get("profile_sternzeichen1")."\";"); break;
case 2: eval ("\$sternzeichen = \"".$tpl->get("profile_sternzeichen2")."\";"); break;
case 3: eval ("\$sternzeichen = \"".$tpl->get("profile_sternzeichen3")."\";"); break;
case 4: eval ("\$sternzeichen = \"".$tpl->get("profile_sternzeichen4")."\";"); break;
case 5: eval ("\$sternzeichen = \"".$tpl->get("profile_sternzeichen5")."\";"); break;
case 6: eval ("\$sternzeichen = \"".$tpl->get("profile_sternzeichen6")."\";"); break;
case 7: eval ("\$sternzeichen = \"".$tpl->get("profile_sternzeichen7")."\";"); break;
case 8: eval ("\$sternzeichen = \"".$tpl->get("profile_sternzeichen8")."\";"); break;
case 9: eval ("\$sternzeichen = \"".$tpl->get("profile_sternzeichen9")."\";"); break;
case 10: eval ("\$sternzeichen = \"".$tpl->get("profile_sternzeichen10")."\";"); break;
case 11: eval ("\$sternzeichen = \"".$tpl->get("profile_sternzeichen11")."\";"); break;
case 12: eval ("\$sternzeichen = \"".$tpl->get("profile_sternzeichen12")."\";"); break;
default: eval ("\$sternzeichen = \"".$tpl->get("profile_nosternzeichen")."\";"); break;
}
/* #### sternzeichen Hack by det1706 #### */
if ($userratings == 1 && $showuserratinginthread == 1) $userrating = userrating($posts['ratingcount'], $posts['ratingpoints'], $posts['userid']);
if ($showuserlevels == 1) $userlevel = userlevel($posts['userposts'], $posts['regdate']);
if ($showonlineinthread == 1) {
if (($posts['invisible'] == 0 || $wbbuserdata['a_can_view_ghosts'] == 1) && $posts['lastactivity'] >= time() - $useronlinetimeout * 60) {
$user_online = 1;
$LANG_MEMBERS_USERONLINE = $lang->get("LANG_MEMBERS_USERONLINE", array('$username' => $username));
}
else {
$user_online = 0;
$LANG_MEMBERS_USERONLINE = $lang->get("LANG_MEMBERS_USEROFFLINE", array('$username' => $username));
}
}
if ($showregdateinthread == 1) $posts['regdate'] = formatdate($wbbuserdata['dateformat'], $posts['regdate']);
if ($showuserfieldsinthread == 1 && is_array($this->userfieldcache) && count($this->userfieldcache)) {
while (list($key, $val) = each($this->userfieldcache)) {
$fieldcontent = textwrap($posts["field".$val['profilefieldid']], 20);
if ($fieldcontent && $fieldcontent != "0000-00-00") {
if ($val['fieldtype'] == "multiselect") $fieldcontent = str_replace("\n", "; ", $fieldcontent);
elseif ($val['fieldtype'] == "date") {
$row_datearray = explode("-", $fieldcontent);
if ($row_datearray[0] == "0000") $fieldcontent = $row_datearray[2].".".$row_datearray[1].".";
else $fieldcontent = $row_datearray[2].".".$row_datearray[1].".".$row_datearray[0];
}
$fieldcontent = htmlconverter($fieldcontent);
eval("\$userfields .= \"".$tpl->get("thread_userfields")."\";");
}
}
}
if ($showgenderinthread == 0) $posts['gender'] = 0;
if ($posts['gender'] == 1) $LANG_THREAD_MALE = $lang->get("LANG_THREAD_MALE", array('$username' => $username));
if ($posts['gender'] == 2) $LANG_THREAD_FEMALE = $lang->get("LANG_THREAD_FEMALE", array('$username' => $username));
if ($posts['showemail'] == 1 || $posts['usercanemail'] == 1) $LANG_MEMBERS_SENDEMAIL = $lang->get("LANG_MEMBERS_SENDEMAIL", array('$username' => $username));
if ($posts['homepage']) $LANG_MEMBERS_HOMEPAGE = $lang->get("LANG_MEMBERS_HOMEPAGE", array('$username' => $username));
$LANG_MEMBERS_SEARCH = $lang->get("LANG_MEMBERS_SEARCH", array('$username' => $username));
$LANG_MEMBERS_BUDDY = $lang->get("LANG_MEMBERS_BUDDY", array('$username' => $username));
if ($posts['receivepm'] == 1 && $wbbuserdata['can_use_pms'] == 1) $LANG_MEMBERS_PM = $lang->get("LANG_MEMBERS_PM", array('$username' => $username));
if ($posts['icq']) $LANG_MEMBERS_ICQ = $lang->get("LANG_MEMBERS_ICQ", array('$username' => $username));
if ($posts['aim']) {
$posts['aim'] = htmlconverter($posts['aim']);
$aim = $posts['aim'];
$LANG_MEMBERS_AIM = $lang->get("LANG_MEMBERS_AIM", array('$username' => $username, '$aim' => $aim));
}
if ($posts['yim']) {
$posts['yim'] = htmlconverter($posts['yim']);
$yim = $posts['yim'];
$LANG_MEMBERS_YIM = $lang->get("LANG_MEMBERS_YIM", array('$username' => $username, '$yim' => $yim));
}
if ($posts['msn']) {
$posts['msn'] = htmlconverter($posts['msn']);
$LANG_MEMBERS_MSN = $lang->get("LANG_MEMBERS_MSN", array('$username' => $username));
}
if ($posts['avatarid'] && $showavatar == 1 && $wbbuserdata['showavatars'] == 1) {
$avatarname = "images/avatars/avatar-$posts[avatarid].".htmlconverter($posts['avatarextension']);
$avatarwidth = $posts['width'];
$avatarheight = $posts['height'];
if ($posts['avatarextension'] == "swf" && $allowflashavatar == 1) eval("\$useravatar = \"".$tpl->get("avatar_flash")."\";");
elseif ($posts['avatarextension'] != "swf") eval("\$useravatar = \"".$tpl->get("avatar_image")."\";");
}
if ($authormarking == 1 && $posts['useronlinemarking'] != '') $posts['username'] = sprintf($posts['useronlinemarking'], $posts['username']);
if (isset($_GET['hilightuser']) && $_GET['hilightuser'] == $posts['userid']) $posts['username'] = "<span class=\"highlight\">".$posts['username']."</span>";
if ($showthreadstarter == 1 && $thread['starterid'] == $posts['userid'] && $thread['starttime'] != $posts['posttime']) {
$threadstarter = 1;
$LANG_THREAD_THREADSTARTER_ALT = $lang->get("LANG_THREAD_THREADSTARTER_ALT", array('$starter' => $thread['starter']));
}
else $threadstarter = 0;
if ($posts['showsignature'] == 1 && !$posts['disablesignature'] && $wbbuserdata['showsignatures'] == 1 && $posts['signature']) {
$posts['signature'] = $this->parse->doparse($posts['signature'], $posts['allowsigsmilies'], $posts['allowsightml'], $posts['allowsigbbcode'], $posts['allowsigimages']);
eval("\$signature = \"".$tpl->get("thread_signature")."\";");
}
if ($showuserpostsinthread == 1 && $posts['userposts'] >= 1000) $posts['userposts'] = number_format($posts['userposts'], 0, "", $lang->get("LANG_GLOBAL_THOUSANDS_SEP"));
}
/* Guthaben A */
$waehrung = $guthaben['waehrung'];
$user_guthaben = number_format($posts['guthaben'],0,",",".");
/* Guthaben E */
eval("\$postbit = \"".$tpl->get("thread_postbit")."\";");
return $postbit;
}
/**
* jump to last post
*
* @return void
*/
function lastpost() {
global $visible, $SID_ARG_2ND_UN, $db, $n, $url2board;
$result = $db->query_first("SELECT postid FROM bb".$n."_posts WHERE threadid = '".$this->threadid."' $visible ORDER BY posttime DESC", 1);
header("Location: thread.php?postid=".$result['postid'].$SID_ARG_2ND_UN."#post$result[postid]");
exit;
}
/**
* jump to first new post
*
* @param integer lastvisit
*
* @return void
*/
function firstnew($lastvisit) {
global $visible, $db, $n, $SID_ARG_2ND_UN, $threadid, $url2board;
$result = $db->query_first("SELECT postid FROM bb".$n."_posts WHERE threadid='".$this->threadid."' AND posttime>'".$lastvisit."' $visible ORDER BY posttime ASC", 1);
if ($result['postid']) header("Location: thread.php?postid=".$result['postid'].$SID_ARG_2ND_UN."#post$result[postid]");
else header("Location: thread.php?goto=lastpost&threadid=".$threadid.$SID_ARG_2ND_UN);
exit;
}
/**
* jump to next newest thread
*
* @return void
*/
function nextnewest() {
global $db, $n, $thread, $boardid, $tpl, $lang, $threadid;
$result = $db->query_first("SELECT threadid FROM bb".$n."_threads WHERE visible = 1 AND lastposttime>'$thread[lastposttime]' AND closed <> 3 AND boardid = '$boardid' ORDER BY lastposttime ASC", 1);
if (!$result['threadid']) error($lang->get("LANG_THREAD_ERROR_NONEXTNEWEST"));
$threadid = $result['threadid'];
$this->threadid = $threadid;
$thread = $db->query_first("SELECT * FROM bb".$n."_threads WHERE threadid = '".$this->threadid."'");
}
/**
* jump to next oldest thread
*
* @return void
*/
function nextoldest() {
global $db, $n, $thread, $boardid, $tpl, $lang, $threadid;
$result = $db->query_first("SELECT threadid FROM bb".$n."_threads WHERE visible = 1 AND lastposttime<'$thread[lastposttime]' AND closed <> 3 AND boardid = '$boardid' ORDER BY lastposttime DESC", 1);
if (!$result['threadid']) error($lang->get("LANG_THREAD_ERROR_NONEXTOLDEST"));
$threadid = $result['threadid'];
$this->threadid = $threadid;
$thread = $db->query_first("SELECT * FROM bb".$n."_threads WHERE threadid = '$threadid'");
}
/**
* create links to further pages
*
* @return void
*/
function makePagelink() {
global $SID_ARG_2ND, $threadview, $hilight, $hilightuser, $showpagelinks;
$this->pagelink = makepagelink("thread.php?threadid=".$this->threadid."&threadview=$threadview&hilight=".urlencode($hilight)."&hilightuser=$hilightuser".$SID_ARG_2ND, $this->page, $this->pages, $showpagelinks - 1);
}
/**
* read post information from database
*
* @return resource result
*/
function readPosts() {
global $docensor, $board, $wbbuserdata, $hilight, $usecode, $showuserfieldsinthread, $db, $n, $showavatar, $authormarking, $lang;
$this->parse = &new parse($docensor, 75, $wbbuserdata['showimages'], $hilight, $usecode);
if ($this->readAttachments) {
$result = $db->unbuffered_query("SELECT postid, attachmentid, attachmentname, attachmentextension, attachmentsize, counter, thumbnailextension FROM bb".$n."_attachments WHERE postid IN (0".$this->postids.") ORDER BY uploadtime");
while ($row = $db->fetch_array($result)) {
$this->attachmentArray[$row['postid']][$row['attachmentid']] = $row;
}
}
if ($showuserfieldsinthread == 1) {
$userfields = ", uf.*";
$userfieldsjoin = "LEFT JOIN bb".$n."_userfields uf ON (uf.userid=p.userid)";
$result = $db->unbuffered_query("SELECT profilefieldid, title, fieldtype FROM bb".$n."_profilefields WHERE showinthread=1".(($wbbuserdata['a_can_view_hidden'] == 0) ? (" AND hidden=0") : (""))." ORDER BY fieldorder ASC");
while ($row = $db->fetch_array($result)) {
$row['title'] = getlangvar($row['title'], $lang);
$this->userfieldcache[] = $row;
}
}
else {
$userfields = '';
$userfieldsjoin = '';
}
if ($showavatar == 1) {
$avatar = ", av.avatarid, av.avatarextension, av.width, av.height";
$avatarjoin = "LEFT JOIN bb".$n."_avatars av ON (u.avatarid=av.avatarid)";
}
else {
$avatar = '';
$avatarjoin = '';
}
if ($authormarking == 1) {
$marking = ", g.useronlinemarking";
$markingjoin = "LEFT JOIN bb".$n."_groups g ON (u.useronlinegroupid=g.groupid)";
}
else {
$marking = '';
$markingjoin = '';
}
$result = $db->query("SELECT p.*, pc.cache,
u.userposts, u.regdate, u.signature, u.email, u.homepage, u.icq, u.aim, u.yim, u.msn, u.showemail, u.receivepm, u.usercanemail, u.ratingcount, u.ratingpoints, u.gender, u.invisible, u.title, u.sternzeichen, u.lastactivity, u.allowsigsmilies, u.allowsightml, u.allowsigbbcode, u.allowsigimages, u.disablesignature, u.guthaben,
r.ranktitle, r.rankimages,
i.iconpath, i.icontitle
$userfields
$avatar
$marking
FROM bb".$n."_posts p
LEFT JOIN bb".$n."_users u USING (userid)
LEFT JOIN bb".$n."_ranks r USING (rankid)
LEFT JOIN bb".$n."_icons i ON (p.iconid=i.iconid)
LEFT JOIN bb".$n."_postcache pc ON (p.postid=pc.postid)
$userfieldsjoin
$avatarjoin
$markingjoin
WHERE p.postid IN (0".$this->postids.")".$this->orderBy);
return $result;
}
}
/** FlatThread Class **/
class FlatThread extends Thread {
/**
* constructor
*
* @param integer threadid
*/
function FlatThread($threadid) {
$this->threadid = $threadid;
}
/**
* get and stores the pagenumber of a certain message
*
* @param integer postid
*
* @return void
*/
function gotoPost($postid) {
global $db, $n, $visible, $postorder, $postsperpage, $_GET;
if ($postorder == 0) $result = $db->query_first("SELECT COUNT(*) AS posts FROM bb".$n."_posts WHERE threadid='".$this->threadid."' AND postid<='$postid' $visible");
else $result = $db->query_first("SELECT COUNT(*) AS posts FROM bb".$n."_posts WHERE threadid='$threadid' AND postid>='$postid' $visible");
$_GET['page'] = ceil($result['posts'] / $postsperpage);
}
/**
* parse messages and returns complete postbit
*
* @return string postbit
*/
function start() {
global $postorder, $db;
$this->getPostIds();
$this->orderBy = "ORDER BY p.posttime ".(($postorder) ? ("DESC") : ("ASC"));
$count = 0;
$postbit = '';
$result = $this->readPosts();
while ($row = $db->fetch_array($result)) $postbit .= $this->makePostBit($row, $count++);
return $postbit;
}
/**
* get and stores the postids of the current page
*
* @return void
*/
function getPostIds() {
global $visible, $db, $n, $_GET, $postsperpage, $postorder, $thread;
$postcount = $thread['replycount'] + 1;
if (isset($_GET['page'])) {
$this->page = intval($_GET['page']);
if ($this->page == 0) $this->page = 1;
}
else $this->page = 1;
$this->pages = ceil($postcount / $postsperpage);
if ($this->pages > 1) $this->makePagelink();
$result = $db->unbuffered_query("SELECT postid, attachments FROM bb".$n."_posts WHERE threadid = '".$this->threadid."' $visible ORDER BY posttime ".(($postorder) ? ("DESC") : ("ASC")), 0, $postsperpage, $postsperpage * ($this->page - 1));
while ($row = $db->fetch_array($result)) {
$this->postids .= ",".$row['postid'];
if ($row['attachments']) $this->readAttachments = true;
}
}
}
/** ThreadedThread Class **/
class ThreadedThread extends Thread {
/**
* @var integer offset
*/
var $offset = 0;
/**
* @var integer offset2
*/
var $offset2 = 0;
/**
* @var array cache
*/
var $cache = array();
/**
* @var array list
*/
var $list = array();
/**
* @var integer max
*/
var $max = -1;
/**
* @var integer total
*/
var $total = 0;
/**
* @var integer cout
*/
var $count = 0;
/**
* @var string postbitlist
*/
var $postbitlist = '';
/**
* constructor
*
* @param integer threadid
*/
function ThreadedThread($threadid) {
$this->threadid = $threadid;
}
/**
* get and stores the pagenumber of a certain message
*
* @param integer postid
*
* @return void
*/
function gotoPost($postid) {
global $_GET, $postsperpage, $db, $n, $visible;
$result = $db->query("SELECT postid, parentpostid, attachments FROM bb".$n."_posts WHERE threadid='".$this->threadid."' $visible ORDER BY posttime ASC");
$this->total = $db->num_rows($result);
while ($row = $db->fetch_array($result)) {
$this->cache[$row['parentpostid']][$row['postid']] = 1;
if ($row['attachments']) $this->readAttachments = true;
}
$this->countPosts($postid);
$_GET['page'] = ceil($this->count / $postsperpage);
}
/**
* get and stores the number of a certain message in threaded view
*
* @param integer postid
* @param integer count
* @param integer parentid
*
* @return void
*/
function countPosts($finalpostid, $count = 0, $parentid = 0) {
if (!isset($this->cache[$parentid])) return $count;
reset($this->cache[$parentid]);
while (list($postid, ) = each($this->cache[$parentid])) {
$count++;
if ($postid == $finalpostid) {
$this->count = $count;
break;
}
$count = $this->countPosts($finalpostid, $count, $postid);
}
return $count;
}
/**
* parse messages and returns complete postbit
*
* @return string postbit
*/
function start() {
global $db, $n, $postsperpage, $_GET, $visible;
if (isset($_GET['page'])) {
$this->page = intval($_GET['page']);
if ($this->page == 0) $this->page = 1;
}
else $this->page = 1;
$this->offset = $postsperpage * ($this->page - 1);
$this->offset2 = $this->offset + $postsperpage;
if (count($this->cache) == 0) {
$result = $db->query("SELECT postid, parentpostid, attachments FROM bb".$n."_posts WHERE threadid='".$this->threadid."' $visible ORDER BY posttime ASC");
$this->total = $db->num_rows($result);
while ($row = $db->fetch_array($result)) {
$this->cache[$row['parentpostid']][$row['postid']] = 1;
if ($row['attachments']) $this->readAttachments = true;
}
}
$this->pages = ceil($this->total / $postsperpage);
if ($this->pages > 1) $this->makePagelink();
reset($this->cache);
$this->generate();
if ($this->max > 0) $this->sync();
$result = $this->readPosts();
while ($posts = $db->fetch_array($result)) {
$temp = $this->list[$posts['postid']];
$this->list[$posts['postid']] = $posts;
$this->list[$posts['postid']]['depth'] = $temp;
}
$count = 0;
$postbit = '';
reset($this->list);
while (list($postid, ) = each($this->list)) {
$postbit .= $this->makePostBit($this->list[$postid], $count++, $this->list[$postid]['depth'] * 15);
$this->postbitlist .= $this->makePostBitList($this->list[$postid], $this->list[$postid]['depth'] * 15);
}
return $postbit;
}
/**
* calculates the depth of the threaded view
*
* @param integer parentid
* @param integer count
* @param integer depth
*
* @return integer count
*/
function generate($parentid = 0, $count = 0, $depth = 0) {
if (!isset($this->cache[$parentid])) return $count;
reset($this->cache[$parentid]);
while (list($postid, ) = each($this->cache[$parentid])) {
if ($count >= $this->offset && $count < $this->offset2) {
if ($this->max == -1) $this->max = $depth;
if ($depth < $this->max) $this->max = $depth;
$this->list[$postid] = $depth;
$this->postids .= ",".$postid;
}
$count++;
$count = $this->generate($postid, $count, $depth + 1);
}
return $count;
}
/**
* generates a postlist
*
* @param array posts
* @param integer imgwidth
*
* @return string postlist
*/
function makePostBitList($posts, $imgwidth = 0) {
global $tpl, $wbbuserdata, $lang, $SID_ARG_1ST, $SID_ARG_2ND, $SID_ARG_2ND_UN, $style, $thread;
$postdate = formatdate($wbbuserdata['dateformat'], $posts['posttime']);
$posttime = formatdate($wbbuserdata['timeformat'], $posts['posttime']);
if (!$posts['posttopic']) $posts['posttopic'] = "RE: ".$thread['topic'];
$posts['posttopic'] = htmlconverter(textwrap($posts['posttopic']));
$posts['username'] = htmlconverter(textwrap($posts['username'], 30));
if ($posts['posttime'] > $thread['lastvisit']) $newpost = 1;
else $newpost = 0;
eval("\$postbit = \"".$tpl->get("thread_postbitlist")."\";");
return $postbit;
}
/**
* calculates the depth of the threaded view
*
* @return void
*/
function sync() {
reset($this->list);
while (list($postid, $depth) = each($this->list)) $this->list[$postid] = $depth - $this->max;
}
}
if (checkmodpermissions()) $visible = '';
else $visible = "AND visible=1";
if (isset($_REQUEST['threadview'])) $threadview = intval($_REQUEST['threadview']);
else $threadview = $wbbuserdata['threadview'];
if (isset($_REQUEST['hilight'])) $hilight = urldecode($_REQUEST['hilight']);
else $hilight = '';
if (isset($_REQUEST['hilightuser'])) $hilightuser = intval($_REQUEST['hilightuser']);
else $hilightuser = 0;
if (!isset($_REQUEST['goto'])) $_REQUEST['goto'] = '';
if ($threadview == 1) $t = &new ThreadedThread($threadid);
else $t = &new FlatThread($threadid);
/* goto actions 1 */
if ($_REQUEST['goto'] == "lastpost") $t->lastpost();
if ($_REQUEST['goto'] == "nextnewest") $t->nextnewest();
if ($_REQUEST['goto'] == "nextoldest") $t->nextoldest();
/* threadvisit */
if ($board['lastvisit'] > $thread['lastvisit']) $thread['lastvisit'] = $board['lastvisit'];
if ($wbbuserdata['lastvisit'] > $thread['lastvisit']) $thread['lastvisit'] = $wbbuserdata['lastvisit'];
/* goto actions 2 */
if ($_REQUEST['goto'] == "firstnew") $t->firstnew($thread['lastvisit']);
if ($_REQUEST['goto'] == "firstnew_thread") $t->firstnew($wbbuserdata['lastvisit']);
if ($wbbuserdata['umaxposts']) $postsperpage = $wbbuserdata['umaxposts'];
elseif ($board['postsperpage']) $postsperpage = $board['postsperpage'];
else $postsperpage = $default_postsperpage;
$postorder = $board['postorder'];
if (isset($postid)) $t->gotoPost($postid);
$db->unbuffered_query("UPDATE bb".$n."_threads SET views=views+1 WHERE threadid='$threadid'", 1);
if ($wbbuserdata['userid'] && $thread['lastposttime'] > $thread['lastvisit']) $db->unbuffered_query("REPLACE INTO bb".$n."_threadvisit (threadid,userid,lastvisit) VALUES ('".$threadid."','".$wbbuserdata['userid']."','".time()."')", 1);
$boardnavcache = array();
if ($showboardjump == 1) $boardjump = makeboardjump($boardid);
$navbar = getNavbar($board['parentlist']);
eval("\$navbar .= \"".$tpl->get("navbar_board")."\";");
$postbit = $t->start();
$thread_poll = '';
if ($thread['pollid']) {
if (checkmodpermissions("m_can_edit_poll")) eval("\$mod_poll_edit = \"".$tpl->get("thread_poll_edit")."\";");
unset($votecheck);
$poll = $db->query_first("SELECT * FROM bb".$n."_polls WHERE pollid='$thread[pollid]'");
$poll['question'] = htmlconverter($poll['question']);
if ($poll['timeout'] == 0) $timeout = time() + 1;
else $timeout = $poll['starttime'] + $poll['timeout'] * 86400;
if ($_REQUEST['preresult'] != 1 && checkpermissions("can_vote_poll") == 1 && $timeout >= time()) {
if ($wbbuserdata['userid']) $votecheck = $db->query_first("SELECT id AS pollid FROM bb".$n."_votes WHERE id='$thread[pollid]' AND votemode=1 AND userid='$wbbuserdata[userid]'");
else $votecheck = $db->query_first("SELECT id AS pollid FROM bb".$n."_votes WHERE id='$thread[pollid]' AND votemode=1 AND ipaddress='$REMOTE_ADDR'");
}
// already voted; show result
if ($_REQUEST['preresult'] == 1 || $votecheck['pollid'] || !checkpermissions("can_vote_poll") || $timeout < time()) {
$votes = 0;
unset($polloption);
$totalvotes = 0;
$polloptions = array();
$result = $db->unbuffered_query("SELECT * FROM bb".$n."_polloptions WHERE pollid='$thread[pollid]' ORDER BY votes DESC");
while ($row = $db->fetch_array($result)) {
$totalvotes += $row['votes'];
$polloptions[] = $row;
}
$i = 1;
if (count($polloptions)) {
while (list($key, $row) = each($polloptions)) {
$row['polloption'] = htmlconverter(textwrap($row['polloption']));
if ($totalvotes) {
$percent_float = $row['votes'] * 100 / $totalvotes;
$percent = number_format($percent_float, 2);
$percent_int = floor($percent_float) * 3;
$percent_int += 1;
}
else $percent = $percent_int = 0;
eval("\$thread_poll_resultbit .= \"".$tpl->get("thread_poll_resultbit")."\";");
if ($i == 5) $i = 0;
$i++;
}
}
$lang->items['LANG_THREAD_POLL_VOTES'] = $lang->get("LANG_THREAD_POLL_VOTES", array('$totalvotes' => $totalvotes));
eval("\$thread_poll = \"".$tpl->get("thread_poll_result")."\";");
}
else {
if ($poll['choicecount'] > 1) $inputtype = "checkbox";
else $inputtype = "radio";
$result = $db->unbuffered_query("SELECT * FROM bb".$n."_polloptions WHERE pollid='$thread[pollid]' ORDER BY showorder ASC");
while ($row = $db->fetch_array($result)) {
$row['polloption'] = htmlconverter(textwrap($row['polloption']));
eval("\$thread_pollbit .= \"".$tpl->get("thread_pollbit")."\";");
}
eval("\$thread_poll = \"".$tpl->get("thread_poll")."\";");
}
}
if ($board['allowratings'] == 1) {
$colors = createGradient($style['gradientleft'], $style['gradientmiddle'], $style['gradientright']);
if ($thread['voted'] && $thread['voted'] >= $showvotes) $threadrating = threadrating($thread['votepoints'], $thread['voted']);
}
else $threadrating = '';
if ($board['closed'] == 0) eval("\$newthread = \"".$tpl->get("board_newthread")."\";");
if ($thread['closed'] != 0) eval("\$addreply = \"".$tpl->get("thread_closed")."\";");
elseif ($board['closed'] == 0) eval("\$addreply = \"".$tpl->get("thread_addreply")."\";");
/* Ähnliche Themen */
$threadtopic = addslashes($thread['topic']);
/* Ähnliche Themen Ende */
$thread['topic'] = htmlconverter(textwrap($thread['topic']));
if ($board['emailnotify'] == 1 && $board['countemails'] != 0) $db->unbuffered_query("UPDATE bb".$n."_subscribeboards SET countemails=0 WHERE userid = '".$wbbuserdata['userid']."' AND boardid = '".$boardid."'", 1);
if ($thread['emailnotify'] == 1 && $thread['countemails'] != 0) $db->unbuffered_query("UPDATE bb".$n."_subscribethreads SET countemails=0 WHERE userid = '".$wbbuserdata['userid']."' AND threadid = '".$threadid."'", 1);
/* Ähnlich Themen */
function GetAccessableForums() {
global $db, $n, $wbbuserdata, $boardcache;
if (!isset($boardcache) || !is_array($boardcache)) $boardcache = array();
$result = $db->query("SELECT boardid,boardorder,parentid,parentlist FROM bb".$n."_boards ORDER BY parentid ASC, boardorder ASC");
while ($row = $db->fetch_array($result)) {
$boardcache[$row['parentid']][$row['boardorder']][$row['boardid']] = $row;
}
$boardpermissions = getPermissions();
$boardids = '';
foreach ($boardcache as $key => $val) {
foreach ($val as $key2 => $val2) {
foreach ($val2 as $row) if ((!isset($boardpermissions[$row['boardid']]['can_view_board']) || $boardpermissions[$row['boardid']]['can_view_board'] != 0) && (!isset($boardpermissions[$row['boardid']]['can_enter_board']) || $boardpermissions[$row['boardid']]['can_enter_board'] != 0) && (!isset($boardpermissions[$row['boardid']]['can_read_thread']) || $boardpermissions[$row['boardid']]['can_read_thread'] != 0)) $boardids .= ",".$row['boardid'];
}
}
return $boardids;
}
/* Unset Used Vars To Avoid Hacking Attempts */
unset($similar_thread_bit);
unset($like_string);
$ttopic = str_replace("."," ",$threadtopic);
$ttopic = str_replace("!"," ",$ttopic);
$ttopic = str_replace("?"," ",$ttopic);
$ttopic = str_replace("/"," ",$ttopic);
$ttopic = str_replace("§"," ",$ttopic);
$ttopic = str_replace("$"," ",$ttopic);
$ttopic = str_replace("%"," ",$ttopic);
$ttopic = str_replace("&"," ",$ttopic);
$ttopic = str_replace("("," ",$ttopic);
$ttopic = str_replace(")"," ",$ttopic);
$ttopic = str_replace("="," ",$ttopic);
$ttopic = str_replace("\\"," ",$ttopic);
$ttopic = str_replace("?"," ",$ttopic);
$ttopic = str_replace("-"," ",$ttopic);
$ttopic = str_replace("*"," ",$ttopic);
$ttopic = str_replace("+"," ",$ttopic);
$ttopic = str_replace("#"," ",$ttopic);
$ttopic = str_replace("_"," ",$ttopic);
$ttopic = str_replace(","," ",$ttopic);
$ttopic = str_replace(":"," ",$ttopic);
$ttopic = str_replace(";"," ",$ttopic);
$ttopic = str_replace("<"," ",$ttopic);
$ttopic = str_replace(">"," ",$ttopic);
$ttopic = str_replace("|"," ",$ttopic);
$ttopic = str_replace("~"," ",$ttopic);
$ttopic = str_replace("'"," ",$ttopic);
$ttopic = str_replace('"',' ',$ttopic);
$ttopic = explode(" ",$ttopic);
$badwordlist = explode("\n",$badsearchwords);
$y = count($ttopic);
if($y>1) {
foreach($ttopic as $tt) {
if(!in_array($tt, $badwordlist)) {
if(strlen($tt)>=$minwordlength && strlen($tt)<=$maxwordlength) $x++;
if($x>1 && (strlen($tt)>=$minwordlength && strlen($tt)<=$maxwordlength)) $like_string .= " OR t.topic LIKE ";
if(strlen($tt)>=$minwordlength && strlen($tt)<=$maxwordlength) $like_string .= "'%".$tt."%'";
}
}
} else $like_string = "'%$threadtopic%'";
if($like_string) {
$similar = $db->query("SELECT
t.threadid, t.boardid, x.title, x.boardid, t.prefix, t.topic, t.starttime, t.starterid, t.starter, t.lastposttime, t.lastposterid, t.lastposter, t.replycount, t.views, t.attachments, t.closed, t.important, t.pollid
FROM bb".$n."_threads t, bb".$n."_boards x
LEFT JOIN bb".$n."_boards b ON (t.boardid=b.boardid)
WHERE t.visible='1'
AND t.closed <> 3
AND t.threadid <> $threadid
AND b.password=''
AND t.boardid=x.boardid
AND t.boardid IN (0".GetAccessableForums().")
AND (t.topic LIKE ".$like_string.")
ORDER BY t.lastposttime DESC
LIMIT 0, 5;");
}
if($like_string && $db->num_rows($similar)) {
$i = "0";
while ($row = $db->fetch_array($similar)) {
$i++;
$tdclass = getone($i, "tablea", "tableb");
$started = formatdate($wbbuserdata['dateformat'], $row['starttime'],1);
$started .= " <span class=\"time\">".formatdate($wbbuserdata['timeformat'], $row['starttime'])."</span>";
$lastreply = formatdate($wbbuserdata['dateformat'], $row['lastposttime'],1);
$lastreply .= " <span class=\"time\">".formatdate($wbbuserdata['timeformat'], $row['lastposttime'])."</span>";
if ($row['replycount'] >= 1000) $row['replycount'] = number_format($row['replycount'], 0, "", $lang->get("LANG_GLOBAL_THOUSANDS_SEP"));
if ($row['views'] >= 1000) $row['views'] = number_format($row['views'], 0, "", $lang->get("LANG_GLOBAL_THOUSANDS_SEP"));
if (strlen($row['topic']) > 60) $row['topic'] = substr($row['topic'], 0, 54).' [...]';
$row['topic'] = htmlconverter($row['topic']);
eval("\$similar_thread_bit .= \"".$tpl->get("thread_similarthread_bit")."\";");
}
eval("\$similar_thread = \"".$tpl->get("thread_similarthread")."\";");
}
/* Ähnliche Themen Ende */
eval("\$tpl->output(\"".$tpl->get("thread")."\");");
?> |
|
|
|
15.04.05 11:19 |
WWW
Finden
Als Freund hinzufügen
|
|
Icebreaker3108
Mitglied
Dabei seit: 19.01.04
Beiträge: 96
Forenversion: 2.1.3
|
|
Ja, dafür muss ich mich nochmals entschuldigen - war gestern ein wenig mies drauf, da ich noch andern Stress hatte. Next time, kommt net mehr vor
Aber danke nochmals für die Bearbeitung des Thread.php, funktioniert nun auf Anhieb
. Toller Hack
|
|
15.04.05 21:13 |
E-Mail
WWW
Finden
Als Freund hinzufügen
|
|
rellek
retired
Dabei seit: 16.01.04
Beiträge: 720
Themenstarter
|
|
*eigentlich* wird das ausm ACP -> Einstellungen -> Suchfunktion genutzt. Versuch mal die minimale Länge für ein zu suchendes Wort auf 4 zu stellen...
|
|
01.06.05 14:44 |
WWW
Finden
Als Freund hinzufügen
|
|
Okty
Mitglied
Dabei seit: 16.01.04
Beiträge: 43
|
|
Hi bei mir zeigt garnichts an habe alles so instaliert wie es in der anleitung steht aber bei mir kommt nicght mal etwas vor.
hier kann sich jeder mal anschauen www.oktys-reptilien-world.de
und hier gebe ich auch mal mein thread.php durch dann könnt Ihr ja mal sagen ob ich da was falsch gemacht habe.
Dateianhang: |
thread.php (38 KB, 1 mal heruntergeladen)
|
|
|
02.06.05 13:17 |
E-Mail
WWW
Finden
Als Freund hinzufügen
|
|
rellek
retired
Dabei seit: 16.01.04
Beiträge: 720
Themenstarter
|
|
Mit der *aktuellen* Beta findet man wesentlich mehr *ähnliche* Themen.... ist in deine thread.php jetzt eingebaut.
Dateianhang: |
thread.php (40 KB, 12 mal heruntergeladen)
|
|
|
02.06.05 14:25 |
WWW
Finden
Als Freund hinzufügen
|
|
Okty
Mitglied
Dabei seit: 16.01.04
Beiträge: 43
|
|
rellek danke es hat gefunzt super.
Habe aber noch eine frage und zwar würde ich das Ähnliche Themen Box unter dem Themabewerten haben wo muss ich den code genau unter Thread-tmpl setzen.
|
|
02.06.05 19:12 |
E-Mail
WWW
Finden
Als Freund hinzufügen
|
|
rellek
retired
Dabei seit: 16.01.04
Beiträge: 720
Themenstarter
|
|
Das ist normalerweise unter dem Thema bewerten....
Code-Stelle wäre aber:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
|
<input type="hidden" name="sid" value="$session[hash]" />
<input type="hidden" name="threadid" value="$threadid" />
<input type="hidden" name="page" value="{$t->page}" />
</form></td>
</tr>
</table><br />
</then>
</if> |
|
|
|
03.06.05 06:38 |
WWW
Finden
Als Freund hinzufügen
|
|
The White Wolf
Mitglied
Dabei seit: 17.01.04
Beiträge: 409
Herkunft: Bleckede Forenversion: 2.3
|
|
Hm, bei mir wird auch nicht alles angezeigt. So habe ich eben mal das Stichwort Arcade eingeben, bin dann in dieses Thema reingegangen und unten wurde nur ein weiteres Thema angezeigt, obwohl es weitere Themen mit der Überschrift (wo das Wort Arcade) enthalten ist.
|
|
19.06.05 15:32 |
E-Mail
WWW
Finden
Als Freund hinzufügen
|
|
The White Wolf
Mitglied
Dabei seit: 17.01.04
Beiträge: 409
Herkunft: Bleckede Forenversion: 2.3
|
|
Zitat: |
Original von rellek
Wer am Beta-Test der neuen Version teilnehmen möchte, der ersetzt bitte den längeren Abschnitt zwischen den beiden
code: |
1:
|
/* Ähnliche Themen */ |
|
und
code: |
1:
|
/* Ähnliche Themen Ende */ |
|
mit:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
|
/* Ähnlich Themen */
function GetAccessableForums() {
global $db, $n, $wbbuserdata, $boardcache;
if (!isset($boardcache) || !is_array($boardcache)) $boardcache = array();
$result = $db->query("SELECT boardid,boardorder,parentid,parentlist FROM bb".$n."_boards ORDER BY parentid ASC, boardorder ASC");
while ($row = $db->fetch_array($result)) {
$boardcache[$row['parentid']][$row['boardorder']][$row['boardid']] = $row;
}
$boardpermissions = getPermissions();
$boardids = '';
foreach ($boardcache as $key => $val) {
foreach ($val as $key2 => $val2) {
foreach ($val2 as $row) if ((!isset($boardpermissions[$row['boardid']]['can_view_board']) || $boardpermissions[$row['boardid']]['can_view_board'] != 0) && (!isset($boardpermissions[$row['boardid']]['can_enter_board']) || $boardpermissions[$row['boardid']]['can_enter_board'] != 0) && (!isset($boardpermissions[$row['boardid']]['can_read_thread']) || $boardpermissions[$row['boardid']]['can_read_thread'] != 0)) $boardids .= ",".$row['boardid'];
}
}
return $boardids;
}
/* Unset Used Vars To Avoid Hacking Attempts */
unset($similar_thread_bit);
unset($like_string);
$ttopic = str_replace("."," ",$threadtopic);
$ttopic = str_replace("!"," ",$ttopic);
$ttopic = str_replace("?"," ",$ttopic);
$ttopic = str_replace("/"," ",$ttopic);
$ttopic = str_replace("§"," ",$ttopic);
$ttopic = str_replace("$"," ",$ttopic);
$ttopic = str_replace("%"," ",$ttopic);
$ttopic = str_replace("&"," ",$ttopic);
$ttopic = str_replace("("," ",$ttopic);
$ttopic = str_replace(")"," ",$ttopic);
$ttopic = str_replace("="," ",$ttopic);
$ttopic = str_replace("\\"," ",$ttopic);
$ttopic = str_replace("?"," ",$ttopic);
$ttopic = str_replace("-"," ",$ttopic);
$ttopic = str_replace("*"," ",$ttopic);
$ttopic = str_replace("+"," ",$ttopic);
$ttopic = str_replace("#"," ",$ttopic);
$ttopic = str_replace("_"," ",$ttopic);
$ttopic = str_replace(","," ",$ttopic);
$ttopic = str_replace(":"," ",$ttopic);
$ttopic = str_replace(";"," ",$ttopic);
$ttopic = str_replace("<"," ",$ttopic);
$ttopic = str_replace(">"," ",$ttopic);
$ttopic = str_replace("|"," ",$ttopic);
$ttopic = str_replace("~"," ",$ttopic);
$ttopic = str_replace("'"," ",$ttopic);
$ttopic = str_replace('"',' ',$ttopic);
$ttopic = explode(" ",$ttopic);
$badwordlist = explode("\n",$badsearchwords);
$y = count($ttopic);
if($y>1) {
foreach($ttopic as $tt) {
if(!in_array($tt, $badwordlist)) {
if(strlen($tt)>=$minwordlength && strlen($tt)<=$maxwordlength) $x++;
if($x>1 && (strlen($tt)>=$minwordlength && strlen($tt)<=$maxwordlength)) $like_string .= " OR t.topic LIKE ";
if(strlen($tt)>=$minwordlength && strlen($tt)<=$maxwordlength) $like_string .= "'%".$tt."%'";
}
}
} else $like_string = "'%$threadtopic%'";
if($like_string) {
$similar = $db->query("SELECT
t.threadid, t.boardid, x.title, x.boardid, t.prefix, t.topic, t.starttime, t.starterid, t.starter, t.lastposttime, t.lastposterid, t.lastposter, t.replycount, t.views, t.attachments, t.closed, t.important, t.pollid
FROM bb".$n."_threads t, bb".$n."_boards x
LEFT JOIN bb".$n."_boards b ON (t.boardid=b.boardid)
WHERE t.visible='1'
AND t.closed <> 3
AND t.threadid <> $threadid
AND b.password=''
AND t.boardid=x.boardid
AND t.boardid IN (0".GetAccessableForums().")
AND (t.topic LIKE ".$like_string.")
ORDER BY t.lastposttime DESC
LIMIT 0, 5;");
}
if($like_string && $db->num_rows($similar)) {
$i = "0";
while ($row = $db->fetch_array($similar)) {
$i++;
$tdclass = getone($i, "tablea", "tableb");
$started = formatdate($wbbuserdata['dateformat'], $row['starttime'],1);
$started .= " <span class=\"time\">".formatdate($wbbuserdata['timeformat'], $row['starttime'])."</span>";
$lastreply = formatdate($wbbuserdata['dateformat'], $row['lastposttime'],1);
$lastreply .= " <span class=\"time\">".formatdate($wbbuserdata['timeformat'], $row['lastposttime'])."</span>";
if ($row['replycount'] >= 1000) $row['replycount'] = number_format($row['replycount'], 0, "", $lang->get("LANG_GLOBAL_THOUSANDS_SEP"));
if ($row['views'] >= 1000) $row['views'] = number_format($row['views'], 0, "", $lang->get("LANG_GLOBAL_THOUSANDS_SEP"));
if (strlen($row['topic']) > 60) $row['topic'] = substr($row['topic'], 0, 54).' [...]';
$row['topic'] = htmlconverter($row['topic']);
eval("\$similar_thread_bit .= \"".$tpl->get("thread_similarthread_bit")."\";");
}
eval("\$similar_thread = \"".$tpl->get("thread_similarthread")."\";");
}
/* Ähnliche Themen Ende */ |
|
Auftretende Bugs bitte melden ! |
Wohl ne blöde Frage - aber in welcher Datei ?
|
|
20.06.05 20:56 |
E-Mail
WWW
Finden
Als Freund hinzufügen
|
|
|