en Tecnoticias
en google
Inicie Sesión





¿Recuperar clave?
¿Quiere registrarse? Regístrese aquí
Quien está en Linea
Suscripcion RSS
Adsense de Google
XHTML Validator
Valid XHTML 1.0 Transitional
Cotizaciones
DolarHoy
Las más leídas
Ultimas Noticias
Home
El Joomla tarda en reaccionar PDF Imprimir E-Mail
Origen: Pablo   
viernes, 27 de julio de 2007
Para los que venian teniendo problemas con la velocidad de respuesta en la resolución de los nombres gracias al abandonado OpenSef, en el paquete Joomla , el mismo que usamos aquí para tecnoticias.info, acá les pasamos una pequeña (pero no por eso menos efectiva) solución que hemos encontrado en el log de Alfim:

http://custompcsoftware.com/blog/2007/03/06/opensef-rc5-sp2-perfomance-improvement/

en el archivo sef.class.php

function lookupOutgoing(  $site_id, $url ) { // static method
       global $opensef_aliases, $database;

       $returnaliases = array();
/*
       if ($site_id == null) $site_id = -1;
       if (count($opensef_aliases) > 0)        {
       foreach($opensef_aliases as $aliases){
                       if ( $aliases->internal == $url ) {
                               $returnaliases[] = $aliases;
                       }
               }
       }
*/
     if (!count($returnaliases))
     {
         $query = "SELECT * FROM #__opensef_sef WHERE published = '1'" .
         "\nAND valid = '1'" .
         "\nAND (direction IS NULL OR direction = '' OR direction = 'o')" .
         "\nAND internal='$url'".
         "\nORDER BY site_id DESC, published DESC, valid DESC, LENGTH(direction) DESC limit 1";

         $database->setQuery( $query );
         if ($database->loadResult())
         {
           $aliases = $database->loadObjectList();
           foreach($aliases as $k=>$val)
           {
             $returnaliases[] = $val;
           }
         }
     }

     if (is_array( $returnaliases ) && count( $returnaliases )) {
     $returnaliases = xclCastObjectList( $returnaliases, 'JosOpenSEFAlias' );
     return $returnaliases[0];
   }
   $null = null;
   return $null;
 }

y en el sef.php
if ($sefSite->id == null) $sefSite->id = -1;
$query = "SELECT * FROM #__opensef_sef WHERE published = '1'" .
"\nAND valid = '1'" .
"\nAND (direction IS NULL OR direction = '' OR direction = 'o')" .
"\nAND (site_id IS NULL " .
($sefSite->id ? ' OR site_id = ' . $sefSite->id : '') . ')' .
"\nAND (external='{$_SERVER['REQUEST_URI']}'" .
"\nORDER BY site_id DESC, published DESC, valid DESC, LENGTH(direction) DESC";
$database->setQuery( $query );
if ($database->loadResult()) {
$opensef_aliases = $database->loadObjectList();
}


Actualizado 15 de Mayo de 2008
Tambien es recomendable agregar indices a los campos "internal" y "external" de la tabla "jos_opensef_sef". Eso mejoro el rendimiento notablemente.

 
Siguiente >
Condiciones de Uso - © 2007 Tecnoticias.info