Привет всем
Подскажите как реализовать поиск по статьям
/index.php?route=information/information&information_id=8
обычный поиск ищет только по ссылкам
/index.php?route=product/product&product_id=3
ниже код из search.php
<?php
use js3\js3\Controller;
use js3\Utils\Arr;
class Controllerjs3Search extends Controller {
public function index() {
$search = Arr::get($this->request->get, 'search');
$category_id = Arr::get($this->request->get, 'category_id');
$url = '';
if ($search) {
$url .= '&search=' . urlencode(html_entity_decode($this->request->get['search'], ENT_QUOTES, 'UTF-8'));
}
$limit = (int)$this->js3->settings->get('searchStyleSearchAutoSuggestLimit');
if (!$limit) {
$limit = 10;
}
$filter_data = array(
'filter_name' => $search,
'filter_description' => $this->js3->settings->get('searchStyleSearchAutoSuggestDescription'),
'start' => 0,
'limit' => $limit,
);
if ($category_id) {
$filter_data['filter_category_id'] = $category_id;
}
$this->load->model('js3/filter');
$this->load->model('js3/image');
$products = array();
$results = $this->model_js3_filter->getProducts($filter_data);
foreach ($results as $result) {
if ($result['image']) {
$image = $this->model_js3_image->resize($result['image'], $this->js3->settings->get('image_dimensions_autosuggest.width'), $this->js3->settings->get('image_dimensions_autosuggest.height'), $this->js3->settings->get('image_dimensions_autosuggest.resize'));
$image2 = $this->model_js3_image->resize($result['image'], $this->js3->settings->get('image_dimensions_autosuggest.width') * 2, $this->js3->settings->get('image_dimensions_autosuggest.height') * 2, $this->js3->settings->get('image_dimensions_autosuggest.resize'));
} else {
$image = $this->model_js3_image->resize('placeholder.png', $this->js3->settings->get('image_dimensions_autosuggest.width'), $this->js3->settings->get('image_dimensions_autosuggest.height'), $this->js3->settings->get('image_dimensions_autosuggest.resize'));
$image2 = $this->model_js3_image->resize('placeholder.png', $this->js3->settings->get('image_dimensions_autosuggest.width') * 2, $this->js3->settings->get('image_dimensions_autosuggest.height') * 2, $this->js3->settings->get('image_dimensions_autosuggest.resize'));
}
$price = false;
$special = false;
if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) {
$price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']);
if ((float)$result['special']) {
$special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']);
}
}
$products[] = array(
'quantity' => (int)$result['quantity'],
'price_value' => $result['special'] ? $result['special'] > 0 : $result['price'] > 0,
'product_id' => $result['product_id'],
'name' => html_entity_decode($result['name'], ENT_QUOTES, 'UTF-8'),
'thumb' => $image,
'thumb2' => $image2,
'price' => $price,
'special' => $special,
'href' => $this->url->link('product/product', '&search=' . urlencode(html_entity_decode($this->request->get['search'], ENT_QUOTES, 'UTF-8')) . '&product_id=' . $result['product_id'] . $url),
);
}
if ($products) {
$url = '';
if (isset($this->request->get['search'])) {
$url .= '&search=' . urlencode(html_entity_decode($this->request->get['search'], ENT_QUOTES, 'UTF-8'));
}
if ($this->js3->settings->get('searchStyleSearchAutoSuggestDescription')) {
$url .= '&description=true';
}
if (isset($this->request->get['category_id'])) {
$url .= '&category_id=' . $this->request->get['category_id'];
}
if (isset($this->request->get['sub_category'])) {
$url .= '&sub_category=' . $this->request->get['sub_category'];
}
$products[] = array(
'view_more' => true,
'name' => $this->js3->settings->get('searchStyleSearchViewMoreText'),
'href' => $this->url->link('product/search', $url),
);
} else {
$products[] = array(
'no_results' => true,
'name' => $this->js3->settings->get('searchStyleSearchNoResultsText'),
);
}
$this->renderJson('success', $products);
}
}
вот кусочек кода еще из js
// Search
var $search = $('#search').find('input[name=\'search\']');
$('.search-button').on('click', function () {
var url = $(this).data('search-url');
var value = $search.val();
var category_id = parseInt($search.attr('data-category_id'));
if (value) {
url += encodeURIComponent(value);
}
if (js['searchStyleSearchAutoSuggestDescription']) {
url += '&description=true';
}
if (category_id) {
url += '&category_id=' + category_id;
}
location = url;
});
$search.on('keydown', function (e) {
if (e.keyCode === 13) {
$('.search-button').trigger('click');
}
});
$('.search-categories li').on('click', function (e) {
e.stopPropagation();
var $this = $(this);
$('.search-categories-button').html($this.html());
$search.attr('data-category_id', $this.attr('data-category_id'))
});
// Autosuggest
if (js['searchStyleSearchAutoSuggestStatus']) {
$search.typeahead({
hint: true,
minLength: 1,
autoSelect: true
}, {
async: true,
display: 'name',
limit: Infinity,
source: function (query, processSync, processAsync) {
var data = {
search: query
};
var category_id = parseInt($search.attr('data-category_id'));
if (category_id) {
data.category_id = category_id;
}
return $.ajax({
url: 'index.php?route=js3/search',
data: data,
dataType: 'json',
success: function (json) {
return processAsync(json['response']);
}
});
},
templates: {
suggestion: function (data) {
if (data['view_more']) {
return '<div class="search-result view-more"><a href="' + data['href'] + '">' + data['name'] + '</a></div>';
}
if (data['no_results']) {
return '<div class="search-result no-results"><a>' + data['name'] + '</a></div>';
}
var html = '';
html += '<div class="search-result"><a href="' + data['href'] + '">';
if (data['thumb']) {
html += '<img src="' + data['thumb'] + '" srcset="' + data['thumb'] + ' 1x, ' + data['thumb2'] + ' 2x" />';
}
var classes = [];
if (data['quantity'] <= 0) {
classes.push('out-of-stock');
}
if (!data['price_value']) {
classes.push('has-zero-price');
}
html += '<span class="' + classes.join(' ') + '">';
html += '<span class="product-name">' + data['name'] + '</span>';
if (data['price']) {
if (data['special']) {
html += '<span><span class="price-old">' + data['price'] + '</span><span class="price-new">' + data['special'] + '</span></span>';
} else {
html += '<span class="price">' + data['price'] + '</span>';
}
}
html += '</span>';
html += '</a></div>';
return html;
}
}
});
$('.header-search > span > div').addClass('.tt-empty');
Меняя с product_id на information_id
Поиск ни чего не видит
Если есть такой модуль по поиску описания в товарах , статьях , производителя и тд дайте знать