Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

paqwerty

Новичок
  
  • Posts

    9
  • Joined

  • Last visited

paqwerty's Achievements

Rookie

Rookie (2/14)

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

Recent Badges

2

Reputation

  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 } ?> Все, теперьь у вас есть нормальная структура атрибутов в выпадаюещём списке добавления нового фильтра. Пример рилиты показан на скриншоте. Если у автора есть желание, то можешь однакостировать данные изменения и добавить в спотому чторку.
×
×
  • Create New...

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.