The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
Import Unread News from a Forum Details »» | |||||||||||||||||||||||||
This hack will allow you to specify one or more forum IDs in your Admin CP as "news forums". Every time a thread is created in these forums, all users will see an "Unread news" notification at the top of every page of the forum until they view the unread news thread. If many news threads are unread, they will all be shown in the notification and removed one by one as each thread is viewed.
This hack both serves to make sure all users are aware of posted news and to give users who return after a long absence a quick rundown of what has been going on in the forums since they last were there. As of version 2.0, it is possible to specify: - Time cutoff: all news older than x days will count as read - Only check for read status on latest x threads: only the latest x news will be shown if unread; all older news will always be treated as read - Maximum number of news to display at one time: if a user has more unread news (after the time cutoff and latest x filter) than the number specfied, only that number will actually be displayed on the page - Whether to make users see news created before they joined as unread - Whether to show the date and time when each news thread was made or just the date Please note that you must have Paul_M's Display who has read a thread hack installed for this to function correctly! You don't need to actually have the people who have read the thread shown for anybody at all (heck, if you're completely uninterested in what that hack does, you don't even need to make the template edit for it), but as long as it's installed, this hack will work. Version 3.0 adds the ability to have more than one news forum and to set a PHP condition for each forum which must be met in order for news from that forum to be imported. Installation Simply download the product attached to this post and import it via the Admin CP Product Manager. Then make one template edit: add Code:
$unreadnews ------------------------------------ If using PHP version 4.x (or if you are getting an error message that looks something like Fatal error: Call to undefined function: array_combine() in /public_html/global.php(359) : eval()'d code on line 139), you additionally need to find this line in the Import News plugin on the hook global_start: PHP Code:
PHP Code:
------------------------------------ Afterwards, go to your vBulletin options, find the News Import System setting group, specify your news forum(s), set the other settings if you want, and turn the system on. Don't forget to click Install if it's working for you. Enjoy! Version 3.0: Added ability to have multiple news forums and use conditionals. Version 2.23: Important bugfix from version 2.22 Version 2.22: Bugfixes Version 2.21: Cutting off on the user's join date has been made an optional feature specified in the admin CP, and some unnecessary code has been removed. Also added alternative templates for no particular reason. Version 2.2: Fixed uncached template, added "More..." link that links to the news forum when unread news are cut off by "Maximum number of news to display at one time" option, and all news created before the user registered will now count as read for that user. (Imagine registering and having twenty "unread news" notifications you have to plough through...) Version 2.01: Added template edit information (I'm an official idiot for forgetting that) and fixed table prefixes. Version 2.0: Added functionality (see above) ---------------------------- EXTRA: Alternative templates If you don't like the way the current unread news box looks, I've got some more standard-looking templates you can use instead if you want. This also allows you to collapse the unread news, which might be useful. Just replace the templates, see how it looks, and revert the templates again if you liked the other look better. Alternative custom_unreadnews template: Code:
<if condition="$show['unreadnews']"> <br /> <table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center"> <thead> <tr> <td class="tcat"><a href="#top" style="float:$stylevar[right]" onclick="return toggle_collapse('unreadnews')"><img id="collapseimg_unreadnews" src="$stylevar[imgdir_button]/collapse_tcat$vbcollapse[collapseimg_unreadnews].gif" alt="" border="0" /></a> Unread News</td> </tr> </thead> <tbody id="collapseobj_unreadnews" style="$vbcollapse[collapseobj_unreadnews]"> $newsitems <if condition="$show['importnewscutoff']"> <tr> <td class="alt1"><a href="forumdisplay.php?$session[sessionurl]f={$vbulletin->options['importnewsforum']}" class="smallfont">More...</a></td> </tr> </if> </tbody> </table> </if> Code:
<tr> <td class="alt1">$timestamp: <strong><a href="showthread.php?$session[sessionurl]t=$id">$info[title]</a></strong></td> </tr> Show Your Support
|
Comments |
#12
|
||||
|
||||
This must be some sort of clash with another product. Do you already have something installed that could have a setting called "newsforum"?
|
#13
|
|||
|
|||
Cool idea but doesn't work here:
Quote:
|
#14
|
||||
|
||||
Ah, okay, had to be something like that. The product has been updated to use 'importnewsforum' instead.
EDIT: One more fix... and a note of the updates in the first post. I think I'll make a version 2.0 soon where the functionality that FleaBag requested will be automatically in and controllable through the Admin CP... |
#15
|
|||
|
|||
Database error in vBulletin 3.5.4:
Invalid SQL: SELECT threadid FROM +++++ad WHERE userid = 450 AND threadid IN (); 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 3 Error Number : 1064 Date : Wednesday, May 10th 2006 @ 11:22:45 AM Script : http://www.*****r/**/showthread.php?t=1174 Referrer : http://www.****r/**/forumdisplay.php?f=26 IP Address : 1**** Username : *** Classname : **** Onother error here??there is fix?? |
#16
|
|||
|
|||
rmxs your answer is in the first bug I found.
First bug: I had to add " . TABLE_PREFIX . " to your two select statements. Code:
$newsthreads = $db->query_read(" SELECT threadid, title, dateline FROM " . TABLE_PREFIX . "thread WHERE forumid = $newsforum $queryaddition ORDER BY dateline DESC "); $readnews = $db->query_read(" SELECT threadid FROM " . TABLE_PREFIX . "+++++ad WHERE userid = " . $vbulletin->userinfo['userid'] . " AND threadid IN (" . implode(',', $newsids) . ") "); I tried the variables $newsitems & $unreadnews without success, the $newsitems variable works but it isn't defined in a nice colored box like in your screenshot. It just puts the latest news right above the navbar but again not formatted to a template. |
#17
|
||||
|
||||
Oh, crap... more screw-ups...
What you're supposed to do is add $unreadnews to the bottom of the header template. It sounds odd that $unreadnews wouldn't be working, though. (You were testing it as logged in, right? And enabled the hack in the Admin CP, specified a news forum and all that?) |
#18
|
|||
|
|||
If i set news forum to 0 its OK
If i set forum news to exaple 1 i get this error line Fatal error: Call to undefined function: array_combine() in /home/rmxs/domains/rmxs.gr/public_html/Vb/global.php(349) : eval()'d code on line 301 |
#19
|
||||
|
||||
Ah, you must be using PHP 4 or earlier, then. array_combine() was apparently introduced in PHP 5...
A workaround for that should be fairly simple... find the line Code:
$newsarray = array_combine($newsids, $newsinfo); Code:
$newsarray = array(); for ($i = 0; i < count($newsids); i++) { $newsarray["$newsids[$i]"] = $newsinfo[$i]; } |
#20
|
|||
|
|||
Ok now it works with no error byt im not get any message on the header and im lose the global attachment Block
im use PHP Version 4.4.2 |
#21
|
||||
|
||||
Quote:
What do you mean, you lost the global attachment block? |
Thread Tools | |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|