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

paqwerty

Новачок
  
  • Публікації

    9
  • З нами

  • Відвідування

paqwerty's Achievements

Rookie

Rookie (2/14)

  • First Post
  • Week One Done
  • One Month Later
  • One Year In

Recent Badges

2

Репутація

  1. Всем привет. Автору модуля респект. Есть только один вопрос - у меня сейчас базовая цена равна 0 и я хочу с помощью этого модуля прибавить к базовой цене например 100, но ничего не прибавляется, базовая цена остается нулевой. Вопрос - как мне это сделать или при нулевой базовой цене нужно ее изменять в ручную?
  2. Вот дамп: oc_filter_group.sql.gz oc_filter_group_description.sql.gz Может эта таблица должна создаваться при создании групп фильтров (точно не знаю). Вы сначала попробуйте создать группу фильтров и проверьте.
  3. Ошибка говорит о том, что "user6946_main.oc_filter_group" не существует. Вам нужно проверить существование такой таблицы в БД, проверить префиксы таблицы в настройках магазина, и проверить правильность запроса.
  4. Лично я с такой проблемой не сталкивался, поэтому особо ничего не могу сказать. Могу посоветовать только прочесть всю ветку, эту проблему уже обсуждали. Вроде как нужно обновить модуль до последней версии...
  5. Как я понял вас и ваш скрин, то у вас создано два отдельных фильтра "производитель" и "размер", поэтому их два. Вам надо объединить их в один, т.е. убрать, например, "размер" и добавить эти атрибуты в производитель, тогда у вас будет один блок фильтров...
  6. Скорее недосмотрели... В меню управления модулями в свойствах coolfilter для каждого фильтра ставите нужное вам расположение. Соответственно, если нужно, чтобы только справа, то и ставить всем фильтрам правая колонка.
  7. Всем снова привет. Сделал еще одно дополнение модуля - выбор фильтров по группа (где выводиться хаотичный и гигантский список всех фильтров). Для настройки подобной вещи необходимо: 1. В файле site.ru/admin/language/russian/catalog/coolfilter.php Найти: $_['column_action'] = 'Действие'; Добавить после: $_['all_group'] = 'Все группы фильтров'; 2. В файле site.ru/admin/view/template/catalog/coolfilter_list.tpl Найти: <form action="<?php echo $delete; ?>" method="post" enctype="multipart/form-data" id="form"> Добавить перед: <form action="" method="post" enctype="multipart/form-data" id="form"> <table class="list"> <thead> <tr> <td align="right"><?php echo $column_coolfilter_groups; ?></td> <td> <select id="by_group_id" onchange = "window.location=document.forms[0].by_group_id.options[document.forms[0].by_group_id.selectedIndex].value"> <?php foreach ($fil_group as $name => $id) { ?> <option value="<?php echo $id ?>" <?php if (isset($_GET['coolfilter_group_id']) && $_GET['coolfilter_group_id'] == substr($id, strrpos($id, '=' )+1)){ ?>selected<?php } ?>><?php echo $name ?></option> <?php } ?> </select> </td> </tr> </thead> </table> </form> 3. В файле site.ru/admin/controller/catalog/coolfilter.php Найти: $results = $this->model_catalog_coolfilter->getOptions(); Заменить на: $result_group_sort = $this->model_catalog_coolfilter->getcoolfilterGroups(); foreach ($result_group_sort as $key => $val) { if ($key == 0) { $this->data['fil_group'][$val] = HTTPS_SERVER . 'index.php?route=catalog/coolfilter&token=' . $this->session->data['token']; } else { $this->data['fil_group'][$val] = HTTPS_SERVER . 'index.php?route=catalog/coolfilter&token=' . $this->session->data['token'] . '&coolfilter_group_id=' . $key; } } if (isset($this->request->get['coolfilter_group_id'])) { $results = $this->model_catalog_coolfilter->getOptions($this->request->get['coolfilter_group_id']); } else { $results = $this->model_catalog_coolfilter->getOptions(); } 4. В файле site.ru/admin/model/catalog/coolfilter.php Найти: public function getOptioncoolfilterGroups($option_id) { Добавить после всей функции: public function getcoolfilterGroups() { $res = array(); $res[0] = $this->language->get('all_group'); $coolfilter_group_query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "coolfilter_group` c LEFT JOIN `" . DB_PREFIX . "coolfilter_group_option_to_coolfilter_group` cotc ON (c.coolfilter_group_id = cotc.coolfilter_group_id) LEFT JOIN `" . DB_PREFIX . "coolfilter_group_description` cd ON (cd.coolfilter_group_id = cotc.coolfilter_group_id) "); foreach ($coolfilter_group_query->rows as $result) { $res[$result['coolfilter_group_id']] = $result['name']; } return $res; } Найти функцию: public function getOptions() { ... } Заменить всю функцию на: public function getOptions($data = '') { $option_data = array(); if (!empty($data)) { $option_query_dop1 = "LEFT JOIN `" .DB_PREFIX. "coolfilter_group_option_to_coolfilter_group` cgotcg ON (co.option_id = cgotcg.option_id)"; $option_query_dop2 = "cgotcg.coolfilter_group_id = '" . (int)$data . "' AND"; } else { $option_query_dop1 = ''; $option_query_dop2 = ''; } $option_query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "category_option` co LEFT JOIN `" . DB_PREFIX . "category_option_description` cod ON (co.option_id = cod.option_id) ". $option_query_dop1 ." WHERE ". $option_query_dop2 ." cod.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY sort_order"); foreach ($option_query->rows as $option) { $coolfilter_group_query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "coolfilter_group` c LEFT JOIN `" . DB_PREFIX . "coolfilter_group_option_to_coolfilter_group` cotc ON (c.coolfilter_group_id = cotc.coolfilter_group_id) LEFT JOIN `" . DB_PREFIX . "coolfilter_group_description` cd ON (cd.coolfilter_group_id = cotc.coolfilter_group_id) WHERE cotc.option_id = '" . (int)$option['option_id'] . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "'"); $option_type_style_query = $this->db->query("SELECT t1.type_index,t2.style_id FROM `" . DB_PREFIX . "type_option` as t1, `" . DB_PREFIX . "style_option` as t2 WHERE t1.option_id = t2.option_id AND t1.option_id = '" . (int)$option['option_id'] . "'"); $option_type_style = $option_type_style_query->row; $option_data[] = array( 'option_id' => $option['option_id'], 'name' => $option['name'], 'style' => $option_type_style['style_id'], 'type' => $option_type_style['type_index'], 'coolfilter_group' => $coolfilter_group_query->rows, 'sort_order' => $option['sort_order'], 'status' => $option['status'] ); } return $option_data; } Все. Теперь когда вы зайдете в меню админки "Фильтры товаров", то увидите сверху менюшку для фильтрации групп. И опять предлагаю автору модуля еще раз протестировать мои наработки и внести в сборку... Всем удачи.
  8. Прочитал всю тему и ответа не нашел. Очень хотелось сделать нормальную структуру фильтров по группам, а то как уже люди говорили что из-за большого количества фильтров и с одинаковыми названиями для разных групп очень трудно и неудобно в них ориентироваться. Я столкнулся с такой ситуацией конкретно на примере добавления нового фильтра товаров и присвоения ему типа фильтра, т.е. найти нужный мне атрибут в гигантском выпадающем списке типов фильтров (атрибутов), да еще когда названия могут быть одинаковыми, но относиться к разным категориям товаров. Например, атрибут "Формат" или "Тип" у меня может встречаться не один раз в разных категориях товаров и группах фильтров. И при поиске его в выпадающем списке просто не понятно к какой категории или группе он относится. Т.к. автор модуля не хочет это реализовывать, а мне очень хочется, то я попробовал сделать это сам. На моем магазине все вроде работает, но на всякий случай перед внесением изменений лучше сделать бекап затрагиваемых файлов. Итак. 1. В файле site.ru/admin/model/catalog/coolfilter.php Найти функцию: public function getAttributesForTypes() Заменить всю функцию на: public function getAttributesForTypes() { $attributes_query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "attribute` co LEFT JOIN `" . DB_PREFIX . "attribute_description` cod ON (co.attribute_id = cod.attribute_id) WHERE cod.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY sort_order"); $attributes = array(); foreach ($attributes_query->rows as $attribute) { $attributes['attribute_' . $attribute['attribute_id']] = array('cat_id' => $attribute['attribute_group_id'], 'value' => $attribute['name']); } return $attributes; } Найти: public function getParameteresForTypes() Добавить перед: public function getAttributesGroup() { $attributes_group_query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "attribute_group` ag LEFT JOIN `" . DB_PREFIX . "attribute_group_description` agd ON (ag.attribute_group_id = agd.attribute_group_id) WHERE agd.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY sort_order"); $groupes = array(); foreach ($attributes_group_query->rows as $group) { $groupes[$group['attribute_group_id']] = array('value' => $group['name']); } return $groupes; } 2. В файле site.ru/admin/controller/catalog/coolfilter.php Найти: $typesAttributes['attributes'] = $this->model_catalog_coolfilter->getAttributesForTypes(); Добавить после: $typesAttributes['attributes_group'] = $this->model_catalog_coolfilter->getAttributesGroup(); 3. В файле site.ru/admin/view/template/catalog/coolfilter_form.tpl Найти: <?php foreach ($type_groups as $group) { ?> <optgroup label="<?php echo $$group['text']; ?>"> <?php foreach ($types[$group['value']] as $typeKey => $type) { ?> <option value="<?php echo $typeKey; ?>" <?php if($option_types == $typeKey){ ?>selected="selected"<?php } ?>><?php echo $type['value'] ?></option> <?php } ?> </optgroup> <?php } ?> Заменить на: <?php foreach ($type_groups as $group) { ?> <optgroup label="<?php echo $$group['text']; ?>"> <?php if ($group['value'] != 'attributes') { ?> <?php foreach ($types[$group['value']] as $typeKey => $type) { ?> <option value="<?php echo $typeKey; ?>" <?php if($option_types == $typeKey){ ?>selected="selected"<?php } ?>><?php echo $type['value'] ?></option> <?php } ?> <?php } else {?> <?php foreach ($types['attributes_group'] as $group_id => $group_name) { ?> <optgroup label="<?php echo $group_name['value']; ?>" style="color: #F00;"> <?php foreach ($types[$group['value']] as $typeKey => $type) { ?> <?php if ($type['cat_id'] == $group_id) { ?> <option value="<?php echo $typeKey; ?>" <?php if($option_types == $typeKey){ ?>selected="selected"<?php } ?>><?php echo $type['value'] ?></option> <?php } ?> <?php } ?> </optgroup> <?php } ?> <?php } ?> </optgroup> <?php } ?> Все, теперь у вас есть нормальная структура атрибутов в выпадающем списке добавления нового фильтра. Пример работы показан на скриншоте. Если у автора есть желание, то можешь протестировать данные изменения и добавить в сборку.
Гість
×
  • Створити...

Important Information

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