The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
DevBox Work - Online Users Today, Latest Threads, Top Posters, Newest Members Details »» | |||||||||||||||||||||||||||
DevBox Work - Online Users Today, Latest Threads, Top Posters, Newest Members
Developer Last Online: May 2011
This is another one of my 'all in one' hacks, this time without the 'latest posts' part.
Features
I can offer limited support for this hack. I wrote it for my forum, and its workin' pretty good. If you find any problems, post'em here and I might find some time to help you out. Just back up all your data before you apply anything, as goes with all hacks! Demo Online demo (with some template edits, I might add!): http://www.DevBoxForums.com Notes I didn't have the time to edit the default templates, so I don't think it's too pleasing out-of-the-box. If someone would like to spice it up a notch and submit it here, I'd be glad to include it in the actual package. Installation Upload devbox_work.php to your forum root path, as well as the devbox_install directory. Navigate your browser to devbox_install/install.php and follow onscreen instructions. You will need your database username and password simply for authentication to start the installer. Should I install this hack? Is it buggy? Etc I've been making the installer for a little while and I must've run it at least a dozen times throughout and I haven't had any errors. But thats only me. Before people can install it for themselves and see how it goes, I can't say much. Troubleshooting / Common Problems If you end up running the phrase step or template step more then once, you'll probably get mysql errors complaining about duplicate entries. You can go in phpMyAdmin into the phrase/template tables, sort by the primary key so oldest is first, and delete all the devbox related rows. Template Variables Since this hack is obviously lacking some default-template looks, I thought I'd go over all of the variables you can use. If you want more, you'll have to edit the SQL queries under 'Section 2'. All variables are accessed through the $data array. Example: $data[threadid]
Show Your Support
|
Comments |
#22
|
||||
|
||||
Is there anyway to exclude certain usergroups from the top posters?
|
#23
|
|||
|
|||
Well,
whever i call the devbox_work.php file: I GET FOLLWING ERROR: Code:
Warning: array_keys(): The first argument should be an array in /home/indiangu/public_html/devbox_work.php on line 81 Warning: Invalid argument supplied for foreach() in /home/indiangu/public_html/devbox_work.php on line 81 Fatal error: Call to a member function on a non-object in /home/indiangu/public_html/devbox_work.php on line 180 here is my config file: Code:
<?php // +-----------------------------------------------------------------------------+ // | devbox_work.php | // +-----------------------------------------------------------------------------+ // | Written by Christopher Nadeau | // | - www.DevBox.net, www.DevBoxForums.com [chris@devbox.net] | // +-----------------------------------------------------------------------------+ // | Copyright 2004 by Christopher Nadeau | // +-----------------------------------------------------------------------------+ // | RELEASED UNDER THE EvB license: | // | => Standard Attribution | // | => Limited Derivs | // | => Limited Translation | // | MORE INFO HERE: | // | => http://www.everythingvb.com/licenses/sa-ld-lt/1.0/ | // +-----------------------------------------------------------------------------+ // | TABLE OF CONTENTS | // | 1. CONFIGURATION: Config area, you should edit this area. | // | | // | 2. INTERPRETATION: Handles config, you should NOT edit ths area. | // | | // | 3. ADV. CONFIGURATION: Edit the SQL to use. You should only edit this | // | area if you know what your doing. | // | | // | 4. SCRIPT: The actual script. You should NOT edit this area. | // | | // | 5. MISC: Misc functions. You should NOT edit this area. | // +-----------------------------------------------------------------------------+ /********************************************************************************* 1. CONFIGURATION Each configuration value can be set to 'on', 'off', 1, 0, true or false. => 'on' - Activated => 'off' - Deactivated => 1 - Activated => 0 - Deactivated => true - Activated => false - Deactivated *_*_num: the number of values to retrieve. forum_ids: the forumid's of the forums you want to grab the latest threads from. You can set this to 'auto' to include all forums that the user has permission to see. Serparate each with a comma. Ex: - '1,8,19,20' - 'auto' *********************************************************************************/ $devbox_config = array( 'latest_threads' => 'on', 'latest_threads_num' => 10, 'newest_members' => 'on', 'newest_members_num' => 5, 'top_posters' => 'on', 'top_posters_num' => 5, 'online_today' => 'on', 'forum_ids' => '2,6,16,7,14,5,18,9,10,11,13,15', ); /********************************************************************************* 2. INTERPRETATION This section just interprets the config options, and ensures they're alright. You should skip this section and go onto #3 if you want. *********************************************************************************/ // Ensure all the right numbers are in place $devbox_config['latest_threads_num'] = (int) $devbox_config['latest_threads_num']; $devbox_config['newest_members_num'] = (int) $devbox_config['newest_members_num']; $devbox_config['top_posters_num'] = (int) $devbox_config['top_posters_num']; // Handle forum id's if($devbox_config['forum_ids'] == 'auto') { $devbox_config['forum_ids'] = array(); foreach(array_keys($forumcache) AS $forumid) { $fp = &$bbuserinfo['forumpermissions']["$forumid"]; if ($fp & CANVIEW AND $fp & CANVIEWOTHERS) { $devbox_config['forum_ids'][] = $forumid; } } $devbox_config['forum_ids'] = implode(',', $devbox_config['forum_ids']); unset($fp); } $TP = TABLE_PREFIX; /********************************************************************************* 3. ADVANCED CONFIGURATION These config values define what SQL should be used to grab the info from the database. Don't touch these if you don't know what your doing! You have to change these if you want information other then what is already provided. Use the variable $TP for table prefix if you don't want to get out of the quotes. **********************************************************************************/ $devbox_config['latest_threads_sql'] = "### devbox_work.php - grabbing latest threads ### SELECT t.threadid, t.title, t.replycount, t.views, t.lastposter, t.postusername, t.postuserid, f.forumid, f.title AS forumtitle FROM {$TP}thread t, {$TP}forum f LEFT JOIN {$TP}deletionlog AS del ON (del.primaryid = t.threadid AND del.type = 'thread') WHERE f.forumid = t.forumid AND f.forumid IN({$devbox_config['forum_ids']}) AND t.visible = 1 AND del.primaryid IS NULL ORDER BY t.threadid DESC LIMIT {$devbox_config['latest_threads_num']}"; $devbox_config['newest_members_sql'] = "### devbox_work.php - grabbing newest members ### SELECT u.userid, u.username, u.joindate, u.posts, g.opentag, g.closetag FROM {$TP}user u, {$TP}usergroup g WHERE g.usergroupid = u.usergroupid ORDER BY u.userid DESC LIMIT {$devbox_config['newest_members_num']}"; $devbox_config['top_posters_sql'] = "### devbox_work.php - grabbing top posters ### SELECT u.userid, u.username, u.posts, g.opentag, g.closetag FROM {$TP}user u, {$TP}usergroup g WHERE g.usergroupid = u.usergroupid ORDER BY u.posts DESC LIMIT {$devbox_config['top_posters_num']}"; $devbox_config['online_today_sql'] = "### devbox_work.php - grabbing online today ### SELECT u.userid, u.username, (u.options & {$_USEROPTIONS['invisible']}) AS invisible, g.opentag, g.closetag FROM {$TP}user u, {$TP}usergroup g WHERE g.usergroupid = u.usergroupid AND u.lastactivity >= " . (mktime(0, 0, 0) + (($bbuserinfo['timezoneoffset'] - $vboptions['timeoffset']) * 3600)) . " ORDER BY u.username ASC"; /********************************************************************************* 4. SCRIPT You shouldn't need to edit anything below this! *********************************************************************************/ $devbox = array('latest_threads' => '', 'newest_members' => '', 'online_today' => '', 'top_posters' => '', ); //-------------------------------------------------------------------------------- // Grab the 'latest threads' if(isOn('latest_threads')) { $devbox_latest_threads = $DB_site->query($devbox_config['latest_threads_sql']); $devbox_config['latest_threads_num'] = $DB_site->num_rows($devbox_latest_threads); $devbox_counter = 0; if($devbox_config['latest_threads_num'] < 1) { $devbox['latest_threads'] = 'No threads.'; } else { while($data = $DB_site->fetch_array($devbox_latest_threads)) { $data['counter'] = ++$devbox_counter; eval('$devbox[\'latest_threads\'] .= "' . fetch_template('devbox-latest_threads_bit') . '";'); } } $DB_site->free_result($devbox_latest_threads); unset($devbox_latest_threads, $devbox_counter, $data); } //-------------------------------------------------------------------------------- // Grab the 'lastest members' if(isOn('newest_members')) { $devbox_newest_members = $DB_site->query($devbox_config['newest_members_sql']); $devbox_config['newest_members_num'] = $DB_site->num_rows($devbox_newest_members); $devbox_counter = 0; while($data = $DB_site->fetch_array($devbox_newest_members)) { $data['counter'] = ++$devbox_counter; $data['date'] = vbdate($vboptions['dateformat'], $data['joindate'], false, true, false); eval('$devbox[\'newest_members\'] .= "' . fetch_template('devbox-newest_members_bit') . '";'); } $DB_site->free_result($devbox_newest_members); unset($devbox_newest_members, $devbox_counter, $data); } //-------------------------------------------------------------------------------- // Grab the 'online today' if(isOn('online_today')) { $devbox_online_today = $DB_site->query($devbox_config['online_today_sql']); $devbox_counter = 0; while($data = $DB_site->fetch_array($devbox_online_today)) { $data['counter'] = ++$devbox_counter; if($data['invisible']) { if(!($permissions['genericpermissions'] & CANSEEHIDDEN)) continue; else $data['invisible'] = '*'; } else $data['invisible'] = ''; eval('$devbox[\'online_today\'] .= "' . fetch_template('devbox-online_today_bit') . '";'); $devbox['online_today'] .= ', '; } $devbox['online_today'] = substr($devbox['online_today'], 0, (strlen($devbox['online_today']) - 3)); $devbox['online_today_num'] = $devbox_counter; $DB_site->free_result($devbox_online_today); unset($devbox_online_today, $devbox_counter, $data); //////////////////// if(!isset($datastore['maxonlinetoday'])) { $devbox['online_today_max'] = $devbox['online_today_num']; $devbox['online_today_maxwhen'] = mktime(); $devbox_ot['online_today_max'] = $devbox['online_today_max']; $devbox_ot['online_today_maxwhen'] = $devbox['online_today_maxwhen']; $devbox_ot = serialize($devbox_ot); $DB_site->query("### devbox_work.php - insert online today into datastore ### INSERT INTO {$TP}datastore (title, data) VALUES ('maxonlinetoday', '$devbox_ot')"); } else { $devbox_ot = unserialize($datastore['maxonlinetoday']); if($devbox_ot['online_today_max'] < $devbox['online_today_num']) { $devbox['online_today_max'] = $devbox['online_today_num']; $devbox['online_today_maxwhen'] = mktime(); $devbox_ot['online_today_max'] = $devbox['online_today_max']; $devbox_ot['online_today_maxwhen'] = $devbox['online_today_maxwhen']; $devbox_ot = serialize($devbox_ot); $DB_site->query("### devbox_work.php - update online today ### UPDATE {$TP}datastore SET data='$devbox_ot' WHERE title='maxonlinetoday'"); } else { $devbox['online_today_max'] = $devbox_ot['online_today_max']; $devbox['online_today_maxwhen'] = $devbox_ot['online_today_maxwhen']; } } $devbox['online_today_maxwhen'] = vbdate($vboptions['dateformat'], $devbox['online_today_maxwhen'], true, true, false); unset($devbox_it); } //-------------------------------------------------------------------------------- // Grab the 'top posters' if(isOn('top_posters')) { $devbox_top_posters = $DB_site->query($devbox_config['top_posters_sql']); $devbox_config['top_posters_num'] = $DB_site->num_rows($devbox_top_posters); $devbox_counter = 0; while($data = $DB_site->fetch_array($devbox_top_posters)) { $data['counter'] = ++$devbox_counter; eval('$devbox[\'top_posters\'] .= "' . fetch_template('devbox-top_posters_bit') . '";'); } $DB_site->free_result($devbox_top_posters); unset($devbox_top_posters, $devbox_counter, $data); } /********************************************************************************* 5. MISC Misc functions. You shouldnt edit this area. *********************************************************************************/ // check if config value to see if we should do something or not function isOn($what) { global $devbox_config; if(!isset($devbox_config["$what"])) return false; $val = $devbox_config["$what"]; if(is_string($val)) $val = strtolower($val); if($val === 'on' OR $val === 1 OR $val === true) { $devbox_config["$what"] = true; return true; } else { $devbox_config["$what"] = false; return false; } } ?> Thanks. |
#24
|
|||
|
|||
I have istalled the hack but it not show like in your page???
I see the box's in the buttom not in the right of screen. |
#25
|
||||
|
||||
I am getting this error, I tried defining the forum numbers manually instead of 'auto' and that made no difference:
Fatal error: Call to a member function on a non-object in /domains/domainname-com/domainname/www_root/devbox_work.php on line 180 |
#26
|
|||
|
|||
Has the recent errors been fixed? What about making this show on the right hand side, I'd be very interested in this hack if instructions where provided to make it show on the right side.
|
#27
|
|||
|
|||
I really need help with this, when I go to devbox_work.php it doesn't work but shows an error. Please help!
|
#28
|
|||
|
|||
I'm getting an error similar to one mentioned before...unfortunately, that poster never provided the correction, so I don't know what I'm doing wrong here. I did get the same error, but I input the specific forum ID's, and it got rid of 2 errors.
I'm left with: Fatal error: Call to a member function on a non-object in /home/myfamily/public_html/forums/devbox_work.php on line 180 My dev site: www.myfamilycorner.net/forums/ What would cause this error? This is my config: PHP Code:
|
#29
|
|||
|
|||
does the forumid # have to reflect exzaclty like on the site or can i provide 1, through 300;?
|
#30
|
||||
|
||||
Can I get a screen shot of the dullness that is this hack's default display?
|
#31
|
|||
|
|||
This doesn't update the "latest threads" when someone posts in a thread...it only updates the list of actual new threads. How can we set it, so that it displays the threads w/ the latest posts?
|
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|