Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Нерабочий поиск по товарам


matveyeff

Recommended Posts

Добрый день.

 

Не работает поиск по товарам на сайте. Подозреваю, что нужно что-то подправить в коде, а что - не знаю :-)

 

Скрин: http://joxi.ru/fIDjU4wyTJBfCXtQ-QM

 

Код в search.tpl с 15 по 58 строку:

<p><?php echo $entry_search; ?>
      <?php if ($search) { ?>
      <input type="text" name="search" value="<?php echo $search; ?>" />
      <?php } else { ?>
      <input type="text" name="search" value="<?php echo $search; ?>" onclick="this.value = '';" onkeydown="this.style.color = '000000'" style="color: #999;" />
      <?php } ?>
      <select name="category_id">
        <option value="0"><?php echo $text_category; ?></option>
        <?php foreach ($categories as $category_1) { ?>
        <?php if ($category_1['category_id'] == $category_id) { ?>
        <option value="<?php echo $category_1['category_id']; ?>" selected="selected"><?php echo $category_1['name']; ?></option>
        <?php } else { ?>
        <option value="<?php echo $category_1['category_id']; ?>"><?php echo $category_1['name']; ?></option>
        <?php } ?>
        <?php foreach ($category_1['children'] as $category_2) { ?>
        <?php if ($category_2['category_id'] == $category_id) { ?>
        <option value="<?php echo $category_2['category_id']; ?>" selected="selected">      <?php echo $category_2['name']; ?></option>
        <?php } else { ?>
        <option value="<?php echo $category_2['category_id']; ?>">      <?php echo $category_2['name']; ?></option>
        <?php } ?>
        <?php foreach ($category_2['children'] as $category_3) { ?>
        <?php if ($category_3['category_id'] == $category_id) { ?>
        <option value="<?php echo $category_3['category_id']; ?>" selected="selected">            <?php echo $category_3['name']; ?></option>
        <?php } else { ?>
        <option value="<?php echo $category_3['category_id']; ?>">            <?php echo $category_3['name']; ?></option>
        <?php } ?>
        <?php } ?>
        <?php } ?>
        <?php } ?>
      </select>
      <?php if ($sub_category) { ?>
      <input type="checkbox" name="sub_category" value="1" id="sub_category" checked="checked" />
      <?php } else { ?>
      <input type="checkbox" name="sub_category" value="1" id="sub_category" />
      <?php } ?>
      <label for="sub_category"><?php echo $text_sub_category; ?></label>
    </p>
    <?php if ($description) { ?>
    <input type="checkbox" name="description" value="1" id="description" checked="checked" />
    <?php } else { ?>
    <input type="checkbox" name="description" value="1" id="description" />
    <?php } ?>
    <label for="description"><?php echo $entry_description; ?></label>
  </div>

Надеюсь на помощь знатоков :-)
Надіслати
Поділитися на інших сайтах


У вас в контроллере проблемы.

catalog\controller\product\search.php

Почему-то не объявлены переменные, которые есть даже в стандартной сборке при шаблоне по умолчанию.

Возможно вы с модулями vqmod перестарались, а может ещё что. Нужно код смотреть

Надіслати
Поділитися на інших сайтах

У вас в контроллере проблемы.

catalog\controller\product\search.php

Почему-то не объявлены переменные, которые есть даже в стандартной сборке при шаблоне по умолчанию.

Возможно вы с модулями vqmod перестарались, а может ещё что. Нужно код смотреть

Мог намудрить - такой вариант допускаю. С шаблоном было изначально много проблем, но все они решались аккуратно, без фанатизма :-) .

 

Уважаемый, deim, если Вас не затруднит посмотреть код и подсказать, что все-же не так с ним, был бы очень благодарен.

 

search.php:

<?php 
class ControllerProductSearch extends Controller {
public function index() { 
    $this->language->load('product/search');
 
$this->load->model('catalog/category');
 
$this->load->model('catalog/product');
 
$this->load->model('tool/image'); 
 
if (isset($this->request->get['filter_name'])) {
$filter_name = $this->request->get['filter_name'];
} else {
$filter_name = '';
 
if (isset($this->request->get['filter_tag'])) {
$filter_tag = $this->request->get['filter_tag'];
} elseif (isset($this->request->get['filter_name'])) {
$filter_tag = $this->request->get['filter_name'];
} else {
$filter_tag = '';
 
if (isset($this->request->get['filter_description'])) {
$filter_description = $this->request->get['filter_description'];
} else {
$filter_description = '';
 
if (isset($this->request->get['filter_category_id'])) {
$filter_category_id = $this->request->get['filter_category_id'];
} else {
$filter_category_id = 0;
 
if (isset($this->request->get['filter_sub_category'])) {
$filter_sub_category = $this->request->get['filter_sub_category'];
} else {
$filter_sub_category = '';
 
if (isset($this->request->get['sort'])) {
$sort = $this->request->get['sort'];
} else {
$sort = 'p.sort_order';
 
if (isset($this->request->get['order'])) {
$order = $this->request->get['order'];
} else {
$order = 'ASC';
}
 
if (isset($this->request->get['page'])) {
$page = $this->request->get['page'];
} else {
$page = 1;
}
 
if (isset($this->request->get['limit'])) {
$limit = $this->request->get['limit'];
} else {
$limit = $this->config->get('config_catalog_limit');
}
 
if (isset($this->request->get['filter_name'])) {
$this->document->setTitle($this->language->get('heading_title') .  ' - ' . $this->request->get['filter_name']);
} else {
$this->document->setTitle($this->language->get('heading_title'));
}
 
$this->data['breadcrumbs'] = array();
 
    $this->data['breadcrumbs'][] = array( 
        'text'      => $this->language->get('text_home'),
'href'      => $this->url->link('common/home'),
      'separator' => false
    );
 
$url = '';
 
if (isset($this->request->get['filter_name'])) {
$url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8'));
}
 
if (isset($this->request->get['filter_tag'])) {
$url .= '&filter_tag=' . urlencode(html_entity_decode($this->request->get['filter_tag'], ENT_QUOTES, 'UTF-8'));
}
 
if (isset($this->request->get['filter_description'])) {
$url .= '&filter_description=' . $this->request->get['filter_description'];
}
 
if (isset($this->request->get['filter_category_id'])) {
$url .= '&filter_category_id=' . $this->request->get['filter_category_id'];
}
 
if (isset($this->request->get['filter_sub_category'])) {
$url .= '&filter_sub_category=' . $this->request->get['filter_sub_category'];
}
 
if (isset($this->request->get['sort'])) {
$url .= '&sort=' . $this->request->get['sort'];
}
 
if (isset($this->request->get['order'])) {
$url .= '&order=' . $this->request->get['order'];
}
 
if (isset($this->request->get['page'])) {
$url .= '&page=' . $this->request->get['page'];
}
 
if (isset($this->request->get['limit'])) {
$url .= '&limit=' . $this->request->get['limit'];
}
 
    $this->data['breadcrumbs'][] = array(
        'text'      => $this->language->get('heading_title'),
'href'      => $this->url->link('product/search', $url),
      'separator' => $this->language->get('text_separator')
    );
 
if (isset($this->request->get['filter_name'])) {
    $this->data['heading_title'] = $this->language->get('heading_title') .  ' - ' . $this->request->get['filter_name'];
} else {
$this->data['heading_title'] = $this->language->get('heading_title');
}
 
$this->data['text_empty'] = $this->language->get('text_empty');
    $this->data['text_critea'] = $this->language->get('text_critea');
    $this->data['text_search'] = $this->language->get('text_search');
$this->data['text_keyword'] = $this->language->get('text_keyword');
$this->data['text_category'] = $this->language->get('text_category');
$this->data['text_sub_category'] = $this->language->get('text_sub_category');
$this->data['text_quantity'] = $this->language->get('text_quantity');
$this->data['text_manufacturer'] = $this->language->get('text_manufacturer');
$this->data['text_model'] = $this->language->get('text_model');
$this->data['text_price'] = $this->language->get('text_price');
$this->data['text_tax'] = $this->language->get('text_tax');
$this->data['text_points'] = $this->language->get('text_points');
$this->data['text_compare'] = sprintf($this->language->get('text_compare'), (isset($this->session->data['compare']) ? count($this->session->data['compare']) : 0));
$this->data['text_display'] = $this->language->get('text_display');
$this->data['text_list'] = $this->language->get('text_list');
$this->data['text_grid'] = $this->language->get('text_grid');
$this->data['text_sort'] = $this->language->get('text_sort');
$this->data['text_limit'] = $this->language->get('text_limit');
 
$this->data['entry_search'] = $this->language->get('entry_search');
    $this->data['entry_description'] = $this->language->get('entry_description');
 
    $this->data['button_search'] = $this->language->get('button_search');
$this->data['button_cart'] = $this->language->get('button_cart');
$this->data['button_wishlist'] = $this->language->get('button_wishlist');
$this->data['button_compare'] = $this->language->get('button_compare');
 
$this->data['compare'] = $this->url->link('product/compare');
 
$this->load->model('catalog/category');
 
// 3 Level Category Search
$this->data['categories'] = array();
 
$categories_1 = $this->model_catalog_category->getCategories(0);
 
foreach ($categories_1 as $category_1) {
$level_2_data = array();
 
$categories_2 = $this->model_catalog_category->getCategories($category_1['category_id']);
 
foreach ($categories_2 as $category_2) {
$level_3_data = array();
 
$categories_3 = $this->model_catalog_category->getCategories($category_2['category_id']);
 
foreach ($categories_3 as $category_3) {
$level_3_data[] = array(
'category_id' => $category_3['category_id'],
'name'        => $category_3['name'],
);
}
 
$level_2_data[] = array(
'category_id' => $category_2['category_id'],
'name'        => $category_2['name'],
'children'    => $level_3_data
);
}
 
$this->data['categories'][] = array(
'category_id' => $category_1['category_id'],
'name'        => $category_1['name'],
'children'    => $level_2_data
);
}
 
$this->data['products'] = array();
 
if (isset($this->request->get['filter_name']) || isset($this->request->get['filter_tag'])) {
$data = array(
'filter_name'         => $filter_name, 
'filter_tag'          => $filter_tag, 
'filter_description'  => $filter_description,
'filter_category_id'  => $filter_category_id, 
'filter_sub_category' => $filter_sub_category, 
'sort'                => $sort,
'order'               => $order,
'start'               => ($page - 1) * $limit,
'limit'               => $limit
);
 
$product_total = $this->model_catalog_product->getTotalProducts($data);
 
$results = $this->model_catalog_product->getProducts($data);
 
foreach ($results as $result) {
if ($result['image']) {
$image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height'));
} else {
$image = false;
}
 
if (($this->config->get('config_customer_price') && $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')));
} else {
$price = false;
}
 
if ((float)$result['special']) {
$special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')));
} else {
$special = false;
}
 
if ($this->config->get('config_tax')) {
$tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price']);
} else {
$tax = false;
}
 
if ($this->config->get('config_review_status')) {
$rating = (int)$result['rating'];
} else {
$rating = false;
}
 
$this->data['products'][] = array(
'attribute_groups' => $this->model_catalog_product->getProductAttributes($result['product_id']),
'percent' => round((($result['price'] - $result['special'])/$result['price'])*100, 0),
'product_id'  => $result['product_id'],
'thumb'       => $image,
'name'        => $result['name'],
'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..',
'price'       => $price,
'special'     => $special,
'tax'         => $tax,
'rating'      => $result['rating'],
'reviews'     => sprintf($this->language->get('text_reviews'), (int)$result['reviews']),
'href'        => $this->url->link('product/product', $url . '&product_id=' . $result['product_id'])
);
}
 
$url = '';
 
if (isset($this->request->get['filter_name'])) {
$url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8'));
}
 
if (isset($this->request->get['filter_tag'])) {
$url .= '&filter_tag=' . urlencode(html_entity_decode($this->request->get['filter_tag'], ENT_QUOTES, 'UTF-8'));
}
 
if (isset($this->request->get['filter_description'])) {
$url .= '&filter_description=' . $this->request->get['filter_description'];
}
 
if (isset($this->request->get['filter_category_id'])) {
$url .= '&filter_category_id=' . $this->request->get['filter_category_id'];
}
 
if (isset($this->request->get['filter_sub_category'])) {
$url .= '&filter_sub_category=' . $this->request->get['filter_sub_category'];
}
 
if (isset($this->request->get['limit'])) {
$url .= '&limit=' . $this->request->get['limit'];
}
 
$this->data['sorts'] = array();
 
$this->data['sorts'][] = array(
'text'  => $this->language->get('text_default'),
'value' => 'p.sort_order-ASC',
'href'  => $this->url->link('product/search', 'sort=p.sort_order&order=ASC' . $url)
);
 
$this->data['sorts'][] = array(
'text'  => $this->language->get('text_name_asc'),
'value' => 'pd.name-ASC',
'href'  => $this->url->link('product/search', 'sort=pd.name&order=ASC' . $url)
); 
 
$this->data['sorts'][] = array(
'text'  => $this->language->get('text_name_desc'),
'value' => 'pd.name-DESC',
'href'  => $this->url->link('product/search', 'sort=pd.name&order=DESC' . $url)
);
 
$this->data['sorts'][] = array(
'text'  => $this->language->get('text_price_asc'),
'value' => 'p.price-ASC',
'href'  => $this->url->link('product/search', 'sort=p.price&order=ASC' . $url)
); 
 
$this->data['sorts'][] = array(
'text'  => $this->language->get('text_price_desc'),
'value' => 'p.price-DESC',
'href'  => $this->url->link('product/search', 'sort=p.price&order=DESC' . $url)
); 
 
if ($this->config->get('config_review_status')) {
$this->data['sorts'][] = array(
'text'  => $this->language->get('text_rating_desc'),
'value' => 'rating-DESC',
'href'  => $this->url->link('product/search', 'sort=rating&order=DESC' . $url)
); 
 
$this->data['sorts'][] = array(
'text'  => $this->language->get('text_rating_asc'),
'value' => 'rating-ASC',
'href'  => $this->url->link('product/search', 'sort=rating&order=ASC' . $url)
);
}
 
$this->data['sorts'][] = array(
'text'  => $this->language->get('text_model_asc'),
'value' => 'p.model-ASC',
'href'  => $this->url->link('product/search', 'sort=p.model&order=ASC' . $url)
); 
 
$this->data['sorts'][] = array(
'text'  => $this->language->get('text_model_desc'),
'value' => 'p.model-DESC',
'href'  => $this->url->link('product/search', 'sort=p.model&order=DESC' . $url)
);
 
$url = '';
 
if (isset($this->request->get['filter_name'])) {
$url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8'));
}
 
if (isset($this->request->get['filter_tag'])) {
$url .= '&filter_tag=' . urlencode(html_entity_decode($this->request->get['filter_tag'], ENT_QUOTES, 'UTF-8'));
}
 
if (isset($this->request->get['filter_description'])) {
$url .= '&filter_description=' . $this->request->get['filter_description'];
}
 
if (isset($this->request->get['filter_category_id'])) {
$url .= '&filter_category_id=' . $this->request->get['filter_category_id'];
}
 
if (isset($this->request->get['filter_sub_category'])) {
$url .= '&filter_sub_category=' . $this->request->get['filter_sub_category'];
}
 
if (isset($this->request->get['sort'])) {
$url .= '&sort=' . $this->request->get['sort'];
}
 
if (isset($this->request->get['order'])) {
$url .= '&order=' . $this->request->get['order'];
}
 
$this->data['limits'] = array();
 
$this->data['limits'][] = array(
'text'  => $this->config->get('config_catalog_limit'),
'value' => $this->config->get('config_catalog_limit'),
'href'  => $this->url->link('product/search', $url . '&limit=' . $this->config->get('config_catalog_limit'))
);
 
$this->data['limits'][] = array(
'text'  => 25,
'value' => 25,
'href'  => $this->url->link('product/search', $url . '&limit=25')
);
 
$this->data['limits'][] = array(
'text'  => 50,
'value' => 50,
'href'  => $this->url->link('product/search', $url . '&limit=50')
);
 
$this->data['limits'][] = array(
'text'  => 75,
'value' => 75,
'href'  => $this->url->link('product/search', $url . '&limit=75')
);
 
$this->data['limits'][] = array(
'text'  => 100,
'value' => 100,
'href'  => $this->url->link('product/search', $url . '&limit=100')
);
 
$url = '';
 
if (isset($this->request->get['filter_name'])) {
$url .= '&filter_name=' . urlencode(html_entity_decode($this->request->get['filter_name'], ENT_QUOTES, 'UTF-8'));
}
 
if (isset($this->request->get['filter_tag'])) {
$url .= '&filter_tag=' . urlencode(html_entity_decode($this->request->get['filter_tag'], ENT_QUOTES, 'UTF-8'));
}
 
if (isset($this->request->get['filter_description'])) {
$url .= '&filter_description=' . $this->request->get['filter_description'];
}
 
if (isset($this->request->get['filter_category_id'])) {
$url .= '&filter_category_id=' . $this->request->get['filter_category_id'];
}
 
if (isset($this->request->get['filter_sub_category'])) {
$url .= '&filter_sub_category=' . $this->request->get['filter_sub_category'];
}
 
if (isset($this->request->get['sort'])) {
$url .= '&sort=' . $this->request->get['sort'];
}
 
if (isset($this->request->get['order'])) {
$url .= '&order=' . $this->request->get['order'];
}
 
if (isset($this->request->get['limit'])) {
$url .= '&limit=' . $this->request->get['limit'];
}
 
$pagination = new Pagination();
$pagination->total = $product_total;
$pagination->page = $page;
$pagination->limit = $limit;
$pagination->text = $this->language->get('text_pagination');
$pagination->url = $this->url->link('product/search', $url . '&page={page}');
 
$this->data['pagination'] = $pagination->render();
}
 
$this->data['filter_name'] = $filter_name;
$this->data['filter_description'] = $filter_description;
$this->data['filter_category_id'] = $filter_category_id;
$this->data['filter_sub_category'] = $filter_sub_category;
 
$this->data['sort'] = $sort;
$this->data['order'] = $order;
$this->data['limit'] = $limit;
 
if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/search.tpl')) {
$this->template = $this->config->get('config_template') . '/template/product/search.tpl';
} else {
$this->template = 'default/template/product/search.tpl';
}
 
$this->children = array(
'common/column_left',
'common/column_right',
'common/content_top',
'common/content_bottom',
'common/footer',
'common/header'
);
 
$this->response->setOutput($this->render());
  }
}
?>

Надіслати
Поділитися на інших сайтах


У вас в контроллере проблемы.

catalog\controller\product\search.php

Почему-то не объявлены переменные, которые есть даже в стандартной сборке при шаблоне по умолчанию.

Возможно вы с модулями vqmod перестарались, а может ещё что. Нужно код смотреть

 

вообще то уровень ошибок в -1 стоит, это раз, во вторых в шаблоне неинициализированные переменные используются, замените в шаблоне на http://c2n.me/iItyOS

Надіслати
Поділитися на інших сайтах


вообще то уровень ошибок в -1 стоит, это раз, во вторых в шаблоне неинициализированные переменные используются, замените в шаблоне на http://c2n.me/iItyOS

 

Уважаемый, ustasby. Не могли бы Вы подсказать в каком конкретно файле нужно заменить код? Боюсь заменить не там :-) .

 

И что значит "уровень ошибок -1"? 

Надіслати
Поділитися на інших сайтах


Уважаемый, ustasby. Не могли бы Вы подсказать в каком конкретно файле нужно заменить код? Боюсь заменить не там :-) .

 

И что значит "уровень ошибок -1"? 

в шаблоне поиска конечно, error_reporting(-1);

если не знаете что делаете, то лучше не делайте, я в движок машины сам не ползаю, и вроде как правильно делаю.

Надіслати
Поділитися на інших сайтах


в шаблоне поиска конечно, error_reporting(-1);

если не знаете что делаете, то лучше не делайте, я в движок машины сам не ползаю, и вроде как правильно делаю.

 

Не уверен, что это именно тот шаблон поиска, но в public_html/catalog/controller/product/search.php код имеет тот вид, что Вы и указали:

 

$this->data['filter_name'] = $filter_name;
$this->data['filter_description'] = $filter_description;
$this->data['filter_category_id'] = $filter_category_id;
$this->data['filter_sub_category'] = $filter_sub_category;
 
$this->data['sort'] = $sort;
$this->data['order'] = $order;
$this->data['limit'] = $limit;
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.