Quitar el /es de Prestashop si tienes varios idiomas

Quitar el /es de Prestashop si tienes varios idiomas

Para hacer esto debes de seguir los siguientes pasos:

1- Hay que tocar el archivo classes/Link.php (line 643)

reemplazar esto:
return Language::getIsoById($id_lang).'/';

Por esto:
if (Configuration::get('PS_LANG_DEFAULT') == $id_lang) {
return '';
}else{
return Language::getIsoById($id_lang).'/';
}

2- Luego nos vamos a classes/Tools.php (line 396)


reemplazar esto:
if (($iso = Tools::getValue('isolang')) && Validate::isLanguageIsoCode($iso) && ($id_lang = (int)Language::getIdByIso($iso)))
$_GET['id_lang'] = $id_lang;

Por esto:
if ( !( ($iso = Tools::getValue('isolang')) && Validate::isLanguageIsoCode($iso) && ($id_lang = (int)Language::getIdByIso($iso)) ) ){
$_GET['id_lang'] = Configuration::get('PS_LANG_DEFAULT');
}else{
$_GET['id_lang'] = $id_lang;
}

Con solo esto funciona, pero tenemos que tener muy en cuenta que cuando querramos actualizar el Prestashop a una versión reciente estos cambios los perderemos con lo cual tendremos que volver a realizarlos. Para evitar eso y para hacer de tu código en Prestashop más profesional y programaticamente organizado debes de usar los override de Prestashop, para eso o bien si en la carpeta override/classes ya existen esos ficheros debes de agregar la función entera en la cual estamos realizando los cambios , y si no existe crear el fichero correspondiente agregando esas funciones con los cambios descriptos ya introducidos.

Si sabes inglés tambien puedes consultar este hilo: https://www.prestashop.com/forums/topic/426933-solveddelete-language-iso-from-link/

Posted on 31/07/2016 Tiendas online, Prestashop 0 3061

Leave a CommentLeave a Reply

You must be logged in to post a comment.