|
El Joomla tarda en reaccionar |
|
|
|
|
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.
|