Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
  #1  
Old 10-12-2004, 02:05 AM
welo welo is offline
 
Join Date: Jan 2004
Location: Portland, Oregon
Posts: 172
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Rethinking "Who's Online"

So you know how every hack in here that needs a "Who's Online" modification tells you to go to includes/functions_online.php and throw in stuff like:

PHP Code:
// who's online for links library
case 'links':
    
$userinfo['action'] = 'Viewing Links Library';
    break; 
... to line ~670, then add:
PHP Code:
// who's online for links library
case 'local_links.php':
    
$userinfo['activity'] = 'links';
    break; 
... to line ~1275? Then whenever you install something else you keep opening that same file and adding more stuff. An obvious recourse would be to just create two more corresponding files then include them like:
PHP Code:
<?
// functions_online.php
// 669 lines of beginning code
include ("online_hacks01.php");
// 606 more lines of code
include ("online_hacks02.php");
// 240 final lines of code
?>
... while online_hacks[01/02].php contain what's shown above, and you'd never have to open up functions_online.php again. Whenever you hacked in something else that needed "Who's Online" you just add to online_hacks[01/02].php.

What I'd really like to do instead is include only one file that assigns a var to each section of code, and nothing seems to work. Any ideas? I'm not all that great with functions, although this seems to be the wisest option.
Reply With Quote
  #2  
Old 10-12-2004, 02:08 AM
Natch's Avatar
Natch Natch is offline
 
Join Date: Nov 2002
Location: Australia
Posts: 851
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by welo
So you know how every hack in here that needs a "Who's Online" modification tells you to go to includes/functions_online.php and throw in stuff like:

PHP Code:
// who's online for links library
case 'links':
    
$userinfo['action'] = 'Viewing Links Library';
    break; 
... to line ~670, then add:
PHP Code:
// who's online for links library
case 'local_links.php':
    
$userinfo['activity'] = 'links';
    break; 
... to line ~1275? Then whenever you install something else you keep opening that same file and adding more stuff. An obvious recourse would be to just create two more corresponding files then include them like:
PHP Code:
<?
// functions_online.php
// 669 lines of beginning code
include ("online_hacks01.php");
// 606 more lines of code
include ("online_hacks02.php");
// 240 final lines of code
?>
... while online_hacks[01/02].php contain what's shown above, and you'd never have to open up functions_online.php again. Whenever you hacked in something else that needed "Who's Online" you just add to online_hacks[01/02].php.

What I'd really like to do instead is include only one file that assigns a var to each section of code, and nothing seems to work. Any ideas? I'm not all that great with functions, although this seems to be the wisest option.
There is a hack to do this already: "Add Whos online locations from AdminCP"
Reply With Quote
  #3  
Old 10-12-2004, 02:22 AM
welo welo is offline
 
Join Date: Jan 2004
Location: Portland, Oregon
Posts: 172
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks, but that doesn't answer the question. I don't want to install another hack that installs more hacks - especially to the ACP - just so I can worry the next VB upgrade will make it not work anymore. I just want to add one file and mod another.
Reply With Quote
  #4  
Old 10-12-2004, 02:23 AM
filburt1 filburt1 is offline
 
Join Date: Feb 2002
Location: Maryland, US
Posts: 6,144
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by welo
So you know how every hack in here that needs a "Who's Online" modification tells you to go to includes/functions_online.php and throw in stuff like:

PHP Code:
// who's online for links library
case 'links':
    
$userinfo['action'] = 'Viewing Links Library';
    break; 
... to line ~670, then add:
PHP Code:
// who's online for links library
case 'local_links.php':
    
$userinfo['activity'] = 'links';
    break; 
... to line ~1275? Then whenever you install something else you keep opening that same file and adding more stuff. An obvious recourse would be to just create two more corresponding files then include them like:
PHP Code:
<?
// functions_online.php
// 669 lines of beginning code
include ("online_hacks01.php");
// 606 more lines of code
include ("online_hacks02.php");
// 240 final lines of code
?>
... while online_hacks[01/02].php contain what's shown above, and you'd never have to open up functions_online.php again. Whenever you hacked in something else that needed "Who's Online" you just add to online_hacks[01/02].php.

What I'd really like to do instead is include only one file that assigns a var to each section of code, and nothing seems to work. Any ideas? I'm not all that great with functions, although this seems to be the wisest option.
The entire WOL system is screaming for an internal map. Code changes shouldn't be necessary when the data changes (note the MVC--model/view/controller--paradigm).
Reply With Quote
  #5  
Old 10-12-2004, 02:53 AM
Natch's Avatar
Natch Natch is offline
 
Join Date: Nov 2002
Location: Australia
Posts: 851
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by welo
Thanks, but that doesn't answer the question. I don't want to install another hack that installs more hacks - especially to the ACP - just so I can worry the next VB upgrade will make it not work anymore. I just want to add one file and mod another.
It doesn't install hacks, it just allows easy addition of entries to the list of Who's online locations...

But, use it or dont use it: sup to you...

I find it helps.
Reply With Quote
  #6  
Old 10-12-2004, 07:15 AM
Brad Brad is offline
 
Join Date: Nov 2001
Posts: 4,765
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by filburt1
The entire WOL system is screaming for an internal map. Code changes shouldn't be necessary when the data changes (note the MVC--model/view/controller--paradigm).
I agree, one of the biggest disopointments of the vB3 source code is all locations are still hard coded.
Reply With Quote
  #7  
Old 10-12-2004, 02:18 PM
welo welo is offline
 
Join Date: Jan 2004
Location: Portland, Oregon
Posts: 172
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Natch
It doesn't install hacks, it just allows easy addition of entries to the list of Who's online locations...

But, use it or dont use it: sup to you...

I find it helps.
I have looked though this hack and think it is a well-done system I'll go ahead and install. Thanks for mentioning it.

[sidenote]
Took a minute to find it while searching because when talking about it people misname it slightly and usually don't link to it, so for the record:
Add Who's Online Locations From Admin CP
[/sidenote]

I still want to know how to do what I suggested though.
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 11:52 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.13213 seconds
  • Memory Usage 2,235KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (9)bbcode_php
  • (5)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (7)post_thanks_box
  • (7)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (7)post_thanks_postbit_info
  • (7)postbit
  • (7)postbit_onlinestatus
  • (7)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete