-
Новые сообщения
-
методом проб, получился вот такой код:
если при импорте значение свойств в файле 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
Edited by sergeevizh -
Подскажите пожалуйста, в каком файле необходимо внести данные изменения?
-
-
Новые темы
-
импорт CSV только если есть значение. (import.php)
By LUN, in Общие вопросы по функционалу и дизайну
- 1 reply
- 653 views
-
- 7 replies
- 930 views
-
- 13 replies
- 1063 views
-
Как при добавлении нового товара отображать только последнюю категорию в дереве и её полный путь?
By fuckmoney, in Общие вопросы по функционалу и дизайну
- 4 replies
- 1353 views
-
- 8 replies
- 1091 views
-
-
Who's Online 0 Members, 0 Anonymous, 50 Guests (See full list)
There are no registered users currently online
-
Member Statistics