Jump to content

oddworldng

Members
  • Posts

    163
  • Joined

  • Last visited

  • Days Won

    1

oddworldng last won the day on May 2 2022

oddworldng had the most liked content!

2 Followers

About oddworldng

  • Birthday 09/19/1985

Contact Methods

Profile Information

  • Location
    Canary Islands
  • Activity
    Developer

Recent Profile Visitors

5,024,617 profile views

oddworldng's Achievements

  1. Hola Iván, A mi me ha pasado lo mismo con Prestashop 1.7.8.7, y ha sido al importar productos de forma masiva desde un fichero CSV. Lo he conseguido solucionar borrando los productos, y volviendo a importarlos de nuevo. Nota: antes de solucionarlo, tenía pensado hacer un módulo que añadiera un CSS al backoffice que cambiase esa propiedad por visibility: visible (o similar), pero como lo he conseguido solucionar, lo dejo como idea de futuro. Un saludo.
  2. Buenas a todos, He desarrollado un módulo para Prestashop 1.7 que se basa en las zonas y tarifas oficiales del transportista Correos (España), para envíos desde las Islas Canarias. En la actualidad Correos dispone de su propio módulo oficial, el cual cuenta con muchas ventajas, pero cuando lo instalas no introduce las zonas internacionales, ni asigna la tarifa de precios a cada uno de los servicios de paquetería que ofrece (esto hay que hacerlo manualmente). Por este motivo, he desarrollo este módulo, que realiza las siguientes acciones: Crea las zonas oficiales indicadas en Correos Asigna a los países y provincias de España dichas zonas Crea los principales transportistas y les asigna las tarifas oficiales de Correos En esta primera versión del módulo, se crean los siguientes transportistas que he considerado que son los principales (en siguientes versiones iré añadiendo nuevos servicios de paquetería): Carta certificada: para envío entre islas y península hasta 1 kg Paquete azul: para envíos de paquetes nacionales hasta 20 kg Paquete estándar: para envíos nacionales hasta 30 kg Paquete standard internacional: para envíos a europa y latinoamérica hasta 5 kg Espero que este pequeño aporte a la comunidad, sirva para mejorar el comercio desde las islas Canarias. El código de este módulo es totalmente libre, y lo tengo publicado en mi repositorio de Github para quien quiera verlo o modificarlo libremente: https://github.com/oddworldng/ps_correos_canarias Nota: este módulo ha sido probado con Prestashop 1.7.8.3, con el resto de versiones no puedo asegurar su compatibilidad. Puedes descargar el módulo aquí: ps_correos_canarias.zip (versión 1.0.0 para Prestashop 1.7)
  3. Bueno, me respondo a mi mismo, espero que esto le pueda ser útil a alguien más ... Es más sencillo de lo que pensaba, como era de esperar. He desarrollado esta función, que compara la contraseña introducida en texto plano por el empleado con la contraseña almacenada en la base de datos y devuelve true si coinciden y false si no: public static function crypto($plaintextPassword, $passwordHash) { /** @var \PrestaShop\PrestaShop\Core\Crypto\Hashing $crypto */ $crypto = PrestaShop\PrestaShop\Adapter\ServiceLocator::get('\\PrestaShop\\PrestaShop\\Core\\Crypto\\Hashing'); return $crypto->checkHash($plaintextPassword, $passwordHash); } Y para llamar a esta función hago: /* Inserted form password */ $plaintextPassword = Tools::getValue('input_password'); /* Selected employee stored password */ $passwordHash = $this->db->getEmployeePassword($id_employee)[0]['passwd']; dump($this->crypto($plaintextPassword, $passwordHash)); if ($this->crypto($plaintextPassword, $passwordHash)) { $output .= $this->displayConfirmation($this->l('Login successful')); } else { $output .= $this->displayError($this->l('ERROR').': '.$this->l('Password incorrect')); } Y la función que hice para obtener la contraseña del empleado es: public function getEmployeePassword($id_employee) { return( Db::getInstance()->executeS(' SELECT `passwd` FROM '._DB_PREFIX_.'employee WHERE `id_employee`='.(int)$id_employee.' LIMIT 1 ') ); } En resumen, que utilizando $crypto->checkHash($plaintextPassword, $passwordHash), ya me compara ambas contraseñas. NOTA: me he inspirado en el código que hay en el fichero /classes/Customer.php, en la función getByEmail(). Un saludo, oddworldng.
  4. No se si esto te servirá, pero si tu servidor está alojado en un sistema que puedes gestionar tu mismo, podrías crear un cron que vacíe esos directorios cada X tiempo.
  5. ¡Hola a tod@s! Estoy tratando de hacer un login en un módulo con Prestashop 1.7.x, y neecesito comprobar que la contraseña que introduce el empleado coincide con la contraseña encriptada guardada en la base de datos de la tienda. El proceso que tengo que seguir es: El empleado elige su email (su cuenta) en un menú desplegable. El empleado introduce su contraseña. Una vez elegido su email e introducido su contraseña, obtengo de la base de datos su contraseña encriptada (filtro por id la tabla ps_employee), y trato de encriptar la contraseña (en texto plano) que ha introducido. AQUÍ ESTÁ EL PROBLEMA: no consigo encriptar la contraseña igual que lo hace Prestashop 1.7 para luego compararla con la almacenada en la base de datos a ver si son iguales. En Prestashop 1.6 se podía encriptar con Tools::encrypt($la_contraseña_en_texto_plano), pero en Prestashop 1.7 parece que no es tan sencillo. La contraseña almacenada en la base de datos es del tipo: $2y$10$cu17NZHEaIy0qNGYt189Ou1hQjDa7p6UoTCsnPNtwgGWuhvUYT2LG He probado la nueva función que trae Prestashop 1.7 Tools:hash($la_contraseña_en_texto_plano), pero lo que devuelve es algo así: 8fdf18d292d6922c041713356061e06b Y lo mismo con hashIV(), etc.. de la clase Tools. Según he leido, es que ahora la encriptación está basada en Symfony, pero he intentado lo siguiente, y aunque la contraseña es parecida, no coincide con la de la base de datos: public static function crypto($plaintextPassword) { /** @var \PrestaShop\PrestaShop\Core\Crypto\Hashing $crypto */ $crypto = PrestaShop\PrestaShop\Adapter\ServiceLocator::get('\\PrestaShop\\PrestaShop\\Core\\Crypto\\Hashing'); $passwd = $crypto->hash($plaintextPassword); return $passwd; } Esto cada vez me devuelve una contraseña cifrada diferente, aunque le pase el mismo $plaintextPassword. ¿Alguien sabe cómo solucionarlo? ¡Muchas gracias de antemano! oddworldng.
  6. Buenos días, Antes que nada, ¿has migrado recientemente la tienda de servidor? Si es así, revisa en la base de datos la tabla ps_shop_url a ver si todo está correcto. También puedes revisar el fichero .htaccess de tu tienda (está en el directorio raíz de tu tienda, o en la carpeta admin), a ver si es el que está haciendo la redirección. Un saludo.
  7. Buenas, Accede por FTP, edita el fichero /config/defines.inc.php y cambia esta línea: define('_PS_MODE_DEV_', false); Por esta otra: define('_PS_MODE_DEV_', true); Luego vuelve a recargar tu Prestashop para que te muestre más detalle de los errores. Un saludo.
  8. Buenas, Habilita el modo debug de tu Prestashop 1.7, para que te detalle mejor el error: https://www.prestashop.com/forums/topic/575132-how-to-enable-debug-mode-on-prestashop-17-and-older-versions-turn-on-error-reporting-blank-page/ Un saludo.
  9. Buenas, En Backoffice > Preferencias > SEO + URLs, hay una opcion que dice: URL con acentos Por defecto esta en "No", señala que "SI" Un saludo.
  10. Buenas, Este problema se produce porque la URL amigable te está intentando escribir una "ñ" y la está cambiando por "ñ" cuando intentas recuperar la contraseña. Esto produce un error 404 porque no encuentra esa dirección. La solución es ir a Backoffice > Preferencias > SEO + URLs > (modificar) password, y en la pantalla que nos aparece cambiamos en el campo URL reescrita esto "recuperacion-contraseña" por esto "recuperacion-contrasena". (le cambiamos la "ñ" por una "n"). Le damos a "Guardar", con esto ya debería funcionar. Haz una prueba y nos comentas si lo has solucionado. Un saludo.
  11. Buenas, Mi consejo es que puedes comenzar con PS1.6 sin problemas, ya que de aquí a 2 años, probablemente necesites actualizar tu tienda debido a que las tecnologías y diseños cambian muy rápido e igualmente tendrás que actualizarte. El caso más claro, es que ahora mismo una tienda en PS1.5 (de hace 2 o 3 años) se ve bastante obsoleta. Con respecto a otras alternativas, también puedes mirar Magento. Un saludo.
  12. Hola, Lo puedes hacer modificando el fichero header.tpl de tu plantilla por defecto. Algo así será el código: <div class="row"> <nav><!-- Block user information module NAV --> <div class="header_user_info"> <a class="login" href="http://vps281500.ovh.net/ecansolution/es/mi-cuenta" rel="nofollow" title="Entrar a tu cuenta de cliente"> Iniciar sesión </a> </div> <!-- /Block usmodule NAV --> <!-- Block languages module --> <div id="languages-block-top" class="languages-block"> <div class="current"> <span>Español</span> </div> <ul id="first-languages" class="languages-block_ul toogle_content"> <li class="selected"> <span>Español</span> </li> <li> <a href="http://vps281500.ovh.net/ecansolution/ca/" title="Català (Catalan)" rel="alternate" hreflang="ca"> <span>Català</span> </a> </li> </ul> </div> <!-- /Block languages module --> <div id="contact-link"> <a href="http://vps281500.ovh.net/ecansolution/es/contactanos" title="Contacte con nosotros">Contacte con nosotros</a> </div> <span class="shop-phone"> <i class="icon-phone"></i>Llámanos ahora: <strong>0123-456-789</strong> </span> </nav> </div> Un saludo.
  13. Hola, Si quieres puedes pedir en el foro de Ofertas de trabajo, que algún freelance o empresa te haga un desarrollo personalizado. https://www.prestashop.com/forums/forum/101-ofertas-de-trabajo/ Un saludo.
  14. Hola, Vuelve a realizar este proceso, pero esta vez activa la opción modo debug, a ver si te muestra algún error. Para habilitar el modo debug, edita tu fichero /config/defines.inc.php y cambia la línea: define('_PS_MODE_DEV_', false); Por esta otra: define('_PS_MODE_DEV_', true); Si no te muestra ningún error, revisa los permisos y propietarios de los ficheros de tu Prestashop. Un saludo.
×
×
  • Create New...