News:

Bored?  Looking to kill some time?  Want to chat with other SMF users?  Join us in IRC chat or Discord

Main Menu

PrettyURLs en SMF 2.0.7

Started by underc0de, March 19, 2014, 11:59:07 AM

Previous topic - Next topic

underc0de

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!

1van10

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)

underc0de

Xargo, estoy mas que agradecido! He podido instalarlo sin problemas!

Lucas19992


Advertisement: