PM me your plugin code, forum_block code, and block templates. I will take a look at it.
You are talking about just adding an 'Ad' via a plugin to a custom "forum block", correct?
The array ($ad_locator) is already registered to all templates that use the templater. Therefore, if you write a plugin to hook "parse_templates" the "$ad_locator" array variable will already be passed to the template (does not need to be registered). The same is true if you are passing a template to that same variable. To reiterate there are several global variables that are automatically registered to the template system, "ad_locator" is one of them.
For Example: if I create the template variable {vb:raw ad_location.tbworld_ad_template_hook_variable} in my custom "forumblock" template, then the following plugin code will display my custom 'AD' template inside my custom "forumblock" template;
Plugin:
PHP Code:
// HOOK: parse_templates
$ad_location['tbworld_ad_template_hook_variable'] = vB_Template::create('ad_global_below_navbar')->render();
Custom Forum Block Template: "block_tbworld"
HTML Code:
<!-- block_tbworld - START -->
<!-- Custom "forum_block" template -->
<li>
<div class="block smaller">
<div class="blocksubhead">
<a class="collapse"> <!-- collapse code chopped -->
<span class="blocktitle">{vb:raw blockinfo.title}</span>
</div>
<div class="widget_content blockbody floatcontainer">
<div id="block_tbworld_{vb:raw blockinfo.blockid}" class="blockrow">
<!-- This is where the forum block "$output" is sent -->
<!-- This can be another template or HTML code. -->
{vb:raw content}
<!-- Template Variable: for custom "AD" template or custom "AD" HTML code -->
{vb:raw ad_location.tbworld_ad_template_hook_variable}
</div>
</div>
</div>
<div class="underblock"></div>
</li>
<!-- block_tbworld - END -->