vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=15)
-   -   Rethinking "Who's Online" (https://vborg.vbsupport.ru/showthread.php?t=70466)

welo 10-12-2004 02:05 AM

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.

Natch 10-12-2004 02:08 AM

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"

welo 10-12-2004 02:22 AM

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.

filburt1 10-12-2004 02:23 AM

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).

Natch 10-12-2004 02:53 AM

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.

Brad 10-12-2004 07:15 AM

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.

welo 10-12-2004 02:18 PM

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. :)


All times are GMT. The time now is 08:57 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01046 seconds
  • Memory Usage 1,750KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (9)bbcode_php_printable
  • (5)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (7)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.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/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.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
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete