А на какие примерно сроки можно рассчитывать?TechAdmin писал(а):Попробуем доработать это.Может можно в СС реализовать такую возможность?
Настройка "Используется первая версия модуля ocfilter.com"
как дело обстоит с мультиатрибутами, о которых шла речь в этой теме?
Как там поддержка мультиатрибутов (разделителя) для OCfilter? а то уже 4 год прошел, а в теме тишина? Ведь поддержка данного модуля заявлена Вами
Нет поддержки разделителя, более того в последней версии модуля разработчик убрал эту функцию.
С уважением, поддержка ElbuzGroup.
кто, куда и кого ублал не понятно.
Вот у меня скачанная у автора неделю назад версия, вот скриншот, что при копировании атрибутов можно указать разделитель
скриншот:
http://prntscr.com/kl4imb
то есть, разделитель является штатным функционалом модуля вот уже лет 3-4
.
Тем более, пообщался с автором, он обещал дать скрипт, который можно будет использовать для разбивки значений атрибутов после импорта с СС... но вот не понятно, почему такой скрипт не интегрирован в стандартный туннель СС, ведь с моей стороны не очеь бы хотелось использовать костыли
Вот у меня скачанная у автора неделю назад версия, вот скриншот, что при копировании атрибутов можно указать разделитель
скриншот:
http://prntscr.com/kl4imb
то есть, разделитель является штатным функционалом модуля вот уже лет 3-4
.
Тем более, пообщался с автором, он обещал дать скрипт, который можно будет использовать для разбивки значений атрибутов после импорта с СС... но вот не понятно, почему такой скрипт не интегрирован в стандартный туннель СС, ведь с моей стороны не очеь бы хотелось использовать костыли
В модуле для OpenCart3 этой функции не было, возможно автор добавил её недавно.
С уважением, поддержка ElbuzGroup.
ок, я понял, так ждать в ближайшее время полной поддержки OCFilter или возвращать у его автора деньги?TechAdmin писал(а): 21 авг 2018 12:03 В модуле для OpenCart3 этой функции не было, возможно автор добавил её недавно.
В программе не будет доработана эта функция.
С уважением, поддержка ElbuzGroup.
Разработчик поделился php кодом, который нужно исполнять уже после импорта значений характеристик в базу из СС.
Подскажите, куда его лучше вставить, чтобы заработало разделение?
Подскажите, куда его лучше вставить, чтобы заработало разделение?
Код: Выделить всё
$separator = ','; // Здесь указываем ваш разделитель.
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "ocfilter_option_value_description WHERE language_id = '" . (int)$this->config->get('config_language_id') . "' AND name LIKE '%" . $this->db->escape($separator) . "%'");
foreach ($query->rows as $result) {
$values = explode($separator, $result['name']);
foreach ($values as $value) {
$value = trim($value);
if (!$value) {
continue;
}
$value_query = $this->db->query("SELECT value_id FROM " . DB_PREFIX . "ocfilter_option_value_description WHERE language_id = '" . (int)$this->config->get('config_language_id') . "' AND option_id = '" . (int)$result['option_id'] . "' AND LCASE(TRIM(name)) = '" . $this->db->escape(utf8_strtolower($value)) . "'");
if ($value_query->num_rows) {
$value_id = $value_query->row['value_id'];
} else {
$this->db->query("INSERT INTO " . DB_PREFIX . "ocfilter_option_value (option_id) VALUES ('" . (int)$result['option_id'] . "')");
$value_id = $this->db->getLastId();
$this->db->query("INSERT INTO " . DB_PREFIX . "ocfilter_option_value_description (option_id, value_id, language_id, name) VALUES ('" . (int)$result['option_id'] . "', '" . $this->db->escape($value_id) . "', '" . (int)$this->config->get('config_language_id') . "', '" . $this->db->escape($value) . "')");
}
$this->db->query("INSERT IGNORE INTO " . DB_PREFIX . "ocfilter_option_value_to_product (product_id, option_id, value_id) SELECT oov2p.product_id, '" . (int)$result['option_id'] . "', '" . $this->db->escape($value_id) . "' FROM " . DB_PREFIX . "ocfilter_option_value_to_product oov2p WHERE oov2p.option_id = '" . (int)$result['option_id'] . "' AND oov2p.value_id = '" . $this->db->escape($result['value_id']) . "'");
}
if ($values) {
$this->db->query("DELETE FROM `" . DB_PREFIX . "ocfilter_option_value` WHERE value_id = '" . $this->db->escape($result['value_id']) . "'");
$this->db->query("DELETE FROM `" . DB_PREFIX . "ocfilter_option_value_description` WHERE language_id = '" . (int)$this->config->get('config_language_id') . "' AND value_id = '" . $this->db->escape($result['value_id']) . "'");
$this->db->query("DELETE FROM `" . DB_PREFIX . "ocfilter_option_value_to_product` WHERE option_id = '" . (int)$result['option_id'] . "' AND value_id = '" . $this->db->escape($result['value_id']) . "'");
}
}