wdrożenia PrestaShop

[PORADNIK] Autouzupełnianie wyszukiwarki + obrazki w tym polu

  • 3 Odpowiedzi
  • 3742 Wyświetleń

0 użytkowników i 1 Gość przegląda ten wątek.

*

Podemski

  • Gość
[PORADNIK] Autouzupełnianie wyszukiwarki + obrazki w tym polu
« dnia: Grudzień 01, 2010, 10:48:12 pm »
Dla swojego klienta dokonałem drobnej aczkolwiek fajnej modyfikacji wyszukiwarki, którą dodajemy na górę strony dostępnej w Prestashop.

Jeśli chcemy by przy wyszukiwaniu wyniki uzupełniały się w raz z obrazkami tak jak tu www.twojepupile.pl (wpiszcie "adu" albo "kur") to robicie tak...

1. Otwieracie plik search.php z katalogu głównego swojego sklepu. Na początku macie tam mniej przy 3 linii coś takiego:

if (Tools::getValue('ajaxSearch') AND $query = urldecode(Tools::getValue('q')) AND !is_array($query))
{

Teraz za tą klamrą kasujecie wszystko aż do następnej klamry i wklejacie ten kod:

include(dirname(__FILE__).'/init.php');
    $link = new Link();
    $image = new Image();
    $search = Search::find(intval(Tools::getValue('id_lang')), $query, 1, 10, 'position', 'desc', true);
    foreach ($search as $product)
        {
        $imageID = $image->getCover($product['id_product']);
        $imgLink = $product['id_product'].'-'.$imageID['id_image'].'-small/'.$product['prewrite'].'.jpg';
        echo $product['id_product'].'|'.$product['pname'].'|'.$product['cname'].'|'.$link->getProductLink($product['id_product'], $product['prewrite'], $product['crewrite'])."|".$imgLink."\n";
   
        } die;

Osobiście użyłem obrazków w wielkości "small" co jest widoczne w $imgLink. Co ważne ta modyfikacja działa tylko i wyłącznie przy włączonych przyjaznych url'ach (ktoś w ogóle ich nie włącza? :/).

Teraz przechodzimy do katalogu /css/jquery.autocomplete.css

Używam obrazków o wielkości small (45x45 px) także w tym stylu dodaje sobie coś takiego:

.ac_results li img { float: left; margin: 0 5px 0 0; }
A w tym " .ac_results li" zmieniam line-height na 45px.

Teraz idziemy do /modules/blocksearch/blocksearch-top.tpl i modyfikujemy ten kod:

function formatSearch(row) {
return row[2] + ' > ' + row[1];
}

na ten:

function formatSearch(row) {
return  '<img src="{/literal}{$base_dir_ssl}{literal}' + row[4] + '" /> ' + row[2] + ' > ' + row[1];
}

Mam nadzieje, że Wam zadziała.

Modyfikacja dotyczy wersji 1.3+

Jak macie jakieś pytania bądź problemy to piszcie.

*

Offline petter_s

  • Nowy
  • *
  • 1
  • 0
Odp: [PORADNIK] Autouzupełnianie wyszukiwarki + obrazki w tym polu
« Odpowiedź #1 dnia: Luty 24, 2011, 11:57:47 pm »
Witam,
Ta modyfikacja działa rewelacyjne na wersji 1.3.1.1 (testowałem)
Natomiast jest problem z wersją 1.3.2.3 (są inaczej zbudowane pliki)
search.php
if (Tools::getValue('ajaxSearch') AND $query = urldecode(Tools::getValue('q')) AND !is_array($query))
{
include(dirname(__FILE__).'/init.php');
$link = new Link();
$searchResults = Search::find(intval(Tools::getValue('id_lang')), $query, 1, 10, 'position', 'desc', true);
foreach ($searchResults AS &$product)
$product['product_link'] = $link->getProductLink($product['id_product'], $product['prewrite'], $product['crewrite']);
die(json_encode($searchResults));
}

blocksearch-top.tpl
<script type="text/javascript">{literal}
$('document').ready( function() {
$("#search_query")
.autocomplete(
'{/literal}{if $search_ssl == 1}{$base_dir_ssl}{else}{$base_dir}{/if}{literal}search.php', {
minChars: 3,
max: 10,
width: 500,
selectFirst: false,
scroll: false,
dataType: "json",
formatItem: function(data, i, max, value, term) {
return value;
},
parse: function(data) {
var mytab = new Array();
for (var i = 0; i < data.length; i++) {
mytab[mytab.length] = {
data: data[i],
value: data[i].cname + ' > ' + data[i].pname
};
}
return mytab;
},
extraParams: {
ajaxSearch: 1,
id_lang: {/literal}{$cookie->id_lang}{literal}
}
}
)
.result(function(event, data, formatted) {
$('#search_query').val(data.pname);
document.location.href = data.product_link;
})
});{/literal}
</script>

Czy mógłbyś podpowiedzieć jak zmodyfikować te dwa pliki?

*

Offline deviant

  • Mieszkaniec
  • *****
  • 776
  • 1
  • Płeć: Mężczyzna
  • prestamod
  • PrestaShop: PS
  • Status: forum
Odp: [PORADNIK] Autouzupełnianie wyszukiwarki + obrazki w tym polu
« Odpowiedź #2 dnia: Luty 25, 2011, 07:48:10 am »
Witam.

Wrzuciłem tą modyfikację do siebie na komputis.pl ale nie chce działać. Może przez to, że używam wyszukiwarki w blocktopmenu.

Tak z ciekawości: działa to dość podobnie jak dodawanie produktów powiązanych na karcie produktu nieprawdaż ?
Prestamod -> [sklepy][hosting][modyfikacje][szablony][pomoc]

*

Offline Emcomp

  • Nowy
  • *
  • 7
  • 0
Odp: [PORADNIK] Autouzupełnianie wyszukiwarki + obrazki w tym polu
« Odpowiedź #3 dnia: Luty 27, 2011, 01:48:51 pm »
czy ta modyfikacja działa tylko kiedy wyszukiwarka jest w header? Ja mam w lewym bloku, czy też będzie działało??