-
Новые сообщения
-
методом проб, получился вот такой код:
если при импорте значение свойств в файле csv пустое, значение на сайте не изменяется
если есть значение в csv, перезаписывает это значение на сайте.
Вдруг кому пригодится
Насколько правильно он написан, не могу сказать, но свою функцию выполняет
// Поиск или создание функции $this->db->query('SELECT f.id FROM __features f WHERE f.name=? AND f.id in(SELECT feature_id FROM __categories_features AS cf WHERE cf.category_id =?) LIMIT 1', $feature_name, $category_id); if (!$feature_id = $this->db->result('id')) { // Разбиение значения функции на массив $opts = explode($this->option_delimiter, $feature_value); // Проверяем, содержит ли $opts корректные значения if (!empty($opts)) { $has_valid_opts = false; foreach ($opts as $opt) { if (trim($opt) !== '') { $has_valid_opts = true; break; } } } // Если есть хотя бы одно корректное значение if ($has_valid_opts) { $feature_id = $this->features->add_feature(array('name' => $feature_name)); // Добавление функции в категорию $this->features->add_feature_category($feature_id, $category_id); // Добавление новых значений foreach ($opts as $opt) { $opt = trim($opt); if ($opt) { $this->features->update_option($product_id, $feature_id, $opt); } } } } else { // Выполнение запроса $this->db->query('SELECT value FROM __options WHERE product_id = ? AND feature_id LIMIT 1', $product_id); // Получение результата $value = $this->db->result('value'); if (!empty($value)) { // Разбиение значения функции на массив $opts = explode($this->option_delimiter, $feature_value); // Проверяем, содержит ли $opts корректные значения if (!empty($opts)) { $has_valid_opts = false; foreach ($opts as $opt) { if (trim($opt) !== '') { $has_valid_opts = true; break; } } } // Если есть хотя бы одно корректное значение if ($has_valid_opts) { // Удаление старых значений $this->db->query('DELETE FROM __options WHERE product_id = ? AND feature_id = ?', $product_id, $feature_id); // Добавление новых значений foreach ($opts as $opt) { $opt = trim($opt); if ($opt) { $this->features->update_option($product_id, $feature_id, $opt); } } } } if (empty($value)) { // Разбиение значения функции на массив $opts = explode($this->option_delimiter, $feature_value); if (!empty($opts)) { // Добавление новых значений foreach ($opts as $opt) { $opt = trim($opt); if ($opt) { $this->features->update_option($product_id, $feature_id, $opt); } } } } }
-
Помогите сделать функцию.
При импорте csv файла товара, нужно сделать проверку существующих характеристики.
Основные условия, если ячейка из csv файла пуста, то значение характеристики на сайте не изменяется.
Если ячейка не пустая и у товара есть заполненная характеристики на сайте, то это значение удаляется, и заполняется новыми значениями...
подскажите как правильно должно быть, а то чет не работает удаление...
От программирования к сожалению далек, состряпал вот такой код, который работает на 40% из задуманного.
$this->db->query('SELECT f.id FROM __features f WHERE f.name=? AND f.id in(SELECT feature_id FROM __categories_features AS cf WHERE cf.category_id =?) LIMIT 1', $feature_name, $category_id); if (!$feature_id = $this->db->result('id')) { $feature_id = $this->features->add_feature(array('name' => $feature_name)); } $this->db->query('SELECT value FROM s_options WHERE product_id = ? AND feature_id = ? LIMIT 1', $product_id, $feature_id); if (!$value = $this->db->result('')) { $this->features->add_feature_category($feature_id, $category_id); $opts = explode($this->option_delimiter, $feature_value); if (!empty($opts)) { if (is_array($opts)) { $this->features->delete_option($product_id, $feature_id); foreach ($opts as $opt) { $opt = trim($opt); if ($opt) { $this->features->update_option($product_id, $feature_id, $opt); } } } } }
-
В 27.08.2024 в 11:47, sergeevizh сказал:
Вопрос решили, дело было в форме которая не отправляла токен.
а как сделать асинхронную отправку / фоновую отправку? Потому что страница долго грузится пока идет отправка сообщений
-
6 минут назад, LUN сказал:
Подскажите пожалуйста, в каком файле необходимо внести данные изменения?
/design/ваш_шаблон/html/product.tpl
Изменено пользователем sergeevizh -
Подскажите пожалуйста, в каком файле необходимо внести данные изменения?
-
-
Новые темы
-
- 1 ответ
- 2193 просмотра
-
- 7 ответов
- 2203 просмотра
-
- 13 ответов
- 2310 просмотров
-
Как при добавлении нового товара отображать только последнюю категорию в дереве и её полный путь?
От fuckmoney, в Общие вопросы по функционалу и дизайну
- 4 ответа
- 2739 просмотров
-
- 8 ответов
- 2464 просмотра
-
-
Кто в онлайне 0 пользователей, 0 анонимных, 35 гостей (Посмотреть всех)
Зарегистрированных пользователей в онлайне нет
-
Статистика пользователей