We use this product to show a link for unread posts ... we would like to opt out certain forum IDs .. one solution from the author of this is to disable the search for those forums .. but this is hardly a solution for our forum ...
Does someone got an idea how to opt out forumids when looking into the code ?
Code:
<?xml version="1.0" encoding="ISO-8859-1" ?>
- <product productid="paulm_20050918" active="0">
<title>Display Unread Posts</title>
<description>Display the number of posts you have marked as unread.</description>
<version>1.02</version>
- <codes>
<code version="0.00" />
</codes>
<templates />
- <plugins>
- <plugin active="1">
<title>Display All Unread Posts</title>
<hookname>global_start</hookname>
- <phpcode>
- <![CDATA[ $unread = "";
if ($vbulletin->userinfo['userid'] AND $vbulletin->options['threadmarking'])
{
$unread = "No unread posts";
$xforum_ids = array_keys($vbulletin->forumcache);
foreach ($xforum_ids AS $key => $xforum_id)
{
$xfperms = & $vbulletin->userinfo['forumpermissions']["$xforum_id"];
$xforum = & $vbulletin->forumcache["$xforum_id"];
if ( !($xfperms & $vbulletin->bf_ugp_forumpermissions['canview']) OR !($xfperms & $vbulletin->bf_ugp_forumpermissions['cansearch']))
{
unset($xforum_ids["$key"]);
}
}
if (empty($xforum_ids))
{
$xforum_list = "0";
}
else
{
$xforum_list = implode(', ', $xforum_ids);
}
if ($vbulletin->options['unreadlv'])
{
$cutoff = $vbulletin->userinfo['lastvisit'];
}
else
{
$cutoff = TIMENOW - ($vbulletin->options['markinglimit'] * 86400);
}
$postcount = $vbulletin->db->query_first("
SELECT COUNT(post.postid) as unread
FROM " . TABLE_PREFIX . "post as post
INNER JOIN " . TABLE_PREFIX . "thread as thread ON (thread.threadid = post.threadid)
LEFT JOIN " . TABLE_PREFIX . "threadread AS threadread ON (threadread.threadid = thread.threadid AND threadread.userid = " . $vbulletin->userinfo['userid'] . ")
INNER JOIN " . TABLE_PREFIX . "forum AS forum ON (forum.forumid = thread.forumid)
LEFT JOIN " . TABLE_PREFIX . "forumread AS forumread ON (forumread.forumid = forum.forumid AND forumread.userid = " . $vbulletin->userinfo['userid'] . ")
WHERE thread.forumid IN($xforum_list)
AND thread.sticky IN (0,1) AND thread.visible IN (0,1,2)
AND thread.lastpost > IF(threadread.readtime IS NULL, $cutoff, threadread.readtime)
AND thread.lastpost > IF(forumread.readtime IS NULL, $cutoff, forumread.readtime)
AND thread.lastpost > $cutoff
AND post.dateline > IF(threadread.readtime IS NULL, $cutoff, threadread.readtime)
AND post.dateline > IF(forumread.readtime IS NULL, $cutoff, forumread.readtime)
AND post.dateline > $cutoff
");
if ($postcount['unread'])
{
if ($postcount['unread'] == 1)
{
$unread = "1 Unread Post";
}
else
{
$unread = $postcount['unread']." Unread Posts";
}
}
if ($vbulletin->options['unreadlv'])
{
$unread = "<a href='search.php?do=getnew'><b>" . $unread . "</b></a> since your last visit.<br />";
}
else
{
$unread = "You have <a href='search.php?do=getnew'><b>" . $unread . "</b></a><br />";
}
$search_text = '</strong><br />';
$vbulletin->templatecache['navbar'] = str_replace($search_text,$search_text.$unread,$vbulletin->templatecache['navbar']);
}
]]>
</phpcode>
</plugin>
</plugins>
- <phrases>
- <phrasetype name="vBulletin Settings" fieldname="vbsettings">
- <phrase name="setting_unreadlv_desc">
- <![CDATA[ Set to 'yes' to use last visit date, 'no' to count all posts marked as unread.
]]>
</phrase>
- <phrase name="setting_unreadlv_title">
- <![CDATA[ Display Unread Posts Option
]]>
</phrase>
</phrasetype>
</phrases>
- <options>
- <settinggroup name="general" displayorder="30">
- <setting varname="unreadlv" displayorder="370">
<datatype>boolean</datatype>
<optioncode>yesno</optioncode>
<defaultvalue>1</defaultvalue>
</setting>
</settinggroup>
</options>
</product>