X-Cart: shopping cart software

X-Cart forums (https://forum.x-cart.com/index.php)
-   Changing design (https://forum.x-cart.com/forumdisplay.php?f=51)
-   -   Extra Fields in tabs (https://forum.x-cart.com/showthread.php?t=55180)

proboscidian 08-21-2010 07:55 AM

Extra Fields in tabs
 
I'm trying to use the built-in tabs to show extra fields without specifying each individual extra field, but so far while the tab headers look good, only the first tab's content shows in the correct div - the other tab content shows underneath the tabs. Here's my ui_tabs.tpl:
Code:

{*
$Id: ui_tabs.tpl,v 1.5 2010/07/29 14:07:41 igoryan Exp $
vim: set ts=2 sw=2 sts=2 et:
*}
<script type="text/javascript">
//<![CDATA[
$(function() {ldelim}
  var tOpts = {ldelim}
    idPrefix: '{$prefix|default:"ui-tabs-"}', cookie: {ldelim} expires: 1 {rdelim}{if $selected}, selected: '{$selected}'{/if}
  {rdelim};
  $('#{$prefix}container').tabs(tOpts);
{rdelim});
//]]>
</script>
<div id="{$prefix}container">
  <ul>
  {foreach from=$tabs item=tab key=ind}
    {inc value=$ind assign="ti"}
    <li><a href="{if $tab.url}{$tab.url|amp}{else}#{$prefix}{$tab.anchor|default:$ti}{/if}">{$tab.title|escape}</a></li>
  {/foreach}
  {* Extra Fields Tabs *}
  {if $active_modules.Extra_Fields}
  {foreach from=$extra_fields item=v}
  {if $v.active eq "Y" and $v.field_value}
    <li><a href="#{$v.field}">{$v.field}</a></li>
  {/if}
{/foreach}
  {/if}
  {* End Extra Fields Tabs *}
  </ul>
  {foreach from=$tabs item=tab key=ind}
    {if $tab.tpl}
      {inc value=$ind assign="ti"}
      <div id="{$prefix}{$tab.anchor|default:$ti}">
        {include file=$tab.tpl nodialog=true}
      </div>
    {/if}
  {/foreach}
  {* Extra Fields Tab Content *}
  {if $active_modules.Extra_Fields}
  {foreach from=$extra_fields item=v}
    {if $v.active eq "Y" and $v.field_value}
  <div id="{$v.field}">
  {$v.field_value}
  </div>
  {/if}
  {/foreach}
  {/if}
  {* End Extra Fields Tab Content *}
</div>

Any ideas? I could probably add in the individual service names and get it to work, but that seems clumsy.

proboscidian 08-21-2010 08:12 AM

Re: Extra Fields in tabs- SOLVED
 
I figured it out when I looked at the source. The tab that didn't work had a space in the field name, so I had to get rid of any spaces. The id also has to start with "product-tabs". Here's the final code:
Code:

{*
$Id: ui_tabs.tpl,v 1.5 2010/07/29 14:07:41 igoryan Exp $
vim: set ts=2 sw=2 sts=2 et:
*}
<script type="text/javascript">
//<![CDATA[
$(function() {ldelim}
  var tOpts = {ldelim}
    idPrefix: '{$prefix|default:"ui-tabs-"}', cookie: {ldelim} expires: 1 {rdelim}{if $selected}, selected: '{$selected}'{/if}
  {rdelim};
  $('#{$prefix}container').tabs(tOpts);
{rdelim});
//]]>
</script>
<div id="{$prefix}container">
  <ul>
  {foreach from=$tabs item=tab key=ind}
    {inc value=$ind assign="ti"}
    <li><a href="{if $tab.url}{$tab.url|amp}{else}#{$prefix}{$tab.anchor|default:$ti}{/if}">{$tab.title|escape}</a></li>
  {/foreach}
  {* Extra Fields Tabs *}
  {if $active_modules.Extra_Fields}
  {foreach from=$extra_fields item=v}
  {if $v.active eq "Y" and $v.field_value}
    <li><a href="#product-tabs-{$v.field|replace:" ":"-"}">{$v.field}</a></li>
  {/if}
{/foreach}
  {/if}
  {* End Extra Fields Tabs *}
  </ul>
  {foreach from=$tabs item=tab key=ind}
    {if $tab.tpl}
      {inc value=$ind assign="ti"}
      <div id="{$prefix}{$tab.anchor|default:$ti}">
        {include file=$tab.tpl nodialog=true}
      </div>
    {/if}
  {/foreach}
  {* Extra Fields Tab Content *}
  {if $active_modules.Extra_Fields}
  {foreach from=$extra_fields item=v}
    {if $v.active eq "Y" and $v.field_value}
  <div id="product-tabs-{$v.field|replace:" ":"-"}">
  {$v.field_value}
  </div>
  {/if}
  {/foreach}
  {/if}
  {* End Extra Fields Tab Content *}
</div>



All times are GMT -8. The time now is 10:14 AM.

Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.