lunes, abril 14, 2014

Solucion al problema de JOOMLA 3.x 500 JHtmlBootstrap::startTabSet not found

the error comes from the JHtmlBootstrap class not containing the functions startTabSet endTabSet addTab or endTab.

Temporary solution while joomla fix this is to add the following code to the end of /libraries/cms/html/bootstrap.php 

The code should be added just above the last }

Code:
public static function startTabSet($selector = 'tabs', $params = array())
   {
      $sig = md5(serialize(array($selector, $params)));

      if (!isset(self::$loaded[__METHOD__][$sig]))
      {
         // Include Bootstrap framework
         self::framework();

         // Setup options object
         $opt['active'] = (isset($params['active']) && ($params['active'])) ? (string) $params['active'] : '';

         $options = JHtml::getJSObject($opt);

         // Attach tooltips to document
         JFactory::getDocument()->addScriptDeclaration(
            "(function($){
               $('#$selector a').click(function (e)
               {
                  e.preventDefault();
                  $(this).tab('show');
               });
            })(jQuery);"
         );

         // Set static array
         self::$loaded[__METHOD__][$sig] = true;
         self::$loaded[__METHOD__][$selector]['active'] = $opt['active'];
      }
      $html = '
';
      $html .= '
';
      return $html;
   }

   public static function endTabSet()
   {
      return '
';
   }

   public static function addTab($selector, $id, $title)
   {
      $active = (self::$loaded['JHtmlBootstrap::startTabSet'][$selector]['active'] == $id) ? ' active' : '';

      // Inject tab into UL
      JFactory::getDocument()->addScriptDeclaration(
         "(function($){
            $(document).ready(function() {
               // Handler for .ready() called.
               var tab = $('
  • $title
  • ');
                   $('#" . $selector . "Tabs').append(tab);
                });
             })(jQuery);"
          );

          return '
    ';
       }
     
       public static function endTab()
       {
          return '
    ';
       }

    No hay comentarios.: