Jump to content

ddmx

Новичок
  • Content Count

    10
  • Joined

  • Last visited

Community Reputation

0 Обычный

About ddmx

  • Rank
    Пользователь

Recent Profile Visitors

1,642 profile views
  1. В coolfilter.tpl замените: function setUrl(coolfilter) { var href = location.href; var exp = /(\?|\&)coolfilter=(.*)?(&|$)/g; href = href.replace(exp, ""); if (coolfilter) { href += '&coolfilter=' + coolfilter; } location = href; } на function setUrl(coolfilter) { var href = location.href; var exp = /(\?|\&)coolfilter=(.*)?(&|$)/g; var expage = /(\?|\&)page=(.*)?(&|$)/g; href = href.replace(exp, ""); href = href.replace(expage, ""); if (coolfilter) { href += '&coolfilter=' + coolfilter; } location = href; }
  2. При загрузке данных в opencart версии 1.5.5.1.2 очищается таблица в базе данных product_filter , из-за чего у товаров пропадают значения фильтра. Решение проблемы: 1)в файле admin/model/tool/exchange1c.php находим строку: $data = array_merge($data, array('product_attribute' => $this->model_catalog_product->getProductAttributes($product_id))); После неё вставляем: $data = array_merge($data, array('product_filter' => $this->model_catalog_product->getProductFilters($product_id)));//фикс фильтра 2)В том же файле находим строку: ,'product_attribute' => (isset($product['product_attribute'])) ? $product['product_attribute'] : (isset($data['product_attribute']) ? $data['product_attribute']: array()) после неё вставляем: ,'product_filter' => (isset($product['product_filter'])) ? $product['product_filter'] : (isset($data['product_filter']) ? $data['product_filter']: array())//фикс фильтра
  3. лучше сделать так:1) в функции getProducts(); if (!empty($data['filter_name'])) { $implode = array(); $words = explode(' ', $data['filter_name']); $words = array_filter(array_unique($words), 'strlen'); foreach ($words as $word) { if (!empty($data['filter_description'])) { $implode[] = "LCASE(pd.name) LIKE '%" . $this->db->escape(utf8_strtolower($word)) . "%' OR LCASE(pd.description) LIKE '%" . $this->db->escape(utf8_strtolower($word)) . "%'"; } else { $implode[] = "LCASE(pd.name) LIKE '%" . $this->db->escape(utf8_strtolower($word)) . "%'"; } } if ($implode) { $sql .= " " . implode(" OR ", $implode) . ""; } } заменить if ($implode) { $sql .= " " . implode(" OR ", $implode) . ""; } на if ($implode) { $sql .= " " . implode(" AND ", $implode) . ""; } 2)И в функции getTotalProducts(); if (!empty($data['filter_name'])) { $implode = array(); $words = explode(' ', $data['filter_name']); foreach ($words as $word) { if (!empty($data['filter_description'])) { $implode[] = "LCASE(pd.name) LIKE '%" . $this->db->escape(utf8_strtolower($word)) . "%' OR LCASE(pd.description) LIKE '%" . $this->db->escape(utf8_strtolower($word)) . "%'"; } else { $implode[] = "LCASE(pd.name) LIKE '%" . $this->db->escape(utf8_strtolower($word)) . "%'"; } } if ($implode) { $sql .= " " . implode(" OR ", $implode) . ""; } } заменить if ($implode) { $sql .= " " . implode(" OR ", $implode) . ""; } на if ($implode) { $sql .= " " . implode(" AND ", $implode) . ""; } В итоге будет искать по 100% совпадению + воспринимает любой порядок слов . что бы найти "Велосипед Stels 410" можно вводить "410 Stels" , " велосипед 410" и.т.д.
×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.