PDA

View Full Version : [HOW TO - vB4] Sidebar in your own mod


Coroner
19 Feb 2010, 19:04
Do you like the sidebar ? Here I will explain how to insert it into your own mod.

1.) make sure that you have loaded forumhome.css. This is nessesary for the blocks.
2.) prepare your template(s) (modify your product).

You have to do this for all "main" templates you'd like to insert the sidebar!

search for:
</head>
and add above:
<vb:if condition="$show['sidebar']">
<link rel="stylesheet" type="text/css" href="{vb:var vbcsspath}tagcloud.css" />
<script type="text/javascript" src="{vb:stylevar yuipath}/animation/animation-min.js?v={vb:raw vboptions.simpleversion}"></script>
<script type="text/javascript">
var sidebar_align = '<vb:if condition="$vboptions['sidebarposition'] == 0">left<vb:else />right</vb:if>';
var content_container_margin = parseInt('{vb:math {vb:stylevar forum_sidebar_width}+{vb:math {vb:stylevar padding}*2}}');
var sidebar_width = parseInt('{vb:stylevar forum_sidebar_width}');
</script>
<script type="text/javascript" src="{vb:raw vboptions.bburl}/clientscript/vbulletin-sidebar.js?v={vb:raw vboptions.simpleversion}"></script>
</vb:if>
next search for:
{vb:raw header}
{vb:raw navbar}
and add below:
<vb:if condition="$show['sidebar']">
<div id="content_container"<vb:if condition="$vboptions['sidebarposition'] == 0"> class="contentright"</vb:if>>
<div id="content">
</vb:if>
and at least, search for:
{vb:raw footer}
and add above:
<vb:if condition="$show['sidebar']">
</div>
</div>
<div id="sidebar_container"<vb:if condition="$vboptions['sidebarposition'] == 0"> class="sidebarleft"</vb:if>>
<a id="sidebar_button_link" href="#">
<vb:if condition="$vboptions['sidebarposition'] == 0">
<img id="sidebar_button" src="{vb:stylevar imgdir_misc}/tab-collapsed-left.png" alt="" />
<vb:else />
<img id="sidebar_button" src="{vb:stylevar imgdir_misc}/tab-collapsed.png" alt="" />
</vb:if>
</a>
<ul id="sidebar">
{vb:raw sidebar}
</ul>
</div>
</vb:if>

3.) preparing you're php file(s). Somewhere in you file you're requireing the global.php.
Below it you can insert the following script:
// sidebar
$show['sidebar'] = false;
if ($vbulletin->options['enablesidebar'] AND !(is_browser('ie') AND !is_browser('ie', 7)))
{
require_once (DIR . '/includes/class_block.php');
$blockmanager = vB_BlockManager::create($vbulletin);
$sidebar = $blockmanager->getSidebarHTML();
if ($sidebar)
{
$show['sidebar'] = true;
}
}
This is the original vBulletin Script. That means, the sidebar is always enabled, when the sidebar is enabled in the AdminCP.
If you like to change that, simply change the following line:
if ($vbulletin->options['enablesidebar'] AND !(is_browser('ie') AND !is_browser('ie', 7)))
into:
if ($sidebar_in_my_mod AND $vbulletin->options['enablesidebar'] AND !(is_browser('ie') AND !is_browser('ie', 7)))
$sidebar_in_my_mod could be a value taken from you're mod (eg. $vbulletin->options['xyz']).

Now the last step. Somewhere you have to register your "main" template, simply insert
$templater->register('sidebar', $sidebar);

We're finish now. You will see the sidebar in you own modification.

Remember: This will show all availiable blocks.
You can use this mod to set the block on page ....
http://www.vbulletin.org/forum/showthread.php?t=235219

I hope this article is helpfull.

Coroner

abdobasha2004
07 Mar 2010, 14:02
thank you
nice !

omardealo
16 Mar 2010, 00:32
thnx
working good
http://www.7-secret.org/page.php?do=1&language=en
http://www.7-secret.org/page.php?do=2&language=en
http://www.7-secret.org/page.php?do=3&language=en
http://www.7-secret.org/page.php?do=4&language=en
http://www.7-secret.org/page.php?do=5&language=en

Jaxel
02 Apr 2010, 20:26
This isn't working for me... at all. I get the small arrow tab, but it shows on the bottom of my page... instead of on the right... and if I click the arrow, nothing shows up. Below is my page... I cut and pasted the contents directly into it for testing purposes...

{vb:stylevar htmldoctype}
<html xmlns="http://www.w3.org/1999/xhtml" dir="{vb:stylevar textdirection}" lang="{vb:stylevar languagecode}" id="vbulletin_html">
<head>
{vb:raw headinclude}
<link rel="stylesheet" type="text/css" href="{vb:raw vbcsspath}album.css" />
<title>{vb:raw vboptions.bbtitle} - {vb:raw pagetitle}</title>
{vb:raw headinclude_bottom}

<vb:if condition="$show['sidebar']">
<link rel="stylesheet" type="text/css" href="{vb:var vbcsspath}tagcloud.css" />
<script type="text/javascript" src="{vb:stylevar yuipath}/animation/animation-min.js?v={vb:raw vboptions.simpleversion}"></script>
<script type="text/javascript">
var sidebar_align = '<vb:if condition="$vboptions['sidebarposition'] == 0">left<vb:else />right</vb:if>';
var content_container_margin = parseInt('{vb:math {vb:stylevar forum_sidebar_width}+{vb:math {vb:stylevar padding}*2}}');
var sidebar_width = parseInt('{vb:stylevar forum_sidebar_width}');
</script>
<script type="text/javascript" src="{vb:raw vboptions.bburl}/clientscript/vbulletin-sidebar.js?v={vb:raw vboptions.simpleversion}"></script>
</vb:if>

</head>
<body>
{vb:raw header}
{vb:raw navbar}

<vb:if condition="$show['sidebar']">
<div id="content_container"<vb:if condition="$vboptions['sidebarposition'] == 0"> class="contentright"</vb:if>>
<div id="content">
</vb:if>

<div class="block">
<h2 class="blockhead">Most Recent Media</h2>
<div class="blockbody floatcontainer">
<ul id="mediacontainer" style="padding: 20px 0px 0px 0px; text-align: center;">
<li style="-webkit-box-shadow: #C8C8C8 -2px 2px 2px; background: white none; border: 1px solid #E9E9E9; display: block; float: left; padding: 20px; margin: 0px 0px 20px 20px; width: 400px;">
<div style="padding-bottom: 10px;">
<b><a href="media.php?do=details&amp;mid=7">Soulcalibur IV: Ending Compilation 3</a></b>
</div>
<div style="float:left; position: relative;">
<span style="position:absolute; bottom:3px; right:3px; font-size:12px; color:#FFFFFF; background-color:#000000; padding:2px;"><b>10:36</b></span>
<a href="media.php?do=details&amp;mid=7"><img src="customVID/1/_SCipTB-7gI.jpg" border="0" alt="Soulcalibur IV: Ending Compilation 3" height="106" /></a>
</div>
<div>
03/28/2010 at <span class="time">09:46 PM</span><br />
Uploaded by <a href="media.php?do=user&amp;uid=1">Jaxel</a><br />
<br />
<img src="images/rating/rating-trans-15_0.png" alt="Rating: 0" /><br />
<br />
<a href="media.php?do=category&amp;cid=1">Intros/Cutscenes</a><br />
Views: 16 - Comments: 0
</div>
</li>

</ul>
</div>
</div>

<vb:if condition="$show['sidebar']">
</div>
</div>
<div id="sidebar_container"<vb:if condition="$vboptions['sidebarposition'] == 0"> class="sidebarleft"</vb:if>>
<a id="sidebar_button_link" href="#">
<vb:if condition="$vboptions['sidebarposition'] == 0">
<img id="sidebar_button" src="{vb:stylevar imgdir_misc}/tab-collapsed-left.png" alt="" />
<vb:else />
<img id="sidebar_button" src="{vb:stylevar imgdir_misc}/tab-collapsed.png" alt="" />
</vb:if>
</a>
<ul id="sidebar">
{vb:raw sidebar}
</ul>
</div>
</vb:if>

<div style="text-align: center;">
SpyGlass Media Library &copy; Jason Axelrod from <a href="http://www.8wayrun.com/">8WayRun.Com</a>
</div>

{vb:raw footer}
</body>
</html>


require_once('./global.php');

// sidebar
$show['sidebar'] = false;
if ($vbulletin->options['enablesidebar'] AND !(is_browser('ie') AND !is_browser('ie', 7)))
{
require_once (DIR . '/includes/class_block.php');
$blockmanager = vB_BlockManager::create($vbulletin);
$sidebar = $blockmanager->getSidebarHTML();
if ($sidebar)
{
$show['sidebar'] = true;
}
}

--------------- Added 1270277348 at 1270277348 ---------------

Okay... I got it working... but it doesn't align correctly...

http://test.8wayrun.com/media.php?

Coroner
03 Apr 2010, 08:55
What do you mean with: "align correctely" ? I see your bar on the right.

Jaxel
04 Apr 2010, 03:23
The TOP of the sidebar is not lined up with the TOP of my main content...

TheLastSuperman
04 Apr 2010, 03:44
The TOP of the sidebar is not lined up with the TOP of my main content...

Tinker with the CSS ;)

You can wrap the entire DIV for the sidebar with a simple:

<div style="margin: -4px 0px 0px 0px;">
All that code up above here blah blah
</div>

to test then modify the original css to suit and remove the div style wrapper.

Jaxel
05 Apr 2010, 06:18
Thanks, I don't know why I didn't think of that. I've been programming nonstop for a week... so your brain starts to short out after a while.

Any word on how to add this kind of sidebar functionality to my own sidebar? Not the VB Sidebar?

Da-Vinci
10 May 2010, 19:29
This isn't working for me... at all. I get the small arrow tab, but it shows on the bottom of my page... instead of on the right... and if I click the arrow, nothing shows up. Below is my page... I cut and pasted the contents directly into it for testing purposes...


How did you manage to get it working?

I'm having the same issue. :confused:

Bisha
24 May 2012, 19:58
it want work on activity.php :S

behcet
02 May 2014, 09:46
thank you