Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

sergei5770

Користувачі
  
  • Публікації

    62
  • З нами

  • Відвідування

Усі публікації користувача sergei5770

  1. не подскажете как реализовать ваш метод, и тот ли я кусок кода редактирую?
  2. просто по цене отсортировать не совсем то что нужно, потому что сортировка по возрастанию цены тоже нужна, но при этом нужно чтобы товары с нулевой стоимостью уходили в конец списка всегда
  3. Пробовал следующим образом: if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') { $sql .= " ORDER BY price = 0, price DESC, LCASE(" . $data['sort'] . ")"; } elseif ($data['sort'] == 'p.price') { $sql .= " ORDER BY price = 0, price DESC, (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)"; } else { $sql .= " ORDER BY price = 0, price DESC," . $data['sort']; } } else { $sql .= " ORDER BY price = 0, price DESC, p.sort_order"; } Не сработало
  4. День добрый! Подскажите, как можно изменить функцию сортировки, чтобы он товары с нулевой стоимостью всегда помещал вниз списка?
  5. Товары залиты на сайт, от файла требуется только изменение цен в текущих товарах.
  6. Всем день добрый. Вопрос такой, если прайсы нескольких поставщиков, которые скидывают их эксель файлом, естественно никаких схожих структур ячеек нету, т.к. разные фабрики. Вопрос в следующем, возможна ли выгрузка цен из таких прайсов, или же все таки нужна схожая структура?
  7. День добрый! Купил дополнение, возник вопрос, поставил vqmod, накатил файлы из архива image_option_1.1, при установке выдает internal server error, движок 2.3. Как вылечить?
  8. День добрый! Купил дополнение, возник вопрос, поставил vqmod, накатил файлы из архива image_option_1.1, при установке выдает internal server error, движок 2.3.

    Как вылечить?

  9. например в какой то отчет сформировать, либо в эксель тот же
  10. Всем доброе время суток! Вопрос такой, есть какие то готовые модули по выгрузке остатков на складе? Больше даже интересна выгрузка остатков по категориям, есть что-то подобное?
  11. Здравствуйте всем! Такая проблема, после переноса сайта на VPS, в файловом менеджере почти все папки стали иметь имя "data", хотя на сервере у папок нормальные имена, в чем может быть проблема и как это лечить? Все права на папки верные стоят, конфиги тоже верные, но эта ерунда с картинками. Пробовал перезаливать через filezilla и WinSCP, ноль результата.
  12. что именно было пропущено? я щас исправлю, так то вроде все добавил
  13. Завантажити / Придбати розширення Фильтр по артикулу в админ панели для v1.5.5.1 Позволяет фильтровать список товаров в админ панели по артикулу SKU. Проверено на версии 1.5.5.1.1 Как ставить: В архиве приложена подробная инструкция и уже готовые файлы для версии 1.5.5.1.1 Автор sergei5770 долучення 14.10.16 Категорія Фильтры Системные требования Метод активации Ioncube Loader ocStore OpenCart.Pro, ocShop Звернення до сервера розробника  
  14. Модуль "Фильтр по артикулу в админ панели v1.5.x" ВНИМАНИЕ! ЕСЛИ ИСПОЛЬЗУЕТЕ ГОТОВЫЕ ФАЙЛЫ, СДЕЛАЙТЕ БЭКАП ЗАМЕНЯЕМЫХ ФАЙЛОВ! Проверял на версии 1.5.5.1.1, для остальных версий будет делаться все наподобие. 1) Идем в файл admin/controller/catalog/product.php После (примерно 34 строчка) if (isset($this->request->get['filter_model'])) { $filter_model = $this->request->get['filter_model']; } else { $filter_model = null; } Добавляем if (isset($this->request->get['filter_sku'])) { $filter_sku = $this->request->get['filter_sku']; } else { $filter_sku = null; } После (примерно 100 строчка) if (isset($this->request->get['filter_model'])) { $url .= '&filter_model=' . $this->request->get['filter_model']; } Добавляем if (isset($this->request->get['filter_sku'])) { $url .= '&filter_sku=' . $this->request->get['filter_sku']; } После (примерно 132 строчка) 'filter_model' => $filter_model, Добавляем 'filter_sku' => $filter_sku, После(примерно 182 строчка) 'model' => $result['model'], Добавляем 'sku' => $result['sku'], После (примерно 232 строчка) if (isset($this->request->get['filter_model'])) { $url .= '&filter_model=' . urlencode(html_entity_decode($this->request->get['filter_model'], ENT_QUOTES, 'UTF-8')); } Добавляем if (isset($this->request->get['filter_sku'])) { $url .= '&filter_sku=' . urlencode(html_entity_decode($this->request->get['filter_sku'], ENT_QUOTES, 'UTF-8')); } После (примерно 296 строчка) if (isset($this->request->get['filter_model'])) { $url .= '&filter_model=' . urlencode(html_entity_decode($this->request->get['filter_model'], ENT_QUOTES, 'UTF-8')); } Добавляем if (isset($this->request->get['filter_sku'])) { $url .= '&filter_sku=' . urlencode(html_entity_decode($this->request->get['filter_sku'], ENT_QUOTES, 'UTF-8')); } После (примерно 362 строчка) if (isset($this->request->get['filter_model'])) { $url .= '&filter_model=' . urlencode(html_entity_decode($this->request->get['filter_model'], ENT_QUOTES, 'UTF-8')); } Добавляем if (isset($this->request->get['filter_sku'])) { $url .= '&filter_sku=' . urlencode(html_entity_decode($this->request->get['filter_sku'], ENT_QUOTES, 'UTF-8')); } После (примерно 428 строчка) if (isset($this->request->get['filter_model'])) { $url .= '&filter_model=' . urlencode(html_entity_decode($this->request->get['filter_model'], ENT_QUOTES, 'UTF-8')); } Добавляем if (isset($this->request->get['filter_sku'])) { $url .= '&filter_sku=' . urlencode(html_entity_decode($this->request->get['filter_sku'], ENT_QUOTES, 'UTF-8')); } После (примерно 483 строчка) if (isset($this->request->get['filter_model'])) { $filter_model = $this->request->get['filter_model']; } else { $filter_model = null; } Добавляем if (isset($this->request->get['filter_sku'])) { $filter_sku = $this->request->get['filter_sku']; } else { $filter_sku = null; } После (примерно 549 строчка) if (isset($this->request->get['filter_model'])) { $url .= '&filter_model=' . $this->request->get['filter_model']; } Добавляем if (isset($this->request->get['filter_sku'])) { $url .= '&filter_sku=' . $this->request->get['filter_sku']; } После (примерно 605 строчка) 'filter_model' => $filter_model, Добавляем 'filter_sku' => $filter_sku, После (примерно 653 строчка) 'model' => $result['model'], Добавляем 'sku' => $result['sku'], После (примерно 677 строчка) $this->data['column_model'] = $this->language->get('column_model'); Добавляем $this->data['column_sku'] = $this->language->get('column_sku'); После (примерно 719 строчка) if (isset($this->request->get['filter_model'])) { $url .= '&filter_model=' . $this->request->get['filter_model']; } Добавляем if (isset($this->request->get['filter_sku'])) { $url .= '&filter_sku=' . $this->request->get['filter_sku']; } После (примерно 750 строка) $this->data['sort_model'] = $this->url->link('catalog/product', 'token=' . $this->session->data['token'] . '&sort=p.model' . $url, 'SSL'); Добавляем $this->data['sort_sku'] = $this->url->link('catalog/product', 'token=' . $this->session->data['token'] . '&sort=p.sku' . $url, 'SSL'); После (примерно 771 строка) if (isset($this->request->get['filter_model'])) { $url .= '&filter_model=' . $this->request->get['filter_model']; } Добавляем if (isset($this->request->get['filter_sku'])) { $url .= '&filter_sku=' . $this->request->get['filter_sku']; } После (примерно 811 строка) $this->data['filter_model'] = $filter_model; Добавляем $this->data['filter_sku'] = $filter_sku; После (примерно 986 строка) if (isset($this->request->get['filter_model'])) { $url .= '&filter_model=' . urlencode(html_entity_decode($this->request->get['filter_model'], ENT_QUOTES, 'UTF-8')); } Добавляем if (isset($this->request->get['filter_sku'])) { $url .= '&filter_sku=' . urlencode(html_entity_decode($this->request->get['filter_sku'], ENT_QUOTES, 'UTF-8')); } 2) Идем в файл admin/model/catalog/product.php После (примерно 365 строчка) if (!empty($data['filter_model'])) { $sql .= " AND LCASE(p.model) LIKE '%" . $this->db->escape(utf8_strtolower($data['filter_model'])) . "%'"; } Добавляем if (!empty($data['filter_sku'])) { $sql .= " AND LCASE(p.sku) LIKE '%" . $this->db->escape(utf8_strtolower($data['filter_sku'])) . "%'"; } После (примерно 413 строчка) 'p.model', Добавляем 'p.sku', После (примерно 677 строчка) if (!empty($data['filter_model'])) { $sql .= " AND LCASE(p.model) LIKE '%" . $this->db->escape(utf8_strtolower($data['filter_model'])) . "%'"; } Добавляем if (!empty($data['filter_sku'])) { $sql .= " AND LCASE(p.sku) LIKE '%" . $this->db->escape(utf8_strtolower($data['filter_sku'])) . "%'"; } 3) Идем в файл admin/view/template/catalog/product_list.tpl После (примерно 40 строчка) <td class="left"><?php if ($sort == 'p.model') { ?> <a href="<?php echo $sort_model; ?>" class="<?php echo strtolower($order); ?>"><?php echo $column_model; ?></a> <?php } else { ?> <a href="<?php echo $sort_model; ?>"><?php echo $column_model; ?></a> <?php } ?></td> Добавляем <td class="left"><?php if ($sort == 'p.sku') { ?> <a href="<?php echo $sort_sku; ?>" class="<?php echo strtolower($order); ?>"><?php echo $column_sku; ?></a> <?php } else { ?> <a href="<?php echo $sort_sku; ?>">Артикул</a> <?php } ?></td> После (примерно 90 строчка) <td><input type="text" name="filter_model" value="<?php echo $filter_model; ?>" /></td> Добавляем <td><input type="text" name="filter_sku" value="<?php echo $filter_sku; ?>" /></td> После (примерно 122 строчка) <td class="left"><?php echo $product['model']; ?></td> Добавляем <td class="left"><?php echo $product['sku']; ?></td> После (примерно 164 строка) <td class="left">${model}</td> Добавляем <td class="left">${sku}</td> После (примерно 212 строчка) var filter_model = $('input[name=\'filter_model\']').attr('value'); if (filter_model) { url += '&filter_model=' + encodeURIComponent(filter_model); } Добавляем var filter_sku = $('input[name=\'filter_sku\']').attr('value'); if (filter_sku) { url += '&filter_sku=' + encodeURIComponent(filter_sku); } В самом конце файла перед //--></script> <?php echo $footer; ?> Добавляем $('input[name=\'filter_sku\']').autocomplete({ delay: 0, source: function(request, response) { $.ajax({ url: 'index.php?route=catalog/product/autocomplete&token=<?php echo $token; ?>&filter_sku=' + encodeURIComponent(request.term), dataType: 'json', success: function(json) { response($.map(json, function(item) { return { label: item.sku, value: item.product_id } })); } }); }, select: function(event, ui) { $('input[name=\'filter_sku\']').val(ui.item.label); return false; } }); На этом все, фильтр по артикулу готов и работает, будьте внимательны при редактировании файлов и все получится! Для ленивых выкладываю уже отредактированные файлы версии движка 1.5.5.1.1(при копировании заменятся родные файлы движка, делайте бекапы!) - модуль sku.zip
  15. да яв первую очередь это сделал, он начинает перезаписывать файлы снова
  16. public function upload() { $this->language->load('common/filemanager'); $json = array(); if (isset($this->request->post['directory'])) { if (isset($this->request->files['image']) && $this->request->files['image']['tmp_name']) { $filename = html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8'); $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists($directory . $file)) { while(file_exists($directory . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } $filename = $file; if ((strlen($filename) < 3) || (strlen($filename) > 255)) { $json['error'] = $this->language->get('error_filename'); } $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); if (!is_dir($directory)) { $json['error'] = $this->language->get('error_directory'); } if ($this->request->files['image']['size'] > 300000) { $json['error'] = $this->language->get('error_file_size'); } $allowed = array( 'image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png', 'image/gif', 'application/x-shockwave-flash' ); if (!in_array($this->request->files['image']['type'], $allowed)) { $json['error'] = $this->language->get('error_file_type'); } $allowed = array( '.jpg', '.jpeg', '.gif', '.png', '.flv' ); if (!in_array(strtolower(strrchr($filename, '.')), $allowed)) { $json['error'] = $this->language->get('error_file_type'); } if ($this->request->files['image']['error'] != UPLOAD_ERR_OK) { $json['error'] = 'error_upload_' . $this->request->files['image']['error']; } } else { $json['error'] = $this->language->get('error_file'); } } else { $json['error'] = $this->language->get('error_directory'); } if (!$this->user->hasPermission('modify', 'common/filemanager')) { $json['error'] = $this->language->get('error_permission'); } if (!isset($json['error'])) { if (@move_uploaded_file($this->request->files['image']['tmp_name'], $directory . '/' . $filename)) { $json['success'] = $this->language->get('text_uploaded'); } else { $json['error'] = $this->language->get('error_uploaded'); } } $this->response->setOutput(json_encode($json)); } Так выглядит весь upload
  17. $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists($directory . $file)) { while(file_exists($directory . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } $filename = $file;
  18. Всем привет! Нет ли готового модуля, который бы позволял автоматически выделять картинку, которая была загружена? Версия 1.5.5.1 Т.е. я загрузил картинку к товару и она сразу выделилась
  19. Все, разобрался, спасибо пользователю shalan, кароч пишу решение для версии 1.5.5.1(на счет остальных версий не знаю) В файле admin/controller/common/filemanager.php, пишем: В функции public function upload() После $filename = html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8'); Добавляем $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists(DIR_IMAGE . 'data/' . $file)) { while(file_exists($directory . '/' . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } $filename = $file; После if ((strlen($filename) < 3) || (strlen($filename) > 255)) { $json['error'] = $this->language->get('error_filename'); } Удаляем $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); Все, теперь к повторяющимся названиям будут прибавляться цифры 1,2,3 и т.д.
  20. Файл стал загружаться, но он по прежнему перезаписывается, как будто игнорит проверку
  21. Я так понимаю эта функция отвечает за загрузку картинки, и сделал примерно так: public function upload() { $this->language->load('common/filemanager'); $json = array(); if (isset($this->request->post['directory'])) { if (isset($this->request->files['image']) && $this->request->files['image']['tmp_name']) { $filename = basename(html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8')); $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists('image/' . $file)) { while(file_exists('image/' . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } if ((strlen($filename) < 3) || (strlen($filename) > 255)) { $json['error'] = $this->language->get('error_filename'); } $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); if (!is_dir($directory)) { $json['error'] = $this->language->get('error_directory'); } if ($this->request->files['image']['size'] > 300000) { $json['error'] = $this->language->get('error_file_size'); } $allowed = array( 'image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png', 'image/gif', 'application/x-shockwave-flash' ); if (!in_array($this->request->files['image']['type'], $allowed)) { $json['error'] = $this->language->get('error_file_type'); } $allowed = array( '.jpg', '.jpeg', '.gif', '.png', '.flv' ); if (!in_array(strtolower(strrchr($filename, '.')), $allowed)) { $json['error'] = $this->language->get('error_file_type'); } if ($this->request->files['image']['error'] != UPLOAD_ERR_OK) { $json['error'] = 'error_upload_' . $this->request->files['image']['error']; } } else { $json['error'] = $this->language->get('error_file'); } } else { $json['error'] = $this->language->get('error_directory'); } if (!$this->user->hasPermission('modify', 'common/filemanager')) { $json['error'] = $this->language->get('error_permission'); } if (!isset($json['error'])) { if (@move_uploaded_file($this->request->files['image']['tmp_name'], $directory . '/' . $filename)) { $json['success'] = $this->language->get('text_uploaded'); } else { $json['error'] = $this->language->get('error_uploaded'); } } $this->response->setOutput(json_encode($json)); }
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.