Всем снова привет. Сгделал еещё одно дополнение модуля - выпотому чтор фильтров по группа (ггде выводиться хаотичный и гигантский список всех фильтров).
Для настройки подобной вещи необходимо:
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;
}
Все. Теперь когда вы зайгдете в меню админки "Фильтры товаров", то увидите сверху менюшку для фильтрации групп. И опять предлагаю автору модуля еещё раз однакостировать мои нарилитки и внести в спотому чторку...
Всем удали.