Jump to content

Busqueda ajax devuelve imagenes en http estando en https


Xordiet

Recommended Posts

Hola,

 

Tengo configurada una tienda con ssl en la cual he resuelto los errores de seguridad con el famoso candado amarillo.

 

El problema viene cuando al buscar productos con la busqueda ajax, las miniaturas las carga de http, generando el candadito amarillo, generando este error en la consola por cada miniatura:

Cargando contenido visual mixto (no seguro) "http://XXX.es/img/p/1/6/8/6/1686-small_default.jpg" en una página segura

He descubierto que algo tiene que ver el autocomplete de jquery, pero no he conseguido ver como lo llama.

 

Saludos

Link to comment
Share on other sites

He conseguido solucionarlo, por si alguien le interesa la solución o por si no es la manera correcta de solucionarlo.

 

Hay que  saber el modulo de busqueda que gasta la tienda, en mi caso ha sido labsearch.

 

Dentro de la carpeta modules/nombremodulo debe de haber un archivo php finalizado en ajax. En mi caso: modules/labsearch/labsearchAjax.php

 

Este es el código original:

<?php
include_once('../../config/config.inc.php');
include_once('../../init.php');
$product_link = new Link();
$ajaxSearch = Tools::getValue('ajaxSearch');
$searchquery = Tools::replaceAccentedChars(urldecode(Tools::getValue('q')));

if ($ajaxSearch) {
    $ajaxsearchResult = Search::find((int) (Tools::getValue('id_lang')), $searchquery, 1, 10, 'position', 'desc', true);
    foreach ($ajaxsearchResult as &$product) :
        $product['product_link'] = $product_link->getProductLink($product['id_product'], $product['prewrite'], $product['crewrite']);
        $cproduct_id = Product::getCover($product['id_product']);
        if (sizeof($cproduct_id) > 0) {
            $cproduct_image = new Image($cproduct_id['id_image']);
            $cproductimg_url = _PS_BASE_URL_ . _THEME_PROD_DIR_ . $cproduct_image->getExistingImgPath() . '-small_default' . '.jpg';
        }
        $product['ajaxsearchimage'] = $cproductimg_url;
    endforeach;
    die(Tools::jsonEncode($ajaxsearchResult));
}

En el cual se cambia

$cproductimg_url = _PS_BASE_URL_ . _THEME_PROD_DIR_ . $cproduct_image->getExistingImgPath() . '-small_default' . '.jpg';

Por:

$cproductimg_url = _PS_BASE_URL_SSL_ . _THEME_PROD_DIR_ . $cproduct_image->getExistingImgPath() . '-small_default' . '.jpg';

Haciendo esta modificación forzamos a que las miniaturas de la busqueda ajax sean por https.

 

ATENCIÓN: Esta modificación esta basada en el labsearch. No copies y pegueis directamente si no gastais ese módulo en la búsqueda. En otros casos se ha de buscar _PS_BASE_URL_ y cambiarlo por _PS_BASE_URL_SSL_

 

Saludos

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...