#################################################################################
# Ähnliche Themen #
# #
# Autor: Helga #
# Email: Helga(Helga@low-group.de) #
# #
# #
# Zu ändernde Dateien: #
# thread.php #
# #
# WICHTIG! Vor dem Einbau des Hacks unbedingt ein Backup #
# der zu ändernden Dateien machen!!! #
# #
#################################################################################
Disclaimer:
Dieses Addon darf auf keiner anderen Seite als low-group.de ohne Genehmigung des Autors zum Download angeboten werden.
Beschreibung:
Mit diesem Addon bekommt man eine Anzeige unter den Posts mit ähnlichen Themen.
Vorraussetzung:
MySQL-Version 3.23.23 und höher !!!
Ausführung:
im ACP unter "SQL Abfragen" dies ausführen:
ALTER TABLE `bb1_threads` ADD FULLTEXT (`topic`);
die bb1 mit eurem Wert abgleichen.
Dann in der thread.php dies suchen:
$thread['topic'] = htmlconverter(textwrap($thread['topic']));
dort drunter dies einfügen:
############################################
/* Ähnlich Themen Helga */
function getBoards()
{
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_use_search']) || $boardpermissions[$row['boardid']]['can_use_search']!=0) $boardids.=",".$row['boardid'];
}
}
return $boardids;
}
$find = str_replace("'","",wbb_trim($thread['topic']));
$findarray = explode("\n",$badsearchwords);
$find = str_replace($findarray, " ", $find);
$find = preg_replace("/( \+|^\+)/s", " ", $find);
$find = preg_replace("/( \-|^\-)/s", " ", $find);
$find = preg_replace("/[\/,\.:;\(\)\[\]?!#{}%_\-+=\\\\]/s", " ", $find);
$find = preg_replace("/['\"]/s", "", $find);
$find = preg_replace("/\s{2,}/", " ", $find);
$similar = $db->query("SELECT
t.*,
MATCH(topic) AGAINST('$find') as rang,
b.title,
b.boardid
FROM bb".$n."_threads as t
LEFT JOIN bb".$n."_boards as b
ON (b.boardid=t.boardid)
WHERE t.visible=1
AND t.threadid <> $threadid
AND t.boardid IN (0".GetBoards().")
AND MATCH(topic) AGAINST('$find')
ORDER by rang DESC LIMIT 0,5");
while ($rowsim = $db->fetch_array($similar))
{
$i++;
$tdclass = getone($i, "tablea", "tableb");
$stopiclong = $rowsim['topic'];
if(strlen($rowsim[topic]) > '37') $stopic = "".substr($rowsim[topic], 0, 37)."..."; else $stopic = $rowsim['topic'];
$slastdate = formatdate($wbbuserdata['dateformat'], $rowsim['lastposttime']);
$slasttime = formatdate($wbbuserdata['timeformat'], $rowsim['lastposttime']);
eval("\$threadsim_bit .= \"".$tpl->get("thread_similar_bit")."\";");
}
eval("\$threadsim = \"".$tpl->get("thread_similar")."\";");
/* Ähnliche Themen Ende Helga */
##########################
Dann in der template thread.tpl dieses suchen:
und drunter oder drüber dieses einfügen:
0)>
$threadsim
Dann nur noch im ACP unter Sprachpacket importieren, die thread.lng importieren und die Template importieren und cachen.
Das wars schon.
Helga