viernes, abril 18, 2014

No aparece el RECAPTCHA en Joomla 2.5 o 3.x

Al ir al contacto del sitio con el que estaba trabajando note que el captcha no aparecia, se quedaba en blanco. Abri la consola de Firebug, recargue la pagina y me mostro el siguiente mensaje: "NetworkError: 404 Not Found - http://api.recaptcha.net/js/recaptcha_ajax.js", el error era logico el archivo nombrado no existia. Googlee un poco y me encontre con que reCaptcha ahora se aloja en Google (se esperaba, lo habian avisado).
La solucion en cuestion es la siguiente
  1. Descargamos el archivo /miJoomla/plugins/captcha/recaptcha/recaptcha.php.
  2. Vamos a la linea 24 donde dice const RECAPTCHA_API_SERVER = "http://api.recaptcha.net";
  3. Reemplazamos por const RECAPTCHA_API_SERVER = "http://www.google.com/recaptcha/api";
  4. Guardamos el archivo, lo volvemos a subir y listo.
Esta solucion se puede aplicar a cualquier caso en que se utilice reCaptcha y en cualquier Joomla. Obviamente en este caso esta aplicado a Joomla 2.5 por mi caso particular pero tranquilamente se puede adaptar la solucion a otras versiones de Joomla, plugins, modulos, componentes, etc.
Espero les haya servido de ayuda.

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 '
    ';
       }