Simple Machines Community Forum

SMF Support => Español (Spanish) => Language Specific Support => Modificaciones (Mods) => Topic started by: underc0de on March 19, 2014, 11:59:07 AM

Title: PrettyURLs en SMF 2.0.7
Post by: underc0de on March 19, 2014, 11:59:07 AM
Hola a todos!
Intento instalar PrettyURLs: http://custom.simplemachines.org/mods/?mod=636

Compatible With:
    1.1.8, 1.1.9, 1.1.10, 1.1.11, 1.1.12, 1.1.13, 1.1.14, 1.1.15, 1.1.16, 1.1.17, 1.1.18, 1.1.19, 2.0, 2.0.1, 2.0.2, 2.0.3, 2.0.4, 2.0.5, 2.0.6

Al intentar instalarlo, me tira el siguiente error:

QuoteError en la Instalación del Paquete
Se ha encontrado algún error durante la prueba de la instalación de este paquete. Es altamente recomendable que no continúes la instalación a menos que sepas lo que estás haciendo, y hayas realizado una copia de seguridad muy recientemente. Este error puede haber sido causado por un conflicto entre el paquete que estás intentando instalar y otro paquete que ya has instalado, un error en el propio paquete, un paquete que requiere otro paquete que no has instalado aún, o un paquete diseñado para otra versión de SMF.

Que puedo hacer?

Saludos!
Title: Re: PrettyURLs en SMF 2.0.7
Post by: 1van10 on March 19, 2014, 12:42:46 PM
Al parecer el problema esta en esta operacion:

BUSCAR:
if (empty($modSettings['queryless_urls']) || ($context['server']['is_cgi'] && @ini_get('cgi.fix_pathinfo') == 0 && @get_cfg_var('cgi.fix_pathinfo') == 0) || (!$context['server']['is_apache'] && !$context['server']['is_lighttpd']))
return $val;

$val = preg_replace('/^' . preg_quote($scripturl, '/') . '\?((?:board|topic)=[^#"]+)(#[^"]*)?$/e', '\'\' . $scripturl . \'/\' . strtr(\'$1\', \'&;=\', \'//,\') . \'.html$2\'', $val);


REEMPLAZAR POR:
/*** if (empty($modSettings['queryless_urls']) || ($context['server']['is_cgi'] && @ini_get('cgi.fix_pathinfo') == 0 && @get_cfg_var('cgi.fix_pathinfo') == 0) || (!$context['server']['is_apache'] && !$context['server']['is_lighttpd']))
return $val;

$val = preg_replace('/^' . preg_quote($scripturl, '/') . '\?((?:board|topic)=[^#"]+)(#[^"]*)?$/e', '\'\' . $scripturl . \'/\' . strtr(\'$1\', \'&;=\', \'//,\') . \'.html$2\'', $val); ***/





El trozo de codigo a reemplazar esta ligeramente cambiado en la parte final del que busca, este es el del News.php de SMF 2.0.7 virgen:
if (empty($modSettings['queryless_urls']) || ($context['server']['is_cgi'] && @ini_get('cgi.fix_pathinfo') == 0 && @get_cfg_var('cgi.fix_pathinfo') == 0) || (!$context['server']['is_apache'] && !$context['server']['is_lighttpd']))
return $val;

$val = preg_replace_callback('~^' . preg_quote($scripturl, '/') . '\?((?:board|topic)=[^#"]+)(#[^"]*)?$~', create_function('$m', 'global $scripturl; return $scripturl . \'/\' . strtr("$m[1]", \'&;=\', \'//,\') . \'.html\' . (isset($m[2]) ? $m[2] : "");'), $val);



En teoria reemplazado deberia quedar asi:
/*** if (empty($modSettings['queryless_urls']) || ($context['server']['is_cgi'] && @ini_get('cgi.fix_pathinfo') == 0 && @get_cfg_var('cgi.fix_pathinfo') == 0) || (!$context['server']['is_apache'] && !$context['server']['is_lighttpd']))
return $val;

$val = preg_replace_callback('~^' . preg_quote($scripturl, '/') . '\?((?:board|topic)=[^#"]+)(#[^"]*)?$~', create_function('$m', 'global $scripturl; return $scripturl . \'/\' . strtr("$m[1]", \'&;=\', \'//,\') . \'.html\' . (isset($m[2]) ? $m[2] : "");'), $val); ***/



He probado a hacerlo y me deja instalar el paquete correctamente, ya que lo que hace esa operacion es omitir un trozo de codigo, te lo dejo modificado para SMF 2.0.7 (NO ME HAGO RESPONSABLE DE LO QUE PASE, A MI ME HA FUNCIONADO, POR ESO LO PONGO)

EDITO: Si, deberia funcionar, al parecer la modificacion en smf 2.0.7 es para adaptarse a PHP 5.5, asi que lo que te adjunto funciona seguro  :D(fuente (http://www.simplemachines.org/community/index.php?topic=146969.msg3659825#msg3659825))
Title: Re: PrettyURLs en SMF 2.0.7
Post by: underc0de on March 19, 2014, 12:51:29 PM
Xargo, estoy mas que agradecido! He podido instalarlo sin problemas!
Title: Re: PrettyURLs en SMF 2.0.7
Post by: Lucas19992 on May 11, 2014, 03:21:08 PM
Muchas gracias xargo