Дмитрий2312
-
Публикации
17 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные пользователем Дмитрий2312
-
-
Спасибо, я понял вашу позицию.
И всё же вопрос для меня актуален.
Понятно, что \u символы получаются после кодировки массива в json, при декодировке они обратно конвертируются в кириллицу.
Нашёл следующий код, который преобразует \u символы в кириллицу:
function jsonRemoveUnicodeSequences($struct) { return preg_replace("/\\\\u([a-f0-9]{4})/e", "iconv('UCS-4LE','UTF-8',pack('V', hexdec('U$1')))", json_encode($struct)); }
однако там перед каждым символом добавляются обратные слэши
кто подскажет где косяк?
-
понятно почему, потому что кириллицей не передать
а с местом лучше экономить и запросы быстрее в базе будут обрабатываться и т.д. и т.п.
неужели никто не заморачивается с такими вещами?
-
метод POST из представления контроллеру шлёт русский язык в таком формате:
{"txt_symheight":"\u0412\u044b\u0441\u043e\u0442\u0430 \u0441\u0438\u043c\u0432\u043e\u043b\u0430, \u043c\u043c","inp_symheight":"60","txt_fieldswidth":"\u0428\u0438\u0440\u0438\u043d\u0430 \u043f\u043e\u043b\u0435\u0439, \u043c\u043c","inp_fieldswidth":"120","txt_material":"\u041c\u0430\u0442\u0435\u0440\u0438\u0430\u043b","sel_material":{"selected":"PET0.75","PET0.3":"\u041f\u042d\u0422 0.3 \u043c\u043c","PET0.5":"\u041f\u042d\u0422 0.5 \u043c\u043c","PET0.75":"\u041f\u042d\u0422 0.75 \u043c\u043c","PET1":"\u041f\u042d\u0422 1 \u043c\u043c"},"const_proportions":"12","const_count":"3","const_lenght":"4"}
как конвертнуть его в такой вид:
{"txt_symheight": "Высота символа, мм", "inp_symheight": 50, "txt_fieldswidth": "Ширина полей, мм", "inp_fieldswidth": 20, "txt_material": "Материал", "sel_material": { "selected": "PET0.3", "PET0.3": "ПЭТ 0.3 мм", "PET0.5": "ПЭТ 0.5 мм", "PET0.75": "ПЭТ 0.75 мм", "PET1": "ПЭТ 1 мм" } }
не хочу в базе много места занимать, всё-равно всё в UTF-8
-
-
Дополнения Turbo нет совсем, даже не устанавливал его.
Сейчас опять заработали все запросы - ничего не менял.
Мистика какая-то.
-
10 минут назад, markimax сказал:
Обновляются поля из фронта ?
Извиняюсь за тупость. Что это значит "из фронта"?
11 минуту назад, markimax сказал:Если включен Turbo - то понятное дело обновляться они не будут, так как код их выполняться не будет
А где включается Turbo?
-
Дык чего там оптимизировать - в базе всего 7 тестовых записей.
Просто вопрос: база барахлит или движок Opencart?
Куда копать-то?
-
Всем привет. Прошу помощи у знатоков.
Насколько я знаю у opencart pro есть кэширование запросов в базу.
Похоже я напоролся с этим кэшированием на геморрой.
У меня то читаются и пишутся поля в базу, то перестают это делать, непонятно почему.
$calcjson=json_encode($data['calcparams']); $this->db->query("UPDATE " . DB_PREFIX . "product SET calculator='" . $this->db->escape($data['selected-calculator']) . "' WHERE product_id = '" . (int)$product_id . "'");// это поле пишется и читается номрально $this->db->query("UPDATE " . DB_PREFIX . "product SET parametres='" . $this->db->escape($calcjson) . " WHERE product_id = '" . (int)$product_id . "'");// это поле сейчас не пишется и не читается, вчера и сегодня утром читалось без проблем
Кто-нибудь сталкивался с такой проблемой?
-
Товар не кривой. У меня одна опция в товаре - textarea. Расчёт стоимости Продукта идёт по своему алгоритму - т.н. калькулятор. В textarea пихаются технические данные - ширина, высота, материал и т.п. в виде json строки, далее я могу все эти параметры вытряхнуть и расшифровать, поэтому и белиберда такая.
Везде, где фигурируют данные о купленных/выбранных товарах (cart, checkout, confirm и т.д.) я уже вклеил код и оно нормально там отображается, только проблемы с табами в админке, нашёл контроллер и представления, всё там поменял, но ничего в результате не изменилось, видимо там jquery рулит и обновляет данные на странице, буду ещё копать...
-
Здравствуйте, уважаемые форумчане. Который час бьюсь - ничего не получается.
Во вложении таб из админки.
Не могу понять откуда тянутся данные о товаре.
перелопатил файл контроллера "admin/controller/sale/order.php"
нашёл все $option['value'] кучу раз подменял значения а информация выводится одна и та же
также лопатил 'admin/view/template/sale/order_form.tpl' здесь ещё интересней во время загрузки идут данные из шаблона, а как только всё прогрузится страница обновляется и тянутся новые данные не пойму откуда.
Помогите, пожалуйста.
P.S. Задача состоит в том, чтобы белиберду из $option['value'] расшифровать и выдать в нормальном читаемом виде.
-
Спасибо за помощь!
-
Всем привет!
Подскажите, пожалуйста, где рыть обработчик событий при нажатии на кнопку "обновить" рядом с количеством в корзине.
Версия 2.1.0.1.10
буду признателен за помощь.
-
Весело, 40 просмотров и ни одного ответа.
Короче, пока ждал - сам написал. Тема закрыта.
-
Opencart 2.0
1. в папке catalog/controller/calc будут создаваться файлы с именами: "calc0001.php", "calc0002.php" и т.п. внутри я сам реализую логику расчёта цен
2. в папке catalog/view/theme/default/template/calc будут создаваться файлы: "calc0001.tpl" и т.д. одноимённые с теми что в контроллере
3. в карточке товара в админке будет опция textarea "calculator", куда будет вписываться "calc0001", "calc0002" и т.д.
задумка такая:
как только движок видит textarea с именем calculator, то в карточку товара прилепляется .tpl из пункта 2. в этом шаблоне будут все необходимые поля для заполнения (инпуты, списки, радио и пр.), сам textarea тоже будет в карточке товара, только display:none.
все изменения каких либо полей на карточке товара должны приводить в действие логику в файлах из пункта 1. и пересчитывать цену на товар и изменять текст внутри
textarea"calculator" по следующим правилам:
допустим у нас 2 поля ввода: "ширина":200 и "высота":200, в textarea записывается: "ширина:200; высота:200"
после нажатия на кнопку "купить" считается окончательная стоимость и в корзину летит информация с рассчитанной ценой и значением textarea.
Реализовать это нужно в виде .xml
Сколько будет стоить работа и сроки.
Кодировка русского языка при POST передаче
в Общие вопросы
Опубликовано:
Всё проблему решил.
Если кому-нибудь надо вот рабочий код: