-
Публікації
355 -
З нами
-
Відвідування
Тип публікації
Профілі
Форум
Маркетплейс
Статті
FAQ
Наші новини
Магазин
Блоги
module__dplus_manager
Повідомлення, опубліковані користувачем mario512
-
-
Добрый день. Магазин мобильных аксессуаров CaseRoom. https://caseroom.in.ua/
Пилил сам, для себя. В данный момент набивается товаром. Версия движка OcStore 2.3.0.2. Шаблон Rapid.
Модули:
Всплывающая Корзина с кнопкой "Купить"
Opencart - Быстрый заказ («Buy one click»)
Жду замечания! Спасибо за отзывы!
- 1
-
Добрый день. Как быстро удалить опции у select. Опций около 1000.
$(this).find('option').remove();
Этот вариант занимает прилично времени.
-
@spectre Спасибо! Завтра буду ковырять!
-
Добрый день. Текст "Условия соглашения" выходит за пределы модального окна при ширине экрана свыше 768 пикселей. Уже запарился искать причину. Ссыль на сайт
Буду признателен за пинок в нужном направлении.
-
23 минуты назад, RENAT_B сказал:
Я так понимаю, синхронизация с 1С не самая сильная сторона opencart?
Нет, желающих взяться за такую работу?
- 1
-
-
-
Добрый день. Подскажите как прижать к нижней части блок divstock, который находится внутри блока caption. Если задать родительскому блоку свойство position: relative, а дочернему position: absolute; bottom: 0px; блоки divstock и rating меняются местами. Как можно эти два блока сместить вниз относительно родительского?
По умолчанию.
После правки:
сайт Сайт
-
-
1 час назад, mpn2005 сказал:
При такой реализации будет больше вреда, чем пользы.
Так вообще не стоит делать по куче причин.
Чем это грозит?
-
Закинул указанный файл в каталог system/library/db/mysqli_cached.php
<?php namespace DB; final class MySQLi_Cached { private $link; private $cache; private $cachedquery; public function __construct($hostname, $username, $password, $database, $port = '3306') { $this->cache = new Cache(DB_CACHED_EXPIRE); $this->link = new \mysqli($hostname, $username, $password, $database, $port); if ($this->link->connect_error) { trigger_error('Error: Could not make a database link (' . $this->link->connect_errno . ') ' . $this->link->connect_error); exit(); } $this->link->set_charset("utf8"); $this->link->query("SET SQL_MODE = ''"); $this->link->query("SET NAMES 'utf-8"); $this->link->query("SET CHARACTER_SET_CONNECTION=utf8"); } public function query($sql) { // Only SELECT query // COMMENTS HERE // COMMENTS HERE // COMMENTS HERE $isselect = 0; $md5query = ''; $pos = stripos($sql, 'select '); if ($pos == 0) { $isselect = 1; $md5query = md5($sql); if ($query = $this->cache->get('sql_' . $md5query)) { if ($query->sql == $sql) { if ($resetflag = $this->cache->get('sql_globalresetcache')) { if ($resetflag <= $query->time) { $this->cachedquery = $query; return($query); } else { $this->cachedquery = $query; return($query); } } } } $resource = $this->link->query($sql); if ($resource) { if (is_resource($resource)) { $i = 0; $data = array(); while ($result = $query->fetch_accoc($resource)) { $data[$i] = $result; $i++; } } } } $query = $this->link->query($sql); if (!$this->link->errno) { if ($query instanceof \mysqli_result) { $data = array(); while ($row = $query->fetch_assoc()) { $data[] = $row; } $result = new \stdClass(); $result->num_rows = $query->num_rows; $result->row = isset($data[0]) ? $data[0] : array(); $result->rows = $data; $query->close(); return $result; } else { return true; } } else { trigger_error('Error: ' . $this->link->error . '<br />Error No: ' . $this->link->errno . '<br />' . $sql); } } public function escape($value) { return $this->link->real_escape_string($value); } public function countAffected() { if(isset($this->cachedquery) && $this->cachedquery) { return $this->cachedquery->num_rows; } else { return $this->link->affected_rows; } } public function getLastId() { return $this->link->insert_id; } public function __destruct() { $this->link->close(); } }
Заменил в конфиге
define('DB_DRIVER', 'mysqli');
на
define('DB_DRIVER', 'mysqli_cached');
И получил ошибку 500. Что не так?
-
А кеширование запросов стоит подключать? Наткнулся на https://github.com/iMateo/oc2-mysqli-cached Но насколько я понял, что данный метод не работает на 2,3
-
-
У хостера данные штуки поддерживаются. Memcached и Opcache работают в не зависимости от cms? А Jet Cashe нужно активировать в OpenCart? У меня OsStore 2.3.02, где то видел на форуме инструкцию как его активировать без модулей. Не могу ее найти.
-
@Wayfar Кеш чистили? Попробуйте отключить SeoPro. Заказы без него заработают?
-
Ок. Спасибо!
-
8 минут назад, drnemo сказал:
Разобрался сам, забыл включить обработку .htaccess на apache
Сам столкнулся с подобной проблемой. Отключил SeoPro. Что именно вы проделали для решения этой задачи?
-
Всем здоровья!
Несколько лет был клиентом ukraine.com.ua. Рассматриваю вариант переезда. Основная причина - запрет на исходящие UDP соединения с сервера. Кроме магазина на субдоменах крутятся несколько веб приложений и скриптов облегчающих работу розницы, которые активно допиливаю.
-
На всякий случай мой вариант решения данной задачи.
Я формирую список фотографий для выгрузки в командный файл для встроенного FTP клиента Windows и передаю ему этот список команд.
Процедура для 1с V7:
СпойлерПроцедура ВыгрузитьФото() Если ВыгФото = 1 Тогда ЗаписатьФото(); Если стФото.РазмерСписка() > 0 тогда ТекстВыгрузки = СоздатьОбъект("Текст"); ТекстВыгрузки.ДобавитьСтроку("open " + ФтпСервер); ТекстВыгрузки.ДобавитьСтроку(ФтпЛогин); ТекстВыгрузки.ДобавитьСтроку(ФтпПароль); ТекстВыгрузки.ДобавитьСтроку("cd "+ФтпКаталог+Прав(ФтпКаталогФото,СтрДлина(ФтпКаталогФото)-1)); ТекстВыгрузки.ДобавитьСтроку("mkdir "+СокрЛП(АйДи)); ТекстВыгрузки.ДобавитьСтроку("cd "+ФтпКаталог+Прав(ФтпКаталогФото,СтрДлина(ФтпКаталогФото)-1)+СокрЛП(АйДи)); //логин ТекстВыгрузки.ДобавитьСтроку("type binary"); Для Ном = 1 По стФото.РазмерСписка() Цикл ТекстВыгрузки.ДобавитьСтроку("put "+ СтрЗаменить(стФото.ПолучитьЗначение(Ном),"(главное фото)","")); КонецЦикла; ТекстВыгрузки.ДобавитьСтроку("bye"); ТекстВыгрузки.Записать(КаталогПользователя() + "ftp.txt"); ТекстВыгрузки = ""; КомандаСистемы("ftp -s:" + КаталогПользователя() + "Ftp.txt>> " + (КаталогПользователя() + "report.txt")); ФС.УдалитьФайл(КаталогПользователя() + "ftp.txt"); ТекстВыгрузки = СоздатьОбъект("Текст"); ТекстВыгрузки.Открыть(КаталогПользователя() + "report.txt"); КС = ТекстВыгрузки.КоличествоСтрок()-4; Попытка строкаКомплете = ТекстВыгрузки.ПолучитьСтроку(КС); Если Найти(Нрег(строкаКомплете),"226 transfer complete") = 0 Тогда а=1; а=а/0; КонецЕсли; ТекстВыгрузки = ""; ФС.УдалитьФайл(КаталогПользователя() + "report.txt"); Есть = 1; Исключение тПротокол = ТекущееВремя()+" ПРОИЗОШЛА ОШИБКА ВО ВРЕМЯ ЗАГРУЗКИ СФОРМИРОВАННОГО ФАЙЛА НА СЕРВЕР ИНЕТРНЕТ-МАГАЗИНА"+РазделительСтрок+тПротокол; ТекстВыгрузки.Показать(); ТекстВыгрузки = ""; КонецПопытки; Если Есть = 1 тогда post=Соединение.Execute("UPDATE oc_product SET `image`="""+ПутьКФото(СокрЛП(ГлавноеФотоТовара))+""" WHERE `product_id`="+СокрЛП(АйДи)); Ном = 0; НомСтрок = 0; post=Соединение.Execute("DELETE FROM `oc_product_image` WHERE `oc_product_image`.`product_id` ="+СокрЛП(АйДи)); ПослФотоАйди=Соединение.Execute("SELECT MAX(`product_image_id`) AS `product_image_id` FROM oc_product_image"); ФотоАйди = Число(ПослФотоАйди.Fields.Item("product_image_id").value); Для Ном = 1 По стФото.РазмерСписка() Цикл НомСтрок = НомСтрок + 1; Если Найти(стФото.ПолучитьЗначение(НомСтрок),"(главное фото)") = 0 тогда ФотоАйди = ФотоАйди+1; post=Соединение.Execute("REPLACE INTO `oc_product_image`(`product_image_id`, `product_id`, `image`, `sort_order`) VALUES ("+ФотоАйди+","+СокрЛП(АйДи)+","""+ПутьКФото(СтрЗаменить(стФото.ПолучитьЗначение(НомСтрок),"(главное фото)"," "))+""","+Ном+")"); КонецЕсли; КонецЦикла; КонецЕсли; иначе post=Соединение.Execute("SELECT `image` FROM `oc_product_image` WHERE `product_id` ="+СокрЛП(АйДи)); ТекстВыгрузки = СоздатьОбъект("Текст"); ТекстВыгрузки.ДобавитьСтроку("open " + ФтпСервер); ТекстВыгрузки.ДобавитьСтроку(ФтпЛогин); ТекстВыгрузки.ДобавитьСтроку(ФтпПароль); ТекстВыгрузки.ДобавитьСтроку("delete "+ФтпКаталог+СокрЛП(ПутьКФото(ГлавноеФотоТовара))); Пока post.Eof()=0 Цикл ТекстВыгрузки.ДобавитьСтроку("delete "+ФтпКаталог+СокрЛП(post.Fields.Item("image").value)); post.MoveNext(); КонецЦикла; ТекстВыгрузки.ДобавитьСтроку("rmdir "+ФтпКаталог+Прав(ФтпКаталогФото,СтрДлина(ФтпКаталогФото)-1)+СокрЛП(АйДи)); ТекстВыгрузки.ДобавитьСтроку("bye"); ТекстВыгрузки.Записать(КаталогПользователя() + "ftp.txt"); ТекстВыгрузки = ""; КомандаСистемы("ftp -s:" + КаталогПользователя() + "Ftp.txt>> " + (КаталогПользователя() + "report.txt")); ФС.УдалитьФайл(КаталогПользователя() + "ftp.txt"); post=Соединение.Execute("DELETE FROM `oc_product_image` WHERE `oc_product_image`.`product_id` ="+СокрЛП(АйДи)); post=Соединение.Execute("UPDATE oc_product SET `image`="""" WHERE `product_id`="+СокрЛП(АйДи)); ГлавноеФотоТовара = " "; КонецЕсли; иначе ЗаписатьФото(); Если стФото.РазмерСписка() > 0 тогда Ном = 0; post=Соединение.Execute("DELETE FROM `oc_product_image` WHERE `oc_product_image`.`product_id` ="+СокрЛП(АйДи)); Для ы = 1 по стФото.РазмерСписка() Цикл Если ы = 1 тогда post=Соединение.Execute("UPDATE oc_product SET `image`="""+СокрЛП(стФото.ПолучитьЗначение(ы))+""" WHERE `product_id`="+СокрЛП(АйДи)); КонецЕсли; Если ы >= 2 тогда Ном = Ном + 1; ПослФотоАйди=Соединение.Execute("SELECT MAX(`product_image_id`) AS `product_image_id` FROM oc_product_image"); ФотоАйди = Число(ПослФотоАйди.Fields.Item("product_image_id").value); ФотоАйди = ФотоАйди+1; post=Соединение.Execute("REPLACE INTO `oc_product_image`(`product_image_id`, `product_id`, `image`, `sort_order`) VALUES ("+ФотоАйди+","+СокрЛП(АйДи)+","""+стФото.ПолучитьЗначение(ы)+""","+Ном+")"); КонецЕсли КонецЦикла; КонецЕсли; КонецЕсли; КонецПроцедуры
-
Вопрос необходимо адресовать разработчику модуля для интеграции 1с. OpenCart тут не виноват)
-
Так проблема в 1С или OpenCart? Каким образом происходит интеграция с сайтом? Фото выгружаются с использованием FTP?
-
А кто знает как лог этот отключить?
-
какая 1с? можно внешнюю обработку запилить.
-
Вопрос закрыт. Решение:
function getCookie(name) { var value = "; " + document.cookie; var parts = value.split("; " + name + "="); if (parts.length == 2) return parts.pop().split(";").shift(); }
Модуль WayForPay
в Opencart 2.x: Пісочниця
Опубліковано:
Тестирую данный сервис оплаты. Возник вопрос. После не успешной оплаты происходит редирект со страницы оплаты обратно на страницу checkout, но товары удаляются и выбрасывает из админки сайта. Модуль удаляет сессии?