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

niger

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

    1 094
  • З нами

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

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

  1. Я давно забив. Бо воно туди сюди літає. На сайті нічого в макетах не змінював, але воно само скаче. і там вже більше року точно. То треба, то не треба
  2. $this->load->model('catalog/category'); $this->load->model('catalog/product'); if (isset($this->request->get['product_id'])) { $product_id = (int)$this->request->get['product_id']; $categories = $this->model_catalog_product->getCategories($product_id); if ($categories) { $category_id = $categories[0]['category_id']; // берем першу категорію товара // Получаем товары из этой категории $filter_data = array( 'filter_category_id' => $category_id, 'start' => 0, 'limit' => 10 // Кількість товарів для виводу ); $products = $this->model_catalog_product->getProducts($filter_data); $data['related_products'] = array(); foreach ($products as $result) { if ($result['product_id'] != $product_id) { // Виключаємо наш товар $data['related_products'][] = array( 'product_id' => $result['product_id'], 'thumb' => $this->model_tool_image->resize($result['image'], 200, 200), 'name' => $result['name'], 'price' => $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax'))), 'href' => $this->url->link('product/product', 'product_id=' . $result['product_id']) ); } } } } <?php if (!empty($related_products)) { ?> <h3>Товари із цієй категорії</h3> <div class="row"> <?php foreach ($related_products as $product) { ?> <div class="product-layout col-lg-3 col-md-3 col-sm-6 col-xs-12"> <div class="product-thumb"> <div class="image"> <a href="<?php echo $product['href']; ?>"> <img src="<?php echo $product['thumb']; ?>" alt="<?php echo $product['name']; ?>" title="<?php echo $product['name']; ?>" class="img-responsive" /> </a> </div> <div class="caption"> <h4><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></h4> <p class="price"><?php echo $product['price']; ?></p> </div> </div> </div> <?php } ?> </div> <?php } ?> Якось так здається має бути Перше це в контролер продукту додати треба, друге у вьюшку
  3. Одне діло робити модуль за $13 який хоча б комусь треба окрім однієї людини, а для одного то хоча б 25 треба. Бо треба окрім запросу зробити controller та View, а там саме гидке буде - це не так, це посунь, це погано видно, ой, а зроби щоб якщо два товари, то щоб виводило хто купував обидва, за останній місяць, за три дні, а хто купував місяць тому, а цього місяця не купував. Доступи не ті дали, не то знайшли, недостатньо прав. А це все час.
  4. Зайшов у себе подивився - 90к пише серпстат. Але в мене немає навіть 70 категорії. СЕО ключ це те, по яким запросим вас взагалі ранжує пошукова система. Тобто у вас навіть на 1 товар може бути 10 а то і більше ключів. І це тільки для однієї мови. Типу такого Товар Товар доставка Товар ціна Товар вартість Товар купити Купити товар Купити товар в Києві Купити товар Львів Товар продаж і т.п Я відкрив у Search console Результати пошуку Там клацнув на сторінку товара і на нього веде 201 ключ. Інша сторінка товару 389 ключів - і це лише для однієї мови Ось як приклад частка маленька ключів для одного товару вид_товару товар цена товар купить товар цена за одиниця_виміру товар цена вид_товару товар купить товар товар купить днепр товар купить вид_товару товар вид_товару товар купить купить вид_товару товар в украине купить товар украина цена товара в украине товар купить украина цена вид_товару товар вид_товару товар цена за одиниця_виміру вид_товару товар фото цена вид_товару товар цена украина товар вид_товару купить товар одиниця_виміру цена товар вид_товару вид_товару товар фото товар купить киев товар вид_товару цена сколько стоит вид_товару товар вид_товару цена сколько стоит товар цена товара купить вид_товару вид_товару товар стоимость вид_товару товар цена за одиниця_виміру вид_товару цена украина вид_товару товар фото в упаковке купить товар в украине
  5. сам по собі він прилягти в один день не міг. Єдине що відразу кидається в очі - це помилка 504. Скоріш за все у вас або модуль, або тема, чи якесь рішення кублене - і воно ходить до власника модуля/теми із запитом, чи можете ви користуватися, і ось той сервер не може відповісти, а тому 504. Чи у вас є якийсь сервіс на сайті, який бере данні з іншого серверу, а той не відповідає - і тому 504 отримуєте ви. Шукайте у вихідних зʼєднаннях, хто і куди ходить.
  6. А звідки ви знаєте, без аналізу конкурента, що в нього 170к ключових слів?
  7. так легше зробити. А варіантів дуже багато.
  8. Можно кнопку "Заказать" переделать через языковые файлы и контроллер на "Посетить сайт" и вешать на нее разные линки на сайты. А можно ее убрать и эти ссылки указывать в опциях, и выводить вместо этой кнопки подменив в контроллере
  9. Сьогодні в 4 додали OCMOD Version Release Notes 4.1.0.0 ADDED OCMOD back!! French language Blog system UPDATED order editor. normalised the ordered editor system. FIXED Subscription system Please read release notes for full list https://github.com/opencart/opencart/releases/tag/4.1.0.0
  10. Ви самі відповіли на своє питання. При імпорту вибірковому все ок - тобто памʼяті вистачає, а при повному не вистачає. Звідси робиться простий та логічний висновок - або робити імпорт\експорт частковими партіями, або збільшувати ліміт памʼяті, який скоріш за все вже максимум для звичайного віртуального хостингу. Тож або переписуйте модуль, щоб він робив чанками імпорт\експорт, або самі розбивайте на 2,3,4....n частки файли, та імпортуйте частками.
  11. $data['minPrice'] = $data['maxPrice'] = 0; if ($this->ocfilter->api->isSelected()) { $this->load->model('extension/module/ocfilter'); $price_range = $this->model_extension_module_ocfilter->getPriceSliderRange($this->ocfilter->filter->getFilterModelData()); if (($price_range['min'] + $price_range['max']) > 0) { $data['minPrice'] = $price_range['min']; $data['maxPrice'] = $price_range['max']; } } else { $data['minPrice'] = $this->currency->format($this->model_catalog_category->getMinPrice($category_id), $this->session->data['currency'],'',false); $data['maxPrice'] = $this->currency->format($this->model_catalog_category->getMaxPrice($category_id), $this->session->data['currency'],'',false); } А це в контролері, якщо ми юзаємо фільтрацію ocfilter то беремо з нього. якщо без фільтрації, то беремо із отих методів в моделі що вище для них кинув запит у базу
  12. $sql = "SELECT MIN(p.price) AS minprice FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_to_category pc ON (p.product_id = pc.product_id) LEFT JOIN " . DB_PREFIX . "category_path cp ON (cp.category_id = pc.category_id) WHERE cp.path_id = '" . (int)$category_id . "' AND p.status = '1'"; $sql = "SELECT MIN(p.price) AS minprice FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_to_category pc ON (p.product_id = pc.product_id) WHERE pc.category_id = '" . (int)$category_id . "' AND p.status = '1'"; $sql = "SELECT MAX(p.price) AS maxprice FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_to_category pc ON (p.product_id = pc.product_id) LEFT JOIN " . DB_PREFIX . "category_path cp ON (cp.category_id = pc.category_id) WHERE cp.path_id = '" . (int)$category_id . "' AND p.status = '1'"; $sql = "SELECT MAX(p.price) AS maxprice FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_to_category pc ON (p.product_id = pc.product_id) WHERE pc.category_id = '" . (int)$category_id . "' AND p.status = '1'"; Це як приклад запит в базу в моделі із субкатегоріями, та без.
  13. гарно, навіть дуже, на словах це монобанк? хоча мені здається навіть в монобанку немає 15 000 професіоналів у ФінТеч в Україні Увесь скрін якщо хтось на сайті виправить
  14. Тобто ви вирішили що не записувати помилки може бути корисно? Замість того щоб вирішити причину, те що створює помилки які логуються, ви вирішили їх не записувати та не виправляти. Навряд чи таке вирішення проблем є корисним взагалі в будь-якій сфері діяльності.
  15. Як на мене не має бути розповсюдження модуля із посиланням у файлі. Людина купляє тут модуль і вважає що його промодерували тут модери і дозволили його розмістити, бо файли модуля перевірили, і тому ти завантажуєш тут всі необхідні файли, а так виходить - тобі дають посилання, а там через пару днів вже гівно яке ламає сайт, і ніхто не перевіряв, що там зараз знаходиться, лише під час допущення до розміщення, або хтось заволодів доменом і там підкинув вірусів.
  16. Ні, але це завжди буде питання вартості захисту, та скільки платять за парсинг чи за спам форми. Ці боти, які заповнюють форми, вимикаються за допомоги рекаптчі у більшості випадків. Також можна пару поведінок додати - форма не може відправитись без івенту її відкрити, клік по кнопці, ще сюди ж, форма не викликається першим заходом\запитом(як вище писали, повинна бути кука, або класти в localstorage), також форма не відправляється миттєво, а 10+ секунд людині треба якнайменше щоб її заповнити. Ну і ще можна додати динамічні назви полів, та пару "схованих", якщо хоча б одне із "схованих" відправляється - то теж в ліс.
  17. Цьому є докази, ви особисто обходили та використовували ці методи обходу, чи читали десь в інтернетах від скріпт-кіддіс, або може вам хтось про це розказав?
  18. Чи можна ось так зібрати ocmod, але треба перевірити <?xml version="1.0" encoding="utf-8"?> <modification> <name>Quantity Based Cart Discount</name> <code>quantity_based_cart_discount</code> <version>1.0</version> <author>niger</author> <link>https://www.example.com</link> <file path="catalog/model/checkout/cart.php"> <operation> <search position="after"><![CDATA[ $products = $this->getProducts(); ]]></search> <add><![CDATA[ $total_quantity = 0; foreach ($products as $product) { $total_quantity += $product['quantity']; } if ($total_quantity >= 4) { $discount_quantity_percentage = 0.30; } elseif ($total_quantity == 3) { $discount_quantity_percentage = 0.25; } elseif ($total_quantity == 2) { $discount_quantity_percentage = 0.15; } elseif ($total_quantity == 1) { $discount_quantity_percentage = 0.05; } else { $discount_quantity_percentage = 0; } if ($discount_percentage > 0) { $total = $total - ($total * $discount_quantity_percentage); $total_data[] = array( 'code' => 'quantity_discount', 'title' => 'Знижка за кількість товарів (' . ($discount_quantity_percentage * 100) . '%)', 'text' => '-' . $this->currency->format($this->tax->calculate($total * $discount_quantity_percentage, 0, $this->config->get('config_tax'))), 'value' => $total * $discount_quantity_percentage, 'sort_order' => 1 ); } ]]></add> </operation> </file> <file path="catalog/view/theme/*/template/checkout/cart.twig"> <operation> <search position="before"><![CDATA[ </tbody> ]]></search> <add><![CDATA[ {% if quantity_discount %} <tr> <td colspan="4" class="text-right"><strong>Знижка за кількість товарів</strong></td> <td class="text-right">-{{ quantity_discount }}</td> </tr> {% endif %} ]]></add> </operation> </file> <file path="catalog/view/theme/default/template/checkout/confirm.twig"> <operation> <search position="before"><![CDATA[ </tbody> ]]></search> <add><![CDATA[ {% if quantity_discount %} <tr> <td colspan="4" class="text-right"><strong>Знижка за кількість товарів</strong></td> <td class="text-right" style="color: red;">-{{ quantity_discount }}</td> </tr> {% endif %} ]]></add> </operation> </file> <file path="catalog/controller/checkout/cart.php"> <operation> <search position="after"><![CDATA[ $data['products'] = array(); ]]></search> <add><![CDATA[ $data['quantity_discount'] = ''; if (isset($total_data)) { foreach ($total_data as $total_line) { if ($total_line['code'] == 'quantity_discount') { $data['quantity_discount'] = $total_line['text']; } } } ]]></add> </operation> </file> <file path="catalog/controller/checkout/confirm.php"> <operation> <search position="after"><![CDATA[ $data['totals'] = array(); ]]></search> <add><![CDATA[ $data['quantity_discount'] = ''; if (isset($totals)) { foreach ($totals as $total_line) { if ($total_line['code'] == 'quantity_discount') { $data['quantity_discount'] = $total_line['text']; } } } ]]></add> </operation> </file> </modification>
  19. @Support ви би не могли десь виправити, і таке писати ВЕЛИКИМИ літерами, біля кнопки придбання. Бо ось тут пишуть Оновлення на рік, і доступ можна продовжити за 30 доларів. А автор пише, що через рік клієнт вже не зможе користуватися Тож це не покупка модуля, а оренда.
  20. куди саме перенос? що за перенос? ви просто атачите папку до проекту. та базу атачите (вона файлами зберігається в папці). Потім просто файли на сервак кинули, а базу здампили(експорт) в будь-якій IDE та залили на хостинг.
  21. ще можна Docker Desktop, але там не пару кнопок натиснути. треба бути трохи налаштувати. Але потім береш цю папочку(з проектом і базою) і конфіг від докеру і на будь якому ноуті(компі) запускаєш проект.
×
×
  • Створити...

Important Information

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