Добрый день! Подскажите, есть ли модуль, позволяющий создавать вложенные группы атрибутов? Дело в том, что для разных категорий могут быть группы атрибутов, имеющие одинаковое название, но разный набор атрибутов. Например, атрибуты в группе "Технические характеристики" для категории "Планшеты" отличаются от атрибутов в группе "Технические характеристики" для категории "Процессоры", а название у этих двух групп одинаковое! Как можно группировать группы атрибутов, чтобы было понятно, что эта группа атрибутов "Технические характеристики" относится к категории "Планшеты", а вот эта - к категории "Процессоры"? Я установил модуль "Attributic - Добавление атрибутов по шаблону в один клик". С помощью этого модуля можно создавать шаблоны атрибутов, которые можно добавлять в товар (массовое добавление всех атрибутов, прикреплённых к данному шаблону). Но дело в том, что атрибуты, добавляемые в шаблоны, находятся в определённой группе атрибутов. Если будет много категорий, с товарами которых будут ассоциироваться группы атрибутов с одинаковыми названиями, но разными атрибутами, то как мы узнаем, относится ли данная группа атрибутов к нужной нам категории, ведь название одно и то же, и только по набору атрибутов в группе можно судить, ассоциируется ли данная группа атрибутов с товарами из данной категории? Название группы атрибутов выводится как заголовок таблицы характеристик товара. Поэтому мы не можем просто написать в названии группы атрибутов "Планшеты - Основные характеристики" (так и выведется на странице конкретного планшета, а нужно просто "Основные характеристики"). Может, надо править код вывода таблицы характеристик на странице?
я бы сделал так.... конЭшна с помощью кода добавил бы в Атрибуты еще одно поле (В АДМИНКЕ) допустим "КАТЕГОРИИ" или "ОПИСАНИЕ" или как-то там еще... потом при выборе атрибута товара в админке, я бы показывал не только название в автозаполнении, а склеивал бы его с с этим полем типа -> ТХ(процы) или ТХ(Планшеты) Можно еще проще -> формировать назвать название из Атрибута и его группы. Смысл тот-же . только доп поле не потребуется... Ну в общем направление ясно. А на морде сайта все по старому. Название только атрибута в чистом виде. Вот какая-то такая идея...
Спасибо, что навели на мысль! Я так и сделал: 1. Добавил колонку "category" в Базе Данных в таблице attribute_group. 2. Добавил колонку "Категория товаров группы атрибутов" в таблицу групп атрибутов 3. Поправил в нескольких местах контроллер attribute_group, сделал запросы к БД к таблицам oc_category_description и oc_attribute_group и сформировал вёрстку select с выбором категорий. Также сделал так, что при нажатии кнопки "изменить" на группе атрибутов выбирался нужный option (существующее значение категории в БД для выбранной группы атрибутов). Затем вывел этот select в шаблоне. Я не знаю, правильно ли я сделал, что закомментировал след. строки в контроллере attribute_group: PHP: if (isset($this->request->post['category'])) { } elseif (!empty($attribute_group_info)) { $this->data['category'] = $attribute_group_info['category']; } else { $this->data['category'] = ''; } И вместо них выше написал весь мой код запросов к БД, перебора данных, полученных из БД и формирования вёрстки: PHP: $oc_cat_desc_names = $this->db->query('SELECT name FROM oc_category_description GROUP BY category_id'); $attr_group_rows = $this->db->query('SELECT attribute_group_id, category FROM oc_attribute_group'); foreach($oc_cat_desc_names as $key=>$row){ if($key == 'rows'){ foreach($row as $val){ $categories[] = $val; } } } $this->data['category'] = "<select name='category' size='1'>"; $flag = 0; foreach($categories as $cat_val) { $this->data['category'] .= "<option value='".$cat_val['name']."'"; foreach($attr_group_rows as $attr_group_rows_key=>$attr_group_rows_val) { foreach($attr_group_rows_val as $attr_group_row){ if($attr_group_row['attribute_group_id'] == $this->request->get['attribute_group_id']) { if($cat_val['name'] == $attr_group_row['category']){ $this->data['category'] .= "selected"; $flag = 1; } } if($flag == 1) break; } if($flag == 1) break; } $this->data['category'] .= ">".$cat_val['name']; $this->data['category'] .= "</option>"; } $this->data['category'] .= "</select>"; Сначала я пытался вставить этот код вот сюда: PHP: if (isset($this->request->post['category'])) {//сюда } И вроде бы получилось, но потом увидел, что в админке появляется только название категории, а select нет. Т.е. отрабатывал след. блок кода: PHP: } elseif (!empty($attribute_group_info)) { $this->data['category'] = $attribute_group_info['category']; } А мне нужно было всегда выводить select в админке при редактировании группы атрибутов. 4. Немного изменил модель attribute_group и attribute