[2.3] Aehnliche Themen [mod by Flavius]

CookIe

Neuer Benutzer
Name:
Aehnliche Themen

Version:
1.0.1

Für wBB-Version:
2.3.x

Getestet mit:
2.3.4

Beschreibung:
Ich habe an rellek's (http://www.rellek.org/) "aehnliche Themen" - Hack etwas rumgeschraubt
und es etwas erweitert. Es verfuegt nun ueber ein ACP.

Von dort aus ist es moeglich das Script an-/ auszuschalten, eingeben
ab wie viele Zeichen der Titel eines Themas abgekuerzt werden soll,
wie viele Themen auf einmal angezeigt werden sollen und ihr koennt
die einzelnen Felder auch an-/ ausblenden.

Support:
Nur hier!

Demo:
Im Anhang und in der ZIP

Copyright:
Das (c) fuer dieses Addon liegt bei mir, Flavius Constantin Borlovan!
Das Veraendern des Hacks ist erlaubt. Releas allerdings erst nach Absprache
mit rellek und mir!

Ihr duerft den Hack ruhig verbreitern, allerdings nicht
als "eigener" ausgeben! ;)

Disclaimer:
Dieses Script basiert auf "aehnliche Themen von rellek (http://www.rellek.org/)!"
Wir, rellek und ich distanzieren uns von Fehler welche durch die Installation
des Addons verursacht werden oder Fehler nach Veraenderung fuer Eigenbedarf! Fehler sind jedoch nicht ausgeschlossen!
Der Einbau geschieht auf eigene Gefahr!

Bekannte Fehler:
- der Hack ist MySQL 5 INkompatibel

Hinweise:
- Es muss eingegeben werden, ab wie viele Zeichen der Titel eines Themas
gekuerzt werden soll, sonst gibt es Fehler und das Board wird verzerrt
- Damit alles richtig funktioniert muessen erstmal die Einstellungen des
Similars vorgenommen werden
 

Anhänge

  • ausgabe.jpg
    ausgabe.jpg
    120 KB · Aufrufe: 254
  • admin cp.jpg
    admin cp.jpg
    133,7 KB · Aufrufe: 239
  • Aehnliche Themen fuer wBB 2.3.x.zip
    182,2 KB · Aufrufe: 88

salnet

Neuer Benutzer
Hallo!
Ich hab leider ein kleines Setup-Problem bei dem Hack.
Nachdem ich die Dateien setup_similar.php und setup_similar.wbb ins acp-Verzeichnis hochgeladen und auf Install in der Datei setup_similar.php geklickt habe, passiert gar nichts. Die Variablendateii wird nicht importiert.
Des weiteren erhalte ich nach Einbau (genau nach Anleitung) einen SQL-Fehler, wenn ich einen Thread aufraufen will:
SQL-DATABASE ERROR

Database error in WoltLab Burning Board (2.3.4): Invalid SQL: 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 bb1_threads t, bb1_boards x LEFT JOIN bb1_boards b ON (t.boardid=b.boardid) WHERE t.visible='1' AND t.closed <> 3 AND t.threadid <> 6 AND b.password='' AND t.boardid=x.boardid AND t.boardid IN (0,1,2) AND t.topic LIKE '%Testeintrag%' ORDER BY t.lastposttime DESC LIMIT 0, ;
mysql error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
mysql error number: 1064
mysql version: 4.1.14-log
php version: 4.4.1
Date: 05.03.2006 @ 17:22
Script: /wbb2/thread.php?postid=17
Referer: http://www.******.**/wbb2/index.php

Evtl. hast Du eine Idee?

Gruß,
salnet
 

CookIe

Neuer Benutzer
Hier die aktuelle Version der ZIP. Hier geht auch die Setup...
 

Anhänge

  • Aehnliche Themen fuer wBB 2.3.x.zip
    182 KB · Aufrufe: 60

sturdy

Neuer Benutzer
gibts ne Möglichkeit dem zu sagen, dass er nur die ersten XX Zeichen vergleicht ?
Hab die Möglichkeit noch nicht gefunden
 

rellek

relativ sensationell
Teammitglied
Der IBK_modell hat sich freundlicherweise die Mühe gemacht und den Mod von CookIe aktualisiert - sprich: Er hat eine lauffähige Anleitung geschrieben, die auch die Bugfixes enthält.

Original von IBK_modell
Geändert habe ich:

die Anleitung.txt habe ich überarbeitet und in Schritte eingeteillt inkl. dem das man als erstes die setup.php ausführen muss bzw. alles auf den server laden soll.

desweitern habe ich den 2teil den man in die threat.php einfügen muss actualisiert mit dem aus dem Beitrag mit der Antwort von dir am 6.1.2005:
BEITRAG

mit diesem Code funzt es auf anhieb.

die anzeite "Statistik" wird nun auch als Sprachvariable ausgelesen,

habe auch noch einen hinweis auf die Spaltenbreite angebracht,

und eine eng.ing ist auch dabei.
 

Anhänge

  • Aehnliche Themen.rar
    181,6 KB · Aufrufe: 67

Deacon Frost

The Bl00d-G0d La Magra<br />(Boardberater)
Hi rellek!

Sehe ich das richtig, dass in Deinem letzten Anhang eine gefixte Version von CookIe's Hack drin is, die die Probs mit dem SQL-Fehler und den anderen Fehlern enthält? Oda hab ich da jetzt was falsch verstanden?
 

Deacon Frost

The Bl00d-G0d La Magra<br />(Boardberater)
Original von rellek
Pff... was genau er gefixt hat, weiß ich grad gar nicht... hm

Kein Thema! Habs mir ma geladen und schau mal eben. Geb dann Report...

//EDIT

Ha, dat gibbet nich, damit funzt es tatsächlich! :yo Dann hat sich das Thema ja erstma erledigt, und ich geh ma Werbung für rellek machen... :D
 

Speddy20537

Neuer Benutzer
Könnte mir jetz einer die richtigen daten geben da ixh dies gerne erstmal local testen möchte aber die ganzen anhänge die ihr hier habt nutz bei mir nichts ich kann zwar jetz denn thread sehen nur es kommt unter thread dieser fehler



Database error in WoltLab Burning Board (2.3.6): Invalid SQL: 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 bb1_threads t, bb1_boards x LEFT JOIN bb1_boards b ON (t.boardid=b.boardid) WHERE t.visible='1' AND t.closed <> 3 AND t.threadid <> 23037 AND b.password='' AND t.boardid=x.boardid AND t.boardid IN (0,13,68,1,6,7,153,126,60,9,116,164,185,188,190,3,5,41,76,125,4,51,40,124,118,130,59,2,144,187,192,179,180,181,182,183,129,131,45,47,72,132,133,46,48,52,31,32,39,11,12,82,157,14,15,195,134,135,136,137,138,139,140,141,142,143,97,98,62,61,63,108,109,110,111,112,193,103,104,105,106,107,10,77,93,162,163,168,169,170,184,158,67,121,89,115,172,16,17,18,19,42,90,92,20,21,22,23,85,25,24,26,43,27,28,29,148,149,150,151,154,155,156,171,173,174,176,178,194,196,165,166,167,186,189,191) AND (t.topic LIKE '%Jagged%' OR t.topic LIKE '%Alliance%' OR t.topic LIKE '%Wildfire%') ORDER BY t.boardid != 27, t.lastposttime DESC LIMIT 0, 5;
mysql error: Unknown column 't.boardid' in 'on clause'
mysql error number: 1054
mysql version: 5.0.24a-community-nt
php version: 5.1.6
Date: 26.11.2006 @ 15:43
Script: /xampp/Hauptseite/thread.php?postid=46997&sid=cf77419c9b16ec6923d2c8c5f91d9bdc
Referer: http://localhost/xampp/Hauptseite/index.php?sid=cf77419c9b16ec6923d2c8c5f91d9bdc
 

Speddy20537

Neuer Benutzer
@ rellek jetz habe ich das Prob das bei mir im jeden thread doppelt thread erstellt wird also der selbe wie kommt das habe schon in denn tpl nachgesehen aber der ist nur einmal drinne???
 

Röhrchen

Erfahrener Benutzer
Hallo Mädels! :yo

Danke erstmal, dass ihr euch damit so viel Mühe gegeben habt.

Ich habe die Änderungen von Cookie auch gemacht und es funzt auch alles soweit.
Das einzige Prob ist, obwohl ich im ACP die Einstellung mache, dass nur 4 Themen angezeigt werden sollen, zeigt er immer 5 Themen an..........und das ist egal was ich eintrage, immer bleiben es 5 Stück.

Könnt ihr mir helefen?

Hatte voreher die "defekte" Version von Flavius drin. Dort hat er noch brav die Anzahl geändert, doch nachdem ich die thread.php auf den neuesten stand gebracht habe, will er nicht mehr gehorchen....

habe mal screens gemacht.
 

Anhänge

  • acp001.jpg
    acp001.jpg
    78,7 KB · Aufrufe: 11
  • acp002.jpg
    acp002.jpg
    61,4 KB · Aufrufe: 12

Röhrchen

Erfahrener Benutzer
o.k. Mädels,

hab den Fehler gefunden.

Die Einbauanleitung bezieht sich auf das Original von rellek und dort steht folgender schnipsel:

PHP:
ORDER BY t.boardid != ".$boardid.", t.lastposttime DESC 
LIMIT 0, 5;");


dort die 5 ersetzen durch
PHP:
$similar_howmany
dann funktioniert es.

evtl. müsstet ihr die Einbauanleitung nochmal dementsprechend aktualisieren....


Greetz
Röhrchen :yo
 

rellek

relativ sensationell
Teammitglied
da er seither nicht verändert wurde, wahrscheinlich schon ;)


(das original, ironischerweise über die ähnlichen themen zu finden :D, ist jedoch auch mit mysql5 kompatibel)
 

Flojo

New Member
AW: Aehnliche Themen [mod by Flavius]

habe ein problem soweit hat alls geklappt im ACP habe ich das similar soweit man kann es auch einstellen... nur kriege ich die tabele nich in den thread... ich stell mal vom thread.php rein villeicht sieht ihr irgendein fehler den ich nich sehe...


######### thread.php #########

###suche (~ Zeile 914):###

$thread['topic'] = htmlconverter(textwrap($thread['topic']));
Code:
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 (c) by rellek (modified by: Flavius) */
$threadtopic = addslashes($thread['topic']);
/* Ähnliche Themen (c) by rellek (modified by: Flavius) Ende */
$thread['topic'] = htmlconverter(textwrap($thread['topic']));
### suche (~ Zeile 922):####
Code:
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);

$hilight = htmlconverter($hilight);
/** Who-read-this-thread (c) Mr Hatch**/
$readcount=$db->query_first("SELECT COUNT(*) FROM bb".$n."_threads_users WHERE threadid='$threadid' AND userid='$wbbuserdata[userid]'");
if($readcount[0]==0){
    $db->query("INSERT INTO bb".$n."_threads_users (threadid,userid,readtime,timesread) VALUES ('$threadid','$wbbuserdata[userid]','".time()."','1')");
}
else{
    $db->query("UPDATE bb".$n."_threads_users SET readtime='".time()."',timesread=timesread+1 WHERE threadid='$threadid' AND userid='$wbbuserdata[userid]'");
}
/** Who-read-this-thread (c) Mr Hatch**/
/* Ähnlich Themen (c) by rellek (modified by: Flavius) */
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, $similar_howmany;");
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']) > $similar_short) $row['topic'] = substr($row['topic'], 0, $similar_short-6).' [...]';
        eval("\$similar_thread_bit .= \"".$tpl->get("thread_similarthread_bit")."\";");
    }
    eval("\$similar_thread = \"".$tpl->get("thread_similarthread")."\";");
}
/* Ähnliche Themen Ende (c) by rellek (modified by: Flavius) */
eval("\$tpl->output(\"".$tpl->get("thread")."\");");

ich bedank mich mal im voraus bei denen die sich die zeit nehmen sich für mein möglichen fehler eine lösung zu finden!!!
 
Oben