poniżej trochę kodów :
Udało mi się wywalić znacznik $ , kod z pliku blocksearch.js , jednak nie jestem w stanie zmienić cen na brutto,
if (typeof ajaxsearch != 'undefined' && ajaxsearch && typeof blocksearch_type !== 'undefined' && blocksearch_type)
$("#search_query_" + blocksearch_type).autocomplete(
search_url,
{
minChars: 3,
max: 15,
width: (width_ac_results > 0 ? width_ac_results : 500),
selectFirst: false,
scroll: true,
dataType: "json",
formatItem: function(data, i, max, value, term) {
if(data.image!=null)
return "<img src=\"" + baseDir + "img/p/" + data.image.split('').join('/')+"/" + data.image + "-small_default.jpg\" alt=\"" + data.pname + "\" />" + "<div class='right-search'>" + value + "</div>";
else
return value;},
parse: function(data) {
var mytab = new Array();
for (var i = 0; i < data.length; i++)
mytab[mytab.length] = { data: data[i], value: '<h5>' + data[i].pname + '</h5>' + ' <span class="price"> ' + Number(data[i].pprice).toFixed(2) + '</span>'}; // data[i].cname + ' > ' +
return mytab;
},
extraParams: {
ajaxSearch: 1,
id_lang: id_lang
}
}
)
.result(function(event, data, formatted) {
$('#search_query_' + blocksearch_type).val(data.pname);
document.location.href = data.product_link;
});
});
blocksearch.php
<?php
/*
* 2007-2015 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2015 PrestaShop SA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
if (!defined('_PS_VERSION_'))
exit;
class BlockSearch extends Module
{
public function __construct()
{
$this->name = 'blocksearch';
$this->tab = 'search_filter';
$this->version = '1.7.0';
$this->author = 'PrestaShop';
$this->need_instance = 0;
parent::__construct();
$this->displayName = $this->l('Quick search block');
$this->description = $this->l('Adds a quick search field to your website.');
$this->ps_versions_compliancy = array('min' => '1.6', 'max' => _PS_VERSION_);
}
public function install()
{
if (!parent::install() || !$this->registerHook('top') || !$this->registerHook('header') || !$this->registerHook('displayMobileTopSiteMap') || !$this->registerHook('displaySearch'))
return false;
return true;
}
public function hookdisplayMobileTopSiteMap($params)
{
$this->smarty->assign(array('hook_mobile' => true, 'instantsearch' => false));
$params['hook_mobile'] = true;
return $this->hookTop($params);
}
/*
public function hookDisplayMobileHeader($params)
{
if (Configuration::get('PS_SEARCH_AJAX'))
$this->context->controller->addJqueryPlugin('autocomplete');
$this->context->controller->addCSS(_THEME_CSS_DIR_.'product_list.css');
}
*/
public function hookHeader($params)
{
$this->context->controller->addCSS(($this->_path).'blocksearch.css', 'all');
if (Configuration::get('PS_SEARCH_AJAX'))
$this->context->controller->addJqueryPlugin('autocomplete');
if (Configuration::get('PS_INSTANT_SEARCH'))
$this->context->controller->addCSS(_THEME_CSS_DIR_.'product_list.css');
if (Configuration::get('PS_SEARCH_AJAX') || Configuration::get('PS_INSTANT_SEARCH'))
{
Media::addJsDef(array('search_url' => $this->context->link->getPageLink('search', Tools::usingSecureMode())));
$this->context->controller->addJS(($this->_path).'blocksearch.js');
}
}
public function hookLeftColumn($params)
{
return $this->hookRightColumn($params);
}
public function hookRightColumn($params)
{
if (Tools::getValue('search_query') || !$this->isCached('blocksearch.tpl', $this->getCacheId()))
{
$this->calculHookCommon($params);
$this->smarty->assign(array(
'blocksearch_type' => 'block',
'search_query' => (string)Tools::getValue('search_query')
)
);
}
Media::addJsDef(array('blocksearch_type' => 'block'));
return $this->display(__FILE__, 'blocksearch.tpl', Tools::getValue('search_query') ? null : $this->getCacheId());
}
public function hookTop($params)
{
$key = $this->getCacheId('blocksearch-top'.((!isset($params['hook_mobile']) || !$params['hook_mobile']) ? '' : '-hook_mobile'));
if (Tools::getValue('search_query') || !$this->isCached('blocksearch-top.tpl', $key))
{
$this->calculHookCommon($params);
$this->smarty->assign(array(
'blocksearch_type' => 'top',
'search_query' => (string)Tools::getValue('search_query')
)
);
}
Media::addJsDef(array('blocksearch_type' => 'top'));
return $this->display(__FILE__, 'blocksearch-top.tpl', Tools::getValue('search_query') ? null : $key);
}
public function hookDisplayNav($params)
{
return $this->hookTop($params);
}
public function hookDisplaySearch($params)
{
return $this->hookRightColumn($params);
}
private function calculHookCommon($params)
{
$this->smarty->assign(array(
'ENT_QUOTES' => ENT_QUOTES,
'search_ssl' => Tools::usingSecureMode(),
'ajaxsearch' => Configuration::get('PS_SEARCH_AJAX'),
'instantsearch' => Configuration::get('PS_INSTANT_SEARCH'),
'self' => dirname(__FILE__),
));
return true;
}
}
blocksearch.tpl
<!-- Block search module -->
<div id="search_block_left" class="block exclusive">
<h4 class="title_block">{l s='Search' mod='blocksearch'}</h4>
<form method="get" action="{$link->getPageLink('search', true)|escape:'html'}" id="searchbox">
<p class="block_content">
<label for="search_query_block">{l s='Search products:' mod='blocksearch'}</label>
<input type="hidden" name="controller" value="search" />
<input type="hidden" name="orderby" value="position" />
<input type="hidden" name="orderway" value="desc" />
<input class="search_query" type="text" id="search_query_block" name="search_query" value="{$search_query|escape:'html':'UTF-8'|stripslashes}" />
<input type="submit" id="search_button" class="button_mini" value="{l s='Go' mod='blocksearch'}" />
</p>
</form>
</div>
{include file="$self/blocksearch-instantsearch.tpl"}
<!-- /Block search module -->
blocksearch-instantsearch.tpl
{if $ajaxsearch}
<script type="text/javascript">
// <![CDATA[
$('document').ready(function() {
var $input = $("#search_query_{$blocksearch_type}");
$input.autocomplete(
'{if $search_ssl == 1}{$link->getPageLink('search', true)|addslashes}{else}{$link->getPageLink('search')|addslashes}{/if}',
{
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 = [];
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: {$cookie->id_lang}
}
})
.result(function(event, data, formatted) {
$input.val(data.pname);
document.location.href = data.product_link;
});
});
// ]]>
</script>
{/if}
{if $instantsearch}
<script type="text/javascript">
// <![CDATA[
function tryToCloseInstantSearch()
{
var $oldCenterColumn = $('#old_center_column');
if ($oldCenterColumn.length > 0)
{
$('#center_column').remove();
$oldCenterColumn.attr('id', 'center_column').show();
return false;
}
}
instantSearchQueries = [];
function stopInstantSearchQueries()
{
for(var i=0; i<instantSearchQueries.length; i++) {
instantSearchQueries[i].abort();
}
instantSearchQueries = [];
}
$('document').ready(function() {
var $input = $("#search_query_{$blocksearch_type}");
$input.on('keyup', function() {
if ($(this).val().length > 4)
{
stopInstantSearchQueries();
instantSearchQuery = $.ajax({
url: '{if $search_ssl == 1}{$link->getPageLink('search', true)|addslashes}{else}{$link->getPageLink('search')|addslashes}{/if}',
data: {
instantSearch: 1,
id_lang: {$cookie->id_lang},
q: $(this).val()
},
dataType: 'html',
type: 'POST',
headers: { "cache-control": "no-cache" },
async: true,
cache: false,
success: function(data){
if($input.val().length > 0)
{
tryToCloseInstantSearch();
$('#center_column').attr('id', 'old_center_column');
$('#old_center_column').after('<div id="center_column" class="' + $('#old_center_column').attr('class') + '">'+data+'</div>').hide();
// Button override
ajaxCart.overrideButtonsInThePage();
$("#instant_search_results a.close").on('click', function() {
$input.val('');
return tryToCloseInstantSearch();
});
return false;
}
else
tryToCloseInstantSearch();
}
});
instantSearchQueries.push(instantSearchQuery);
}
else
tryToCloseInstantSearch();
});
});
// ]]>
</script>
{/if}