Перейти к содержанию

Izrajk

Новичок
  • Публикаций

    14
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о Izrajk

  • Звание
    Пользователь

Посетители профиля

Блок последних пользователей отключён и не показывается другим пользователям.

  1. Добрые люди, помогите, чем можете В карточке товара рядом с названием у меня есть кнопка "Подобрать аналог" <h1 itemprop="name"> <?php echo $heading_title;?> <?php foreach ($catprod as $catp) { ?> <a href="<?php if(end($catprod)===$catp) { foreach ($attribute_groups as $attribute_group) { foreach ($attribute_group['attribute'] as $attribute) { if (in_array($attribute['attribute_id'], array(1949))) { echo $catp['href1']; } elseif (in_array($attribute['attribute_id'], array(1948))) { echo $catp['href2']; } elseif (in_array($attribute['attribute_id'], array(1950))) { echo $catp['href4']; } elseif (in_array($attribute['attribute_id'], array(1949,1948))) { echo $catp['href3']; } elseif ((in_array($attribute['attribute_id'], array(1949))) && (in_array($attribute['attribute_id'], array(1948))) && (in_array($attribute['attribute_id'], array(1950)))) { echo $catp['href5']; } } } } ?>" target="_blank" <?php if(end($catprod)===$catp) { ?> class="btn btn-danger" style="margin-left: 10px; margin-bottom: 5px;" <?php } ?>><?php if(end($catprod)===$catp) { echo $catp['name']; } } ?></a></h1> <?php //echo $catp['href']; ?> Вкратце, у меня есть перебор хлебных крошек $catprod и есть перебор атрибутов. По хлебным крошкам мне нужно брать только последнюю категорию куда входит товар, я отрезаю все остальных элементы вот таким условием, последнюю категорию я записываю в $catp['href'] - if(end($catprod)===$catp) Дальше, я в этом условии перебираю все атрибуты, мне нужно выделить 3 ключевых атрибута 1948,1949,1950 И в зависимости от атрибута через кнопку я должен переходить на сформированные уже ссылки. Если в товаре только 1948 атрибут, то одна ссылка href1, если 1948 и 1949 то уже другая href2 и т.д. Конкретно, то что сейчас написано работает, только с одиночными атрибутами, а если атрибутов нет, то я у меня переходит на главную страницу, т.к я не могу придумать условия, когда атрибутов, которые мне нужны нету, ну и с двойными атрибутами то у меня в адресной строке появляются две ссылки href1href2, эту задачу можно решить по разному, но всё тут будет крутить между хлебными крошками и атрибутами, как мне отловить условие, когда нету 1948,1949,1950 атрибутов? Так не работает !(in_array($attribute['attribute_id'], array(1949,1950,1948))) И так тоже !((in_array($attribute['attribute_id'], array(1949)))&&(in_array($attribute['attribute_id'], array(1948)))&&(in_array($attribute['attribute_id'], array(1950))))
  2. Izrajk

    Filter button

    Не знаю насколько правильно, я реализовал, но думаю, должно получиться, что-то вроде этого $date['attrr'] = array(); $attribute_groups = $this->model_catalog_product->getProductAttributes($product_id); foreach ($attribute_groups as $attrr) { $attribute_info = $this->model_catalog_category->getProductAttributes($attrr['attribute_id']); if ($attribute_info) { $data['attrr'][] = array( 'name' => 'name', 'href' => $this->url->link('product/attribute', 'path=' . $attribute_info['attribute_id']) ); } }
  3. Izrajk

    Filter button

    Добрый день, У меня на сайте есть кнопка рядом с названием, она переходить в последнюю категорию товара из хлебных крошек, я хочу улучшить её, а вот как не понимаю, я хочу добавить условие, если в товаре есть атрибут "Доставка" то после нажатия будет выводиться категория, где все товары с этими атрибутами, без разницы с какой сортировкой. Т.е, к примеру, атрибут "Доставка" имеет id 453. Мне нужно как то получить this->date['attribute'] get (product_id) и после как-то сравнивать с id_атрибутом и в зависимости от результата менять href. Может кто помочь, вроде не сложно, но в голове крутятся все эти фильтры, и не понятно как формировать href, мне в model'е нужно что-то менять?
  4. Izrajk

    Fastorder Module

    Добрый день, У меня вопрос по всему известному модулю "Быстрый заказ". Настала необходимость, сделать такой же модуль по функционалу, но с другой формой отправки и только для карточки товара. Конкретно "Быстрый заказ" от https://github.com/WhiskeyMan-Tau/fastorder.ocmod Закопипастил все файлы и переименовал, дописал в controller/product/product.php $data['feedback'] = $this->load->controller('product/feedback', ['price'=>$data['price'],'product_name'=>$data['heading_title'], 'product_id'=>$data['product_id']]); И добавил в footer.tpl <script> function showForm1(data){ $.ajax({ url: 'index.php?route=product/feedback/getForm', type: 'post', data: {product_name: data['product_name'], price: data['price'] ,product_id: data['product_id']}, beforeSend: function() { }, complete: function() { }, success: function(result) { $('#feedback-form-container'+data['product_id']).html(result); }, error: function(xhr, ajaxOptions, thrownError) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); } }); }; </script> Вот, что у меня в итоге получилось Если присмотреться, но у меня форма раздвоилась (видно на скриншоте небольшой выступ с правой стороны). После того как я кликаю по этому выступу появляется моя форма. В карточке товара есть кнопка "Быстрый заказ" и кнопка "Нашли дешевле". При нажатии на кнопку, что я добавил ("Нашли дешевле") появляются раздвоенная форма, а при нажатии на "Быстрый заказ", ничего не происходит. Я думаю проблема с js, думаю я вызываю какой нибудь один и тот же метод, который я забыл поменять. Кто-то, сможешь объяснить, где я мог накосяччить?
  5. Izrajk

    [Поддержка] Y.CMS от Яндекс.Кассы

    А зачем мою тему закинули в мертвое обсуждение? если мне конкретно нужна помощь по typeprefix
  6. Izrajk

    [Поддержка] Y.CMS от Яндекс.Кассы

    Добрый день, В рекомендациях яндекс.маркет сказано, добавить поле TypePrefix в yml выгрузку, но не совсем понятно как это сделать, да и в интернете смог найти только таких же людей с такой же проблемой. Как сделать, чтобы в поле TypePrefix отображалась (последняя) категория товара, который входит в неё? Catalog/contoller/feed/yamarket.php Тут я попытался, что-то вывести и сразу же понял, что не знаю как получить (последнюю) категорию входящего в неё товара. В итоге у меня получилось, что в TypePrefix всегда "Автоматизация систем мониторинга". TypePrefix объявляется в цикле foreach product даже не понятно, откуда взялось именно такое значение у TypePrefix, такая категория не отмечена, чтобы она выгружалась в yml. Помогите определить последнюю категорию. Заранее Спасибо.
  7. Warning: expects parameter 2 to be long, string given in 132
  8. Закомментировал, ничего не изменилось.
  9. Добрый день, Внезапно модуль Y.CMS от Яндекс.Кассы перестал формировать yml выгрузку товаров. Модуль версии 1.5.0 ругался на catalog/controller/feed/yamarket.php if (!$this->makeOfferCombination($data, $product, $shop_currency, $offers_currency, $decimal_place, $yamarket)) { $data['price'] = number_format($this->currency->convert($this->tax->calculate($data['price'], $product['tax_class_id'], $this->config->get('config_tax')), $shop_currency, $offers_currency), $decimal_place, '.', ''); if ($data['price'] > 0) $yamarket->add_offer($data['id'], $data, $data['available']); } Ругался он конкретно на строку $data['price'] = number_format($this->currency->convert($this->tax->calculate($data['price'], $product['tax_class_id'], $this->config->get('config_tax')), $shop_currency, $offers_currency), $decimal_place, '.', ''); Ну писал, что то вроде, expects parameter 2 to be long, string given in номер строки указанной выше. Пытался выводить второй параметр, var_dump($decimal_place) выводило 0. Поставил новый модуль актуально версии. Сейчас даже ошибку не выдаёт пишет ошибку 500 со стороны сервера. Открепил все выделенные категории и стал включать их постепенно, некоторые категории с товарами выгружает, а остальные при выборке перестает формировать выгрузку товаров и пишет ошибку 500. Может кто помочь с этой проблемой?
  10. Добрый день, Имеется модуль Y.CMS от Яндекс.Кассы, нужно отдельно добавить в выгрузку xml производителя с ценами меньше 20000, при том, что все товары меньше 20к имеют quantity=0, а если они 0, то они не добавляются в xml catalog/controller/feed/yamarket.php elseif ($this->config->get('ya_market_set_available') == 3) { $available = true; if (($product['quantity'] == 0) || (($product['manufacturer_id'] == 12 && $product['price'] > 20000) || ($product['manufacturer_id'] == 30 && $product['price'] > 20000))) continue; } Такая запись работала, если у товара quantity был не 0. Не понимаю, что сделать, чтобы к примеру товар с quantity=0, manufacturer_id= 12, price=12045, выгрузился в xml Есть у кого идеи?
  11. Здравствуйте. Моя цель, сделать сортировку по совпадению с словом, которое находится в поиске. \catalog\model\catalog\product.php В методе getProducts(), я поменял строку $sql .= " " . implode(" AND ", $implode) . ""; На $sql .= " " . implode(" OR ", $implode) . ""; и так же поменял в методе getTotalProducts(). Сделано это для того, чтобы поиск у меня искал результаты отдельно по словам и именно поэтому мне и нужна эта сортировка. Так же понял, чтобы поменять стандартную сортировку нужно идти в \catalog\controller\product\category.php Как мне правильно применить функцию similar_text() ,которая вычисляет степень похожести двух строк, в сортировку по названию товара? Т.е если я сейчас ввожу samsung 420 он отдельно ищет в словах samsung и 420 и дальше выдаёт свою сортировку по дефолту, а мне нужно чтобы на первом месте было samsung 420vw и т.д. Думаю понятно объяснил ) Есть какие-нибудь варианты решения данной задачи? Заранее спасибо.
  12. Здравствуйте. Я ввожу в поиск на сайт ешп , если поиск ничего не находит то меняет ешп на tig и снова ищет только выдаёт уже результаты по значению tig Напишите, как бы вы реализовали данную задачу функция по замене символов уже есть. Заранее спасибо.
  13. У меня подобная задача, только я бы хотел её сам реализовать. Если кто-то сталкивался с таким отпишите. Заранее спасибо.
×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.