Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

nogocuHoBuk

Users
  • Posts

    356
  • Joined

  • Last visited

Everything posted by nogocuHoBuk

  1. Ну я всё-равно задачи так и не понял. Если Вы спрашиваете реально ли, то ответ - конечно реально. Это ж чиcтый PHP. Легко ли? не очень, так как в опенкарте нет функции добавления значения. На примере той же функции editProduct($product_id, $data) Для успешного редактирования товара в массиве $data нужно передать ВСЕ значения, опции, скидки, картинки и так далее. В общем всё. По логике должна существовать функция editProductEx($product_id, $data) в которой в массиве $data можно передать только одно значение, например $data['product_description'][1]['name'] = "Новый товар"; Т.е. в этой функции по логике сначала должно идти получение товара через getProduct, а затем замена единственного поля, переданного в $data и сохранение товара. В битриксе, например, именно так и реализовано. В опенкарте такой возможности нет. Если Вам нужно исправить только опции товара то создайте функцию editProductOptions. где первоначально можно получить опции продукта посредством $this->getProductOptions($product_id), затем внести в них изменения, а потом заново записать. Причем саму процедуру записи опций можно скопировать прям из оригинального editProduct (с Вашими правками, естественно): Вешаете функцию на крон и вперде. Либо прям в импорте вызываете вновь созданную функцию после каждого товара....
  2. Ну внешне скрипт полностью рабочий. Вас интересует почему не работает именно у Вас? Как минимум "оберните" его в DOMContentLoaded document.addEventListener("DOMContentLoaded", function(event) { document.addEventListener('mouseover', event => { if(event.target.classList.contains('dropdown')) { event.target.classList.add('dropdown-active') } }); document.addEventListener('mouseout', event => { if(event.target.classList.contains('dropdown')) { setTimeout(() => event.target.classList.remove('dropdown-active'), 3000) } }); }); ну или в $(document).ready() Ну и могу предположить что дело может быть в "этом": Не факт, но мало ли...
  3. Зависит от того каким образом реализовано "значения полей sku, upc и тд., копируются в соответствующие атрибуты" Размышления: Ну или короткий ответ:
  4. возможные причины: 1. Модификаторы нужно обновлять 2. Вставили не в \template\product\product.twig не текущего шаблона, а, например, дефолтного.
  5. Видимо давненько "перешли", что гугл уже успел Вас проиндексировать с этой ошибкой: И там проблема не только на главной: https://librytool.com.ua/tverdosplavnye-plastiny/smennye-plastiny-dlya-tocheniya/plastina-smennaya-tverdosplavnaya-tpgh080202l-umc10 В первую очередь отключите показ ошибок на сайте: Система->Настройки->Кнопка Редактировать. Во вкладке "Сервер" пункт "Показывать ошибки" переключите в "нет": Показ нотисов и варнингов на рабочем сайте не нужен никому. А по решению - нужно видеть код и поставить проверку на null. Предупреждение как раз и говорит о том, что вы пытаетесь получить доступ к массиву по ключу, а переменная даже не массив, она null. Без кода сложно посоветовать что-то конкретное.
  6. Вот он, разный подход к решению. Я, как облысевший пэхэпэ бекендер часто забываю о возможностях решить большинство проблем на фронте посредством js(jquery). Если возникает проблема, пытаюсь решить на беке. И в моём случае я бы действительно в контроллере добавил и класс и грохнул стайл А Ваш скрипт возьму на вооружение. Полезно. Вроде смотрю - ну всё ж логично, почему самому это в голову не пришло
  7. Ну изменений на сайте пока не видно О. Теперь вижу. Отлично
  8. Можно, конечно, в БД залезть и сделать замену в таблице oc_product_description... Но есть подозрение, что сами Вы этого не сделаете. А вот вставить в кастомные стили вот такой код сможете: .img-responsive{height: auto !important;} Подобное решение (следует заметить) будет игнорировать высоту для всех изображений, у которых class="img-responsive", т.е. даже принудительно указать высоту для изображений не получится. Это важно понимать. Т.е. если Вам в каком-то месте нужно будет задать изображение с заданной высотой придется в стилях элемента тоже добавлять !important;
  9. Просто изначально Вы писали - что нужно вывести на любой странице Вот я и прочитал, что Вам для каких-то целей нужен в хедере массив enhanced_conversion_data в котором будет постоянно храниться информация о текущем пользователе. В success.php чтобы что-то передать гуглу нужно снова получать данные по номеру заказа (он хранится в сессии) Я бы сделал так: в confirm.php перед созданием заказа (перед этой строчкой): $this->session->data['order_id'] = $this->model_checkout_order->addOrder($order_data); добавил бы в сессию мыло и телефон заказчика: $this->session->data['user_info_json'] = json_encode(array('email'=>$order_data['email'],'phone_number'=>$order_data['telephone'])); А уже в success.php в контроллере эти данные обработал, передал в twig, очистил сессию и в твиге візвал нужный Вам скрипт...
  10. Вы лучше расскажите зачем Вам это нужно? Ну т.е. изначальная задача какая? Ибо у пользователя может и не быть заказов, а может быть несколько оформленных на разных получателей, потому привязываться к $order не совсем корректно.
  11. если отправляете текст ($mail->setText) то работать и не будут, если ж html ($mail->setHtml) то нужно удалить strip_tags т.е. либо: $msg_4_mail = "Имя отправителя : ".$this->request->post['name']." <br />Email отправителя : ".$this->request->post['email']. " <br />Запрос :".$this->request->post['enquiry']; $mail->setHtml(html_entity_decode($msg_4_mail, ENT_QUOTES, 'UTF-8')); либо текст: $msg_4_mail = "Имя отправителя : ".$this->request->post['name']." Email отправителя : ".$this->request->post['email']. " Запрос :".$this->request->post['enquiry']; $mail->setText(strip_tags(html_entity_decode($msg_4_mail, ENT_QUOTES, 'UTF-8'))); Как правильно заметил @spectre - strip_tags удаляет из строки все html теги
  12. либо <br> убрать @JohnnyFloyd Ну и, опять же, я добавил в код $this->request->post['name'] для примера. У Вас это может быть $this->request->post['fio'] или вообще $this->request->post['sender_name'] Тут уж Вам виднее...
  13. вместо: $mail->setText(strip_tags(html_entity_decode($this->request->post['enquiry'], ENT_QUOTES, 'UTF-8'))); пишем это: $msg_4_mail = "Имя отправителя : ".$this->request->post['name']."<br>Email отправителя : ".$this->request->post['email']. "<br>Запрос :".$this->request->post['enquiry']; $mail->setText(strip_tags(html_entity_decode($msg_4_mail, ENT_QUOTES, 'UTF-8')));
  14. решение: CSS. Добавить с свои стили следующее: .vertical_menu.show { width: 100% !important; position: absolute; } Просто монетизировать подобную задачу бесполезно. 30 секунд делов.
  15. так а где вы берете эту ссылку? она не корректная. common/home - роут главной страницы на фронте. в админке же роут по-умолчанию common/dashboard, но вводить его не обязательно. для входа в админку просто переходите по ссылке: https://kugoo-electronics.ru/admin/
  16. По факту да. Ведь деньги взяты ТОЛЬКО за то, что было реализовано. Сумма не имеет значения. Нене. Не нужно всех под одну гребенку. За других не отвечаю, процитирую только себя: Не всё так однозначно, как утверждаете Вы. Но правды мы всё-равно не узнаем. Топикстартер не появится в этой теме скорее всего (как и исполнитель)
  17. Нет. Никто не видел, но продолжают утверждать что :) Странная тема. Надо тикать, пока не "началось"
  18. Я в 2008 работал монтажником, подключал "эти ваши интернеты". После очередного подключения прилетает жалоба с описанием: "У меня после Вашего подключения в компьютере звук пропал. Со старым всё нормально было, а теперь звука нет". А сколько подобных ситуаций с ремонтом ПК. Приносят железку с фразой "греется и тупит, нужно почистить" - включаешь, а там винда загружается 5 минут. Проверяешь хард, а SMART говорит, что харду вчера пора было на свалку. Уведомляешь заказчика, а он с наездом - "10 лет всё работало и никаких проблем. Принёс Вам почистить от пыли и тут же хард навернулся? Совпадение?" В такие моменты руки опускаются. Справедливости ради есть и отличные заказчики (как и исполнители, говорю как заказчик), но есть "такоооое", что ну его в пень...
  19. Да где ж Вы видите наезды на заказчика? У меня первая жена так реагировала: - Привет, а что мы сегодня ужинаем? - ЧО ТЫ НА МЕНЯ ОРЁШЬ??? НЕ УСПЕЛА Я!!! Тот факт, что заказчику не нравятся ответы, не значит, что не него кто-то наезжает. В теме неоднократно мелькало - если не работает то, что должно работать из коробки - это вина исполнителя и только его. Вне зависимости от ТЗ. А ТЗ просят для конкретизации. Ведь толком так ничего и не понятно по сей момент. Что делалось, ка было реализовано на старом сайте, как стало на новом. Ведь, согласитесь, исполнитель накосячил и исполнитель не устранил - это 2 абсолютно разные проблемы.
  20. Я чуть выше написал - всё зависит от первых минут общения. Если заказчик с подхода говорит - вот сайт, посмотри, оцени, накидай и будем решать в какой последовательности делать - подход один. Но если обращаются с конкретной задачей и с ограниченным бюджетом, то какой смысл на взлёте накручивать?
  21. Так это не я передергиваю, а Вы. Это именно Вы привели пример из разряда сюра с шиномонтажем, который колеса заменил но качать не стал. Ко мне то какие претензии? Я лишь развил мысль.
  22. Согласен. У меня тоже пример: Вы хозяин шиномонтажа. К Вам часто приезжают велосипедисты и автомобилисты просто проверить давление и подкачать колёса (в течение лета) и Вы решили, что будет нормальным установить на эту опцию в тарифной сетке стоимость - 10 рублей за колесо. И тут сезон, осень, к Вам приезжает заказчик и просит поменять резину. Вы, конечно, и поменяли и подкачали. Ну всё по уму, как Вы любите, а заказчик Вам: - Постойте, а зачем Вы качали? У меня свой компрессор. Что там у Вас в тарифной сетке по подкачке? 10 за колесо. Верните 40 рублей... Именно для этого ПЕРЕД началом выполненных работ нужно составить и утвердить обеими сторонами ТЗ. Ибо как заказчики, так и исполнители есть разные. Именно. @Golubenko, поймите, всё (многое) зависит от первых 10-ти минут общения. Если заказчику нужен функционал, ты озвучиваешь стоимость, а тебе с подходу сбивают цену фразой "а давайте скинем, а то мне бюджет не позволяет", то какой смысл предлагать решать дополнительные "задачи"? И да, я смогу дать заказчику рекомендации ПОСЛЕ выполненного ТЗ. Когда работа выполнена, сроки не сорваны, качество соответсвует, все довольны я напишу - "я понимаю, что бюджет не резиновый, но вот тут у вас проблема 1 - цена вопроса 20 долларов, вот тут проблема 2 - цена вопроса 10 долларов, а вот эта огромная проблема 3 может быть решена за 100 долларов. Так что если что - обращайтесь"... На на взлёте задирать ценник не всегда правильно
  23. Вы специально подменяете понятия или так само получается? Есть унитаз, его назначение - принимать продукты жизнедеятельности организма и избавляться от них Это его задача. Если Вы установили унитаз так, что он не справляется со своей задачей - виноват исполнитель, а не заказчик, и устраняется это за счет исполнителя. Я выше уже писал - для того, чтобы окончательно встать на сторону @Zauresh нужно, как минимум, увидеть ТЗ, которое было оговорено. И да, если на сайте не работает функционал, который должен работать - это вина исполнителя. Однозначно. Тут даже обсуждать нечего. Но если не реализованы фантазии заказчика - это заказчика, и только его половые трудности. И ещё раз да, если из на фронте имеются тексты, категории, адреса, которые невозможно исправить из админки, и такой возможности не было до обновления - вины исполнителя, опять же, нет. Да, считается правилом дурного тона встраивать текст напрямую в код (с правкой через FTP), но всё зависит уже от личного отношения заказчика к исполнителю и наоборот. В принципе исполнитель мог бы и исправить, добавить возможность правки из админки для удобства, но не обязан, особенно на фоне назревающего конфликта. Тут много ещё "а если б". Хотите правды - пригласите в этот тред исполнителя, послушайте его аргументы. Велика вероятность, что его тут заклюют..... Я Вам третью историю расскажу. Исходные данные те же - унитаз куплен, вызывают Вас на установку. Пришли Вы на замер уборной, посмотрели, померяли и говорите заказчику - нужно не боковое подключение, а нижнее, и не прямой выпуск, а косой, ну и объясняете почему. Акей, договорились, заказчик меняет унитаз и просит Вас приехать ещё раз, Вы приезжаете на установку, а не месте унитаза стоит стиральная машина.... И теперь купленный унитаз сюда не станет, нужно брать вообще другой, а лучше уборную расширить или стиралку переставить... Объясняете это всё заказчику и тут на Вас обрушивается шквал: "СКОЛЬКО МОЖНО ГОЛОВУ МОРОЧИТЬ!!! СКОЛЬКО УНИТАЗОВ ВАМ НАДО? ВЫ СПЕЦИАЛИСТ, СХОДИТЕ И КУПИТЕ!!!" Поймите, исполнитель не умеет читать мысли. Невозможно наперед предугадать "развитие сюжета". Даже если ВСЕ обсудить - в итоге часто бывают недопонимания. Именно для этих случаев придумано ТЗ. Всё что в нём есть - будет выполнено. Не выполнено - санкции. Выполнено - деньги на бочку. Есть дополнительные пожелания, которые выплыли в процессе (установка унитаза после установки на его место стиралки) - за дополнительную оплату после составления очередного ТЗ... ЗЫ. Сорян за много текста, но хотелось высказаться
×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.