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

Bross

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

    65
  • З нами

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

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

  1. У кого возникали проблемы с недобросовестными GET-запросами на сайт? Периодически механизм поиска используют как средство для повышения нагрузки на сайт. Что поможет снизить такие проблемы, кроме как тупое закрытие доступа через htaccess? В какой-то момент хостер просто скажет "давай до свидания!"
  2. Здравствуйте. Версия движка 1.5.3.1 На сайте организован формализованный поиск - имитация подбора по заданным параметрам. В названии товара есть все необходимые атрибуты - размеры. Но дело в том, что некоторые товары, у которых в названии нет поисковой фразы, попадают в выдачу поиска по артикулу. Артикул на карточке товара - таково требование. Вопрос: как мне сделать так, что бы поиск искал только по названию, а не по содержимому?
  3. Чот появилась эта ошибка на карточке товара, если урл корявый. Если просто забить в строку белиберду, то директит на стандартную картовскую страницу ошибки 404. А тут белый экран.
  4. Благодарю. Только не перезаписывает поля с наличием. Выходит, даже тот ахтунг, что у меня был, раньше работал и менял наличие. А сейчас, как и Ваш код - он не обновляет наличие. Видимо, причина тут в другом. ((( На счет полей уверен.
  5. Слегка подправил. while(($data = fgetcsv($handle, 0, ';', '"')) !== FALSE) { $num = count($data); $bad = 'не правильно!'; $sku_db = $this->allowed_fields['sku']; $quan = (int)preg_replace("/\D/","", $data[8]); $sku = (int)preg_replace("/\D/","", $data[3]); for($c = 0; $c < $num; $c++) { if(isset($headers[$c])) { //если файл есть, то if($sku == $sku_db) { $this->db->query("UPDATE " . DB_PREFIX . "product SET quantity = ". $quan . "WHERE sku =" . $sku); $k++; //var_dump ($data); } } } } По выполнению - белый экран ((Если закоментить запрос к базе, то выводит дату.
  6. На сколько я понимаю, массив из таблицы product)) public $allowed_fields = array('model', 'sku', 'upc', 'location', 'quantity', 'stock_status_id', 'image', 'manufacturer_id', 'shipping', 'price', 'points', 'tax_class_id', 'date_available', 'weight', 'weight_class_id', 'length', 'width', 'height', 'length_class_id', 'subtract', 'minimum', 'sort_order', 'status', 'date_added', 'date_modified', 'viewed');
  7. Потому что оригинального кода больше. Почему нельзя сравнить $sku и $this->allowed_fields->sku ?
  8. Воспользовался Вашим советом. Однако, не приносит нужных результатов. Тут тоже мусор? public function import83() { if($this->request->server['REQUEST_METHOD'] == 'POST' && $this->validate()) { if(is_uploaded_file($this->request->files['import83']['tmp_name'])) { if(($handle = fopen($this->request->files['import83']['tmp_name'], "r")) !== FALSE) { $headers = fgetcsv($handle, 0, ';', '"'); $k = 0; //счетчик позиций while(($data = fgetcsv($handle, 0, ';', '"')) !== FALSE) { $num = count($data); $bad = 'не правильно!'; $quan = (int)preg_replace("/\D/","", $data[8]); $sku = (int)preg_replace("/\D/","", $data[3]); for($c = 0; $c < $num; $c++) { if(isset($headers[$c])) { //если файл есть, то if($sku == $this->allowed_fields->sku) { var_dump ($data); } else { var_dump ($bad); exit;} } } } } $this->db->query("UPDATE " . DB_PREFIX . "product SET quantity = ". $quan . "WHERE sku =" . $sku); $k++; fclose($handle); $this->session->data['success'] = sprintf($this->language->get('Обновлено %s позиций'), $k); $this->cache->delete('product'); } } $this->redirect($this->url->link('module/csvimport', 'token=' . $this->session->data['token'], 'SSL')); }
  9. Большое спасибо. Теперь я все понял и пошел делать как надо.
  10. Ну, как сказать))) Мне так проще было. Скажите, просто - что ты тут и тут не прав. А риторические вопросы мне проблему не решат (((
  11. Читабельному какому? Если бы я знал какой читабельный, он был бы читабелен. Так? for ($i=1; $data = fgetcsv($handle, 0, ';', '"'); $i++){ $sql = "select sku, quantity from product"; $res = mysql_query($sql); $quan = (int)preg_replace("/\D/","", $data[8]); $sku = (int)preg_replace("/\D/","", $data[3]); while ($row = mysql_fetch_array($res)){ if ($sku == $row['sku']){ if ($quan != $row['quantity']) { $sql = mysql_query("UPDATE". DB_PREFIX . "product SET quantity = ". $quan . "WHERE sku =" . $sku); $k++; } else {echo 'что-то пошло не так!';} } } } Раньше относительно успешно обновлялись. Сейчас работает только счетчик.
  12. Благодарю за модуль. Но мне нужно ОБНОВЛЯТЬ наличие по артикулам из других файлов - прайс-листов поставщика.
  13. Они не выдержали) Так мне и нужны одни цифры, встречаются пробелы в артикуле. Эм, работает только счетчик и показывает сколько нашлось совпадений артикулов.
  14. Добрый день. Стоит задача обновлять наличие по определенным столбцам в CSV-файле - 3 столбец это артикул, 8 - наличие. Попытался решить её таким образом: public function import83() { if($this->request->server['REQUEST_METHOD'] == 'POST' && $this->validate()) { if(is_uploaded_file($this->request->files['import83']['tmp_name'])) { if(($handle = fopen($this->request->files['import83']['tmp_name'], "r")) !== FALSE) { $headers = fgetcsv($handle, 0, ';', '"'); $k = 0; //счетчик позиций while(($data = fgetcsv($handle, 0, ';', '"')) !== FALSE) { for ($i=1; $data = fgetcsv($handle, 0, ';', '"'); $i++) { $sql = "select sku, quantity from product"; $res = mysql_query($sql); while ($row = mysql_fetch_array($res)){ if ($data[3]==$row['sku']){ $quan = (int)preg_replace("/\D/","", $data[8]); $sku = (int)preg_replace("/\D/","", $data[3]); if ($data[8] != $row['quantity']) { $sql = mysql_query("UPDATE". DB_PREFIX . "product SET quantity = ". $quan . "WHERE sku =" . $sku); $k++; } else {echo 'что-то пошло не так!';} } } } } fclose($handle); $this->session->data['success'] = sprintf($this->language->get('Обновлено %s позиций'), $k); $this->cache->delete('product'); } } $this->redirect($this->url->link('module/csvimport', 'token=' . $this->session->data['token'], 'SSL')); } } Но позиции обновляются как-то выборочно.
  15. Так вроде разобрался, на этапе оформления до подтверждения заказ sku еще существует, но при подтверждении не записывается базу (создан столбец sku в order_product - так что есть куда записать). Что не так то?! foreach ($data['products'] as $product) { $this->db->query("INSERT INTO " . DB_PREFIX . "order_product SET order_id = '" . (int)$order_id . "', product_id = '" . (int)$product['product_id'] . "', sku = '" . $product['sku'] . "', name = '" . $this->db->escape($product['name']) . "', model = '" . $this->db->escape($product['model']) . "', quantity = '" . (int)$product['quantity'] . "', price = '" . (float)$product['price'] . "', total = '" . (float)$product['total'] . "', tax = '" . (float)$product['tax'] . "', reward = '" . (int)$product['reward'] . "'");
  16. Столкнулся с этой же проблемой. Я понял так, что данные в order (совокупность таблиц в бд) берутся из checkout(оформление), а туда уже из cart (корзины). Но вот проблема, нифига не понял как подсовывать артикул в корзину. Пошел дальше, а конкретнее к функции getProduct (или все же getProducts?)в ModelCatalogProduct. Попробовал в строке № 14 catalog/model/catalog/product, где идет запрос к базе дописать в запрос SELECT sku FROM " . DB_PREFIX . "product... Ну и результата нет. Подскажите куда копать?
  17. благодарю. на 2 вопрос ответ такой: $this->data['categories_1_1'][] = array( 'category_id' => $category_1_1['category_id'], 'name' => $category_1_1['name'], 'children' => $level_2_data );
  18. Версия ocstore 1.5.3.1 Стоит задача вывода отдельных категорий в поиске. На сайте есть некоторое подобие подбора товаров, категорий товаров несколько и хотелось бы вывести для каждого формализованного поиска свою категорию товаров. В контроллере на 168 строке файла /catalog/contoller/product/search.php находится перебор массива категорий по предкам-потомкам. $categories_1 = $this->model_catalog_category->getCategories(0); foreach ($categories_1 as $category_1) { $level_2_data = array(); $categories_2 = $this->model_catalog_category->getCategories($category_1['category_id']); foreach ($categories_2 as $category_2) { $level_3_data = array(); $categories_3 = $this->model_catalog_category->getCategories($category_2['category_id']); foreach ($categories_3 as $category_3) { $level_3_data[] = array( 'category_id' => $category_3['category_id'], 'name' => $category_3['name'], ); } $level_2_data[] = array( 'category_id' => $category_2['category_id'], 'name' => $category_2['name'], 'children' => $level_3_data ); } $this->data['categories'][] = array( 'category_id' => $category_1['category_id'], 'name' => $category_1['name'], 'children' => $level_2_data ); } Обращаем внимание на $categories_1 В стандартном шаблоне поиска есть вывод этих категорий в форме. <?php foreach ($categories as $category_1) { ?> <?php if ($category_1['category_id'] == $filter_category_id) { ?> <option value="<?php echo $category_1['category_id']; ?>" selected="selected"><?php echo $category_1['name']; ?></option> <?php } else { ?> <option value="<?php echo $category_1['category_id']; ?>"><?php echo $category_1['name']; ?></option> <?php } ?> <?php foreach ($category_1['children'] as $category_2) { ?> <?php if ($category_2['category_id'] == $filter_category_id) { ?> <option value="<?php echo $category_2['category_id']; ?>" selected="selected"> <?php echo $category_2['name']; ?></option> <?php } else { ?> <option value="<?php echo $category_2['category_id']; ?>"> <?php echo $category_2['name']; ?></option> <?php } ?> <?php foreach ($category_2['children'] as $category_3) { ?> <?php if ($category_3['category_id'] == $filter_category_id) { ?> <option value="<?php echo $category_3['category_id']; ?>" selected="selected"> <?php echo $category_3['name']; ?></option> <?php } else { ?> <option value="<?php echo $category_3['category_id']; ?>"> <?php echo $category_3['name']; ?></option> <?php } ?> <?php } ?> <?php } ?> <?php } ?> Вопрос 1: почему в контроллере $categories_1, а в шаблоне $categories? Вопрос 2: как связать в контроллере $categories_1_1 с шаблоном?
  19. Всё разобрался. Если новичкам пригодится: Ссылка в файле admin/controller/common/header.php $this->data['zone'] = $this->url->link('localisation/zone', 'token=' . $this->session->data['token'], 'SSL'); Вместо 'zone' - название модуля, 'localisation/zone' - путь к модулю. Текст ссылки в файле admin/language/russian/common/header.php $_['text_zone'] = 'Зона'; Вместо 'zone' - название модуля. Сама ссылка в файле шаблона admin/template/common/header.tpl <li id="нужный модуль"><a class="top" href="<?php echo $нужный модуль;?>"><?php echo $text_нужный модуль; ?></a></li>
  20. Здравствуйте. Есть у меня ImportCSV, который находится в Дополнения - Модули. Как мне поместить ссылку на этот модуль в административной панели?

×
×
  • Створити...

Important Information

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