with Spry my tabexternal.php is in the /modules/ directoy
PHP Code:
<?php
$includetab1 .= '<table cellspacing="2" cellpadding="0" width=100%><tr> <td class="alt2"><span class="smallfont">Welcome Back To SITE NAME <b>' . $vbulletin->userinfo['username'] . '!</b><br><br>Hope you are enjoying the off season so far.<br><br> The Draft, Mini Camps & Hall of Fame Weekend Events are complete, Train Camps are in full swing and Preseason Games have started to kick off!<br><br> Im sure these next few weeks will be fun to follow and make the upcoming season even more exciting. <br><br>Good luck with your team <b>' . $vbulletin->userinfo['username'] . '.</b></span></td></tr></table>';
eval('$home["$mods[modid]"][\'content\'] .= "' . fetch_template('adv_portal_Tab_Block_Main') . '";');
?>
The adv_portal_Tab_Block_Main looks like:
PHP Code:
<script type="text/javascript" src="http://WEBSITE.com/forums/tabs/ajaxtabs.js"></script>
<div id="TabbedPanels1" class="TabbedPanels" style="padding-bottom:$vba_style[portal_vspace]px" >
<ul class="TabbedPanelsTabGroup">
<li class="TabbedPanelsTab" tabindex="0">Tab 1</li>
<li class="TabbedPanelsTab" tabindex="0">Tab 2</li>
<li class="TabbedPanelsTab" tabindex="0">Tab 3</li>
<li class="TabbedPanelsTab" tabindex="0">Tab 4</li>
</ul>
<div class="TabbedPanelsContentGroup">
<div class="TabbedPanelsContent">$includetab1</div>
<div class="TabbedPanelsContent">$includetab2</div>
<div class="TabbedPanelsContent">$includetab3</div>
<div class="TabbedPanelsContent">$includetab4</div>
</div>
</div>
<script type="text/javascript">
var TabbedPanels1 = new Spry.Widget.TabbedPanels("TabbedPanels1");
</script>
then create the php module, selecting tabexternal.php and name the template it will use

havent tested to add much tabs yet but I guess you can add them in the same tabexternal.php file then.