Welcome to Egypt Forums Mark forums read | Egypt Main Page
Egypt Forums
Arabic Movies



Articles Thread, [How-to] Add more tabs to the vB 3.7 profile pages in vBulletin; <div> [How-to] Add more tabs to the vB 3.7 profile pages If you want to add more tabs to the ...

Short Link: http://forum.egypt.com/enforum/showthread.php?t=3310


Reply
LinkBack Thread Tools Display Modes
[How-to] Add more tabs to the vB 3.7 profile pages
 
 
The God Father
Developer's Avatar

Reply With Quote
 
Join Date: Jul 2008
Location: NDC
Posts: 5,425
08-09-2008, 07:36 PM
 
<div> [How-to] Add more tabs to the vB 3.7 profile pages

If you want to add more tabs to the vB 3.7 profile pages, assuming JavaScript is enabled, or more blocks if JavaScript is off, then this tutorial is for you. If you like to learn in a trial by fire sort of way, create a new template titled memberinfo_block_mymodification with the following content:
<div style="margin: 5px 10px;"> <div class="smallfont" style="margin-bottom: 2px;">Code:
PHP Code:
     <div class="alt1 block_row">
    <
ul class="list_no_decoration">
        
$block_data[mymodification]
    </
ul>
</
div>
Add a new plugin to the member_build_blocks_start hook with the following PHP code:
<div style="margin: 5px 10px;"> <div class="smallfont" style="margin-bottom: 2px;">Code:
PHP Code:
     $blocklist = array_merge($blocklist, array(
    
'mymodification' => array(
        
'class' => 'MyModification',
        
'title' => 'My Modification',
        
'hook_location' => 'profile_left_last'
    
)
));

class
vB_ProfileBlock_MyModification extends vB_ProfileBlock
{
    var
$template_name = 'memberinfo_block_mymodification';

    function
confirm_empty_wrap()
    {
        return
false;
    }

    function
confirm_display()
    {
        return (
$this->block_data['mymodification'] != '');
    }

    function
prepare_output($id = '', $options = array())
    {
        
$this->block_data['mymodification'] = 'Content to show in the tab.';
    }
}
Now visit your profile page to test it out. You should see a 'My Modification' tab that when clicked shows you the following text: Content to show in the tab. Exciting huh? Of course you need to add your own custom code for what to display, but this tutorial isn't about that, but rather to show you how to add tabs to the profile pages.

If you want to learn a bit more of the details, first consider this part:
<div style="margin: 5px 10px;"> <div class="smallfont" style="margin-bottom: 2px;">Code:
PHP Code:
     $blocklist = array_merge($blocklist, array(
    
'mymodification' => array(
        
'class' => 'MyModification',
        
'title' => 'My Modification',
        
'hook_location' => 'profile_left_last'
    
)
));
The $blocklist variable contains the default blocks. You merge to that another array where the key 'mymodification' references an array which sets a class to use, the title of the tab on the profile page, and the hook location. You can set whatever you want for title including the use of $vbphrase but in the example 'My Modification' is used. As for the hook location, you can use profile_left_first or profile_left_last depending on whether you want your new tab to be left or right of the current tabs, respectively.

Next consider the next part:
<div style="margin: 5px 10px;"> <div class="smallfont" style="margin-bottom: 2px;">Code:
PHP Code:
     class vB_ProfileBlock_MyModification extends vB_ProfileBlock
{
    var
$template_name = 'memberinfo_block_mymodification';

    function
confirm_empty_wrap()
    {
        return
false;
    }

    function
confirm_display()
    {
        return (
$this->block_data['mymodification'] != '');
    }

    function
prepare_output($id = '', $options = array())
    {
        
$this->block_data['mymodification'] = 'Content to show in the tab.';
    }
}
The class needs to be called vB_ProfileBlock_MyModification extends vB_ProfileBlock and note that part of the class name is vB_ProfileBlock_MyModification where MyModification comes from the class value set in your addition to the $blocklist variable. Inside the class, $template_name is set to the template to use, the confirm_empty_wrap function returns false to not create an empty block, the confirm_display function tests whether there is any content to display, and the prepare_output function is where you’d want to add your own custom code to fetch whatever you want to display, setting $this->block_data['mymodification'] to the content you want displayed. Remember variable scope when you add your own code, as you are inside a function that is inside a class.

Now there is the new template itself:
<div style="margin: 5px 10px;"> Code:
PHP Code:
     <div class="alt1 block_row">
    <
ul class="list_no_decoration">
        
$block_data[mymodification]
    </
ul>
</
div>
Note that $block_data[mymodification] contains whatever $this->block_data['mymodification'] contains in the prepare_output function inside the class, and because a hook location is set in your addition to the $blocklist variable, there are no manual template edits to make. Hooray! You should of course replace 'mymodification', 'MyModification', and 'My Modification' throughout this tutorial with something meaningful for your modification.

Finally there are other things that can be added to modifications such as options, and these can be seen in the vB class_profileblock.php and member.php files, though this tutorial should get you on your way to adding more content to the profile pages via additional tabs, but remember not to go overboard with queries, because even though you need to click the tab to see the content, whatever queries you run get run on page load, not tab click. Enjoy!
__________________
I Love Walking In The Rain Cuz Nobody Know I'm Crying !!
 
 
 
Reply

Articles Thread, [How-to] Add more tabs to the vB 3.7 profile pages in vBulletin; <div> [How-to] Add more tabs to the vB 3.7 profile pages If you want to add more tabs to the ...

Short Link: http://forum.egypt.com/enforum/showthread.php?t=3310


Bookmarks

Tags
add, howto, pages, profile, tabs


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
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
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
[TGW] DD Mouseover Tabs Menu 3.8 Developer Mods for 3.8.x 1 14-04-2009 01:09 PM
AJAX Tabs Content Script - Version 3.0 (YUI) Developer Mods for 3.7.x 0 25-09-2008 10:27 PM
Easy Pages 1.0.0 Light Developer Mods for 3.7.x 0 24-09-2008 04:27 AM
NinjaSlide Tabs & Slides Developer Extensions 0 21-08-2008 12:50 AM
2J tabs for Joomla Developer Templates for Joomla 1.5 0 18-08-2008 09:56 PM