[HOW TO - vB4] Adding a New Tab in Member Profile - Reloaded
by
29 Jun 2011
This tutorial is an update of Dylanblitz' howto for older versions. Credits to him, and thanks for giving me green light for building on his ideas. This has been tested with 4.1.4 4.2, but should work as far back as 4.0.8, when profile customization was reintroduced. [Explanation: At least with version 4.1.8, the template name convention for profile tabs was changed. If you want to code for an earlier version, use custom_profile_tab_test as template name.] The result will look like this: &d=1309353861" rel="Lightbox_2214470" id="attachment130539 First step To create a new member profile tab, create a plugin at hook member_complete Code:
if (isset($vbulletin->GPC['tab'])) { $selected_tab = $vbulletin->GPC['tab']; } $blockinfo['title'] = "Test Title"; $blockid = "test"; $taburl = $memberurl = fetch_seo_url('member', $prepared) . "&tab=test#test"; $templater = vB_Template::create('memberinfo_tab'); $templater->register('selected_tab', $selected_tab); $templater->register('relpath', $relpath); $templater->register('blockinfo', $blockinfo); $templater->register('blockid', $blockid); $templater->register('taburl', $taburl); $template_hook['profile_tabs_last'] .= $templater->render(); // ### Your code to fill the tab ### // Don't forget you need to register any variables for use in templates $test_tab_content = "Congratulations, you can see me, I'm your PHP Code!"; $templater = vB_Template::create('memberinfo_block_test'); $templater->register('selected_tab', $selected_tab); $templater->register('test_tab_content', $test_tab_content); $template_hook['profile_tabs'] .= $templater->render();
Second step The second step to a custom profile tab is to create a new template. It has to be the name you used in your php code to create it, in our case: memberinfo_block_test. Code:
<div id="view-test" class="<vb:if condition="$selected_tab == 'test'">selected_view_section<vb:else />view_section</vb:if><vb:if condition="$userinfo['userid'] != $bbuserinfo['userid']"> vm_other_prof</vb:if>"> <div class="blocksubhead subsectionhead userprof_headers userprof_headers_border"> <h4 class="subsectionhead-understate">Test</h4> </div> <br />This is a <b>custom tab</b> test.<br /> {vb:raw test_tab_content} </div>
Direct access If you want to access your custom profile tag directly, append &tab=test#testto the profile URL. That's it |