vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 General Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=111)
-   -   $navclass and the User CP Navbar (https://vborg.vbsupport.ru/showthread.php?t=111534)

Krofh 03-28-2006 12:39 AM

$navclass and the User CP Navbar
 
Hey,
This is probably a really easy and stupid question, but I'm asking anyways :p how do I get the $navclass thing to work right if I'm adding a link to the UserCP Nav bar? I think I figured it out for the most part, my link looks like:

Code:

<tr>
        <td class="$navclass[mything]" nowrap="nowrap"><a class="smallfont" href="profile.php?$session[sessionurl]do=mything">$vbphrase[mything]</a></td>
</tr>

Then of course I figured out that in the code in profile.php I need to call:

Code:

construct_usercp_nav('mything');
So it will work properly. All the cells have the right style when "Mything" is selected, but if I click on another one then it has no value at all and comes out like:

Code:

<tr>
        <td class="" nowrap="nowrap"><a class="smallfont" href="profile.php?do=mything">My Thing</a></td>
</tr>

It doesn't surprise me that it doesn't work :p but if someone could help me get it right, that'd be really helpful. Thanks :)

---- new post starts here, it seems to have merged my two posts >.< ----

Well, after a long time of searching, I figured it out... but I also found many other people who have asked this question and not found the answer, so here's what to do to add something to your User CP:

1) Add the link in USERCP_SHELL, with class="$navclass[myitem]" in the <td> tag.
2) In profile.php (or use hook: profile_start), add your code for the new section
3) With this code, make sure to add: construct_usercp_nav('myitem');. This will set all of the colors on the User CP Nav bar (which one is selected and which ones aren't).
4) In includes/functions_user.php (or use hook: usercp_nav_start), add 'myitem' to the $cells array. You can do this manually in includes/functions_user.php, or in the hook add the code: $cells[] = 'myitem';

I hope this will help someone.

ckhorne 06-21-2006 11:22 PM

Thanks - this helped. Is there anyway to add the code in the hook without creating a new product XML?

IE- why can't I do something like this within my php page:


Code:


if ($hook = vBulletinHook::fetch_hook('profile_start')) {
        eval($hook);
        $cells[] = 'myitem';
}

I've tried several variations, but none seem to work (including eval'ing the $cells statement with the hook). Is the only way to do this through a product xml file?


All times are GMT. The time now is 01:22 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.00995 seconds
  • Memory Usage 1,714KB
  • 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
  • (4)bbcode_code_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (2)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