Log in

View Full Version : Need help modifiying funtions_online.php and adding entries


BamaStangGuy
05-30-2006, 04:44 AM
Hello,

I am using vBadvanced and wish to modify the online area to show where users are on all of my pages.

My situation is I have the mainpage in root as index.php and the forum above it in /forum/

I have got this to work for two pages but when I had another 3rd if condition it breaks it.

Here is how I have it setup:


case 'index':
if ($userinfo[location] == '/') {
$userinfo['action'] = 'Viewing Home Page';
$userinfo['where'] = '<a href="' . $userinfo[location] . '">Home Page</a>';
}
else {
$userinfo['action'] = 'Viewing Forum Home Page';
$userinfo['where'] = '<a href="' . $vbulletin->options['forumhome'] . '.php' . $vbulletin->session->vars['sessionurl_q'] . '">' . $vbulletin->options['bbtitle'] . '</a>';
}
break;
case 'fordtrademark':
$userinfo['action'] = 'Firm Faces Suit by Ford for Trademark Violation';
$userinfo['where'] = '<a href="http://www.mustangevolution.com/stockton-firm-faces-suit-ford-trademark-violation/">Stockton Firm Faces Suit by Ford for Trademark Violation</a>';
break;
case 'history':
$userinfo['action'] = 'Viewing Mustang Specifications Home';
$userinfo['where'] = '<a href="http://www.mustangevolution.com/ford-mustang-history-information/">Mustang Specifications Page</a>';
break;
case '2005intro':
$userinfo['action'] = 'Viewing 2005 Mustang Introduction Page';
$userinfo['where'] = '<a href="http://www.mustangevolution.com/2005-ford-mustang-history-information/">2005 Mustang Specifications Introduction Page</a>';
break;


case '/':
case '':
case 'cron.php': // this shouldn't occur but just to be sane
case $vbulletin->options['forumhome'] . '.php':
if ($values['page'] == 'fordtrademark')
{
$userinfo['activity'] = 'fordtrademark';
}
if ($values['page'] == 'history')
{
$userinfo['activity'] = 'history';
}
if ($values['page'] == '2005history')
{
$userinfo['activity'] = '2005intro';
}
else
{
$userinfo['activity'] = 'index';
}
break;

With the 2005intro added to the bottom if it makes all the pages not show, but if I remove the 2005intro if conditional and leave the history and fordtrademark those two pages will work.

Hope I was clear enough for you, if not please ask and I will explain further :)

No one has any suggestions on why it is not working?????

If I remove this: if ($values['page'] == '2005history')
{
$userinfo['activity'] = '2005intro';
}

The two above it work. If I add that back none of them show up properly

Zachery
05-30-2006, 09:58 PM
Hmm, I believe that there is a addon for 3.5 already that allows you to define wol pages.

Paul M
05-30-2006, 10:52 PM
case '/':
case '':
case 'cron.php': // this shouldn't occur but just to be sane
case $vbulletin->options['forumhome'] . '.php':
if ($values['page'] == 'fordtrademark')
{
$userinfo['activity'] = 'fordtrademark';
}
if ($values['page'] == 'history')
{
$userinfo['activity'] = 'history';
}
if ($values['page'] == '2005history')
{
$userinfo['activity'] = '2005intro';
}
else
{
$userinfo['activity'] = 'index';
}
break;

No one has any suggestions on why it is not working?????

It doesn't work because the logic is screwed, the final bit in bold basically says if the page is '2005history' then set the activity to '2005intro' otherwise, set it to 'index' - irrespective of anything else before it.

BamaStangGuy
05-31-2006, 12:36 AM
It doesn't work because the logic is screwed, the final bit in bold basically says if the page is '2005history' then set the activity to '2005intro' otherwise, set it to 'index' - irrespective of anything else before it.


Thank you! Is there a way to do what I am trying to do though? If so what is the correct way to do it?

Hmm, I believe that there is a addon for 3.5 already that allows you to define wol pages.
I will look around for it

Paul M
05-31-2006, 01:39 AM
Thank you! Is there a way to do what I am trying to do though? If so what is the correct way to do it
There is more than one way to do it, I prefer the method below for a small number of variations (some would say it should be done using a few IFELSE's, I hate them and always find them confusing to follow).

If there were more variations I would probably use another switch/case.


case $vbulletin->options['forumhome'] . '.php':
$userinfo['activity'] = 'index';
if ($values['page'] == 'history') $userinfo['activity'] = 'history';
if ($values['page'] == '2005history') $userinfo['activity'] = '2005intro';
if ($values['page'] == 'fordtrademark') $userinfo['activity'] = 'fordtrademark';
break;


Btw, the layout is a personal preference for IF's that only perform one action, definitely against vb standards ;)

BamaStangGuy
05-31-2006, 03:15 AM
There is more than one way to do it, I prefer the method below for a small number of variations (some would say it should be done using a few IFELSE's, I hate them and always find them confusing to follow).

If there were more variations I would probably use another switch/case.


case $vbulletin->options['forumhome'] . '.php':
$userinfo['activity'] = 'index';
if ($values['page'] == 'history') $userinfo['activity'] = 'history';
if ($values['page'] == '2005history') $userinfo['activity'] = '2005intro';
if ($values['page'] == 'fordtrademark') $userinfo['activity'] = 'fordtrademark';
break;


Btw, the layout is a personal preference for IF's that only perform one action, definitely against vb standards ;)
Thank you that worked :D