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

Sha

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

    990
  • З нами

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

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

  1. попробуйте function setConstraints(sgt, kladr_id) { sgt.setOptions({ constraints: { locations: [{ "city": "Город по которому нужна фильтрация" }] }, restrict_value: true }); }
  2. Здравствуйте! Спасибо за интерес к нашим модулям! FAQ: пример настройки с модулем simple. FAQ: Если не знаете какие настройки выбрать. другие примеры. Офф.документация от dadata Один и Два. Полностью бесплатно исходный код модуля! Если не подходит такой вариант, то модуль с индивидуальной настройкой и адаптацией и возможностью скачивать новые версии в течение года стоит 1500р. (сейчас по скидке 990р.) и 750р. (сейчас по скидке 499р.) включительно. Для тех кто не очень располагает средствами и/или хочет сэкономить есть возможность купить модуль только с годовой подпиской на обновления за 750р. (сейчас по скидке 499р.).
  3. @Dm85438 Здравствуйте! 1) Да, конечно, тестовый домен входит в лицензию. 2) должен работать, если нет постараемся адаптировать. 3) модуль учитывает такие "соседние" поля.
  4. // Ваш api ключ из лк дадаты https://dadata.ru/#registration_popup var token = ""; // Для блока адресс function checkAddress($city, $address, $postcode, $region) { // Если инпут города нету выходим if (!$city.length) return; var type = 'ADDRESS'; $city.suggestions({ token: token, type: type, bounds: "city-settlement", geoLocation: false, onSelect: enforceCity, onSelectNothing: enforceCity, formatSelected: formatCitySelected }); $address.suggestions({ token: token, type: type, onSelect: restrictAddressValue, formatSelected: formatSelected }); // Если на поле адрес есть перезагрузка поля var p = $postcode.val() || ""; var a = $address.val() || ""; $city.on("suggestions-fixdata", function(e, suggestion) { $address.val(a); $postcode.val(p) } ); $city.suggestions().fixData(); function setConstraints(sgt, kladr_id) { var restrict_value = false; var locations = null; if (kladr_id) { locations = { kladr_id: kladr_id }; restrict_value = true; } sgt.setOptions({ constraints: { locations: locations }, restrict_value: restrict_value }); } function enforceCity(suggestion, changed) { if (changed) $(this) .val( $(this) .val() .trim() ); var sgt = $address.suggestions(); sgt.clear(); if (suggestion) { setConstraints(sgt, suggestion.data.kladr_id); formatRegion(suggestion.data); } else { setConstraints(sgt, null); } } function formatCitySelected(suggestion) { var address = suggestion.data; if (address.city_with_type === address.region_with_type) { return address.settlement || address.city || ""; } else { return join([ address.city, address.settlement ]); } } function formatRegion(address) { $postcode.val(address.postal_code || ''); if ($region.length) { var result = address.region.replace(/\s{0,1}[-\/].+/gi, '').toLowerCase(); $region.find('option').each(function (i, o) { if ($(o).text().toLowerCase().search(result) >= 0) $(this).attr('selected', true); else $(this).attr('selected', false); }); } } function restrictAddressValue(suggestion) { var citySgt = $city.suggestions(); var addressSgt = $address.suggestions(); if (!citySgt.currentValue) { citySgt.setSuggestion(suggestion); var city_kladr_id = suggestion.data.kladr_id.substr(0, 13); setConstraints(addressSgt, city_kladr_id); } } function formatSelected(suggestion) { var addressValue = makeAddressString(suggestion.data); return addressValue; } function makeAddressString(address) { formatRegion(address); return join([ address.street_with_type, join([address.house_type, address.house, address.block_type, address.block ], " "), join([address.flat_type, address.flat], " ") ]); } function join(arr /*, separator */ ) { var separator = arguments.length > 1 ? arguments[1] : ", "; return arr.filter(function (n) { return n }).join(separator); } } // Для блока адресс берем в переменные нужные инпуты var $city = $('input[name*="city"]'); var $address = $('input[name*="address_1"]'); var $postcode = $('input[name*="postcode"]'); var $zoneId = $('select[name*="zone_id"]'); // Для блока адресс вызов checkAddress($city, $address, $postcode, $zoneId); // Для блока имени, фамилия function initName($surname, $name) { // Если инпута фамилия или имя нету, выходим if (!$surname.length || !$name.length) return; var self = {}; self.$surname = $surname; self.$name = $name; var fioParts = ["SURNAME", "NAME"]; $.each([$surname, $name], function (index, $el) { var sgt = $el.suggestions({ token: token, type: "NAME", triggerSelectOnSpace: false, hint: "", noCache: true, params: { // каждому полю --- соответствующая подсказка parts: [fioParts[index]] } }); }); }; // Для блока имени, фамилия вызов var $surname = $('input[name*="lastname"]'); var $name = $('input[name*="firstname"]'); initName($surname, $name); // Для блока email с проверкой есть ли данный инпут var $email = $('input[name*="e-mail"]'); if ($email.length) { $email.suggestions({ token: token, type: "EMAIL", }); }
  5. // Ваш api ключ из лк дадаты https://dadata.ru/#registration_popup var token = ""; // Для блока адресс function checkAddress($city, $address, $postcode, $region) { // Если инпут города нету выходим if (!$city.length) return; var type = 'ADDRESS'; $city.suggestions({ token: token, type: type, bounds: "city-settlement", geoLocation: false, onSelect: enforceCity, onSelectNothing: enforceCity, formatSelected: formatCitySelected, beforeRender: inputChanged }); $address.suggestions({ token: token, type: type, onSelect: restrictAddressValue, formatSelected: formatSelected, beforeRender: inputChanged }); // Если на поле адрес есть перезагрузка поля var p = $postcode.val() || ""; var a = $address.val() || ""; var cityChanged = 0; console.log(0) function inputChanged() { cityChanged = 1 console.log(1) } $city.on("suggestions-fixdata", function(e, suggestion) { //console.log(suggestion); $address.val(a); $postcode.val(p) } ); $city.suggestions().fixData(); function setConstraints(sgt, kladr_id) { var restrict_value = false; var locations = null; if (kladr_id) { locations = { kladr_id: kladr_id }; restrict_value = true; } sgt.setOptions({ constraints: { locations: locations }, restrict_value: restrict_value }); } function enforceCity(suggestion, changed) { console.log('changed ' + changed); if (changed) $(this) .val( $(this) .val() .trim() ); var sgt = $address.suggestions(); sgt.clear(); if (suggestion) { setConstraints(sgt, suggestion.data.kladr_id); formatRegion(suggestion.data); } else { setConstraints(sgt, null); } if (cityChanged) reloadAll() } function formatCitySelected(suggestion) { var address = suggestion.data; if (address.city_with_type === address.region_with_type) { return address.settlement || address.city || ""; } else { return join([ address.city, address.settlement ]); } } function formatRegion(address) { $postcode.val(address.postal_code || ''); if ($region.length) { var result = address.region.replace(/\s{0,1}[-\/].+/gi, '').toLowerCase(); $region.find('option').each(function (i, o) { if ($(o).text().toLowerCase().search(result) >= 0) $(this).attr('selected', true); else $(this).attr('selected', false); }); } } function restrictAddressValue(suggestion) { console.log('restrict address value'); var citySgt = $city.suggestions(); var addressSgt = $address.suggestions(); if (!citySgt.currentValue) { citySgt.setSuggestion(suggestion); var city_kladr_id = suggestion.data.kladr_id.substr(0, 13); setConstraints(addressSgt, city_kladr_id); } if (cityChanged) reloadAll() } function formatSelected(suggestion) { var addressValue = makeAddressString(suggestion.data); return addressValue; } function makeAddressString(address) { formatRegion(address); return join([ address.street_with_type, join([address.house_type, address.house, address.block_type, address.block ], " "), join([address.flat_type, address.flat], " ") ]); } function join(arr /*, separator */ ) { var separator = arguments.length > 1 ? arguments[1] : ", "; return arr.filter(function (n) { return n }).join(separator); } } // Для блока адресс берем в переменные нужные инпуты var $city = $('input[name*="city"]'); var $address = $('input[name*="address_1"]'); var $postcode = $('input[name*="postcode"]'); var $zoneId = $('select[name*="zone_id"]'); // Для блока адресс вызов checkAddress($city, $address, $postcode, $zoneId); // Для блока имени, фамилия function initName($surname, $name) { // Если инпута фамилия или имя нету, выходим if (!$surname.length || !$name.length) return; var self = {}; self.$surname = $surname; self.$name = $name; var fioParts = ["SURNAME", "NAME"]; $.each([$surname, $name], function (index, $el) { var sgt = $el.suggestions({ token: token, type: "NAME", triggerSelectOnSpace: false, hint: "", noCache: true, params: { // каждому полю --- соответствующая подсказка parts: [fioParts[index]] } }); }); }; // Для блока имени, фамилия вызов var $surname = $('input[name*="lastname"]'); var $name = $('input[name*="firstname"]'); initName($surname, $name); // Для блока email с проверкой есть ли данный инпут var $email = $('input[name*="e-mail"]'); if ($email.length) { $email.suggestions({ token: token, type: "EMAIL", }); }
  6. Проверьте права в Система -> Пользователи -> Группы пользователей. или напишите в личку мы Вам поможем с установкой и настройкой в рамках техподдержки.
  7. попробуйте delete/install в админке, у вас просто не создалась таблица БД во время установки.
  8. это и есть модуль, его устанавливать. в архиве data_layout_type.zip находятся дополнительные файлы, которые нужны не всем, в частности адаптация под hyper position и файл readme. то-есть 1) устанавливаете ocmod файл (sha_layout_type-(1.2.3)_(oc3.0).ocmod.zip) всё. и только если у Вас установлен hyper position и Вы хотите их подружить то 2) дополнительно устанавливаете ocmod файл (sha_layout_type_for_hyper_position-(1.2.3)_(oc3.0).ocmod.zip)
  9. вам на витрине нужно отсортировать? тогда это делается в схемах.
  10. https://opencartforum.com/files/file/8735-extension-manager-menedzher-rasshireniy/
  11. на UniShop жалоб вроде не было. но зависит от того использует ли шаблон модульную систему согласно архитектуре опенкарт или автор шаблона/сайта ни чего не слышал об CMS для которой шаблон выпустил.
  12. // Ваш api ключ из лк дадаты https://dadata.ru/#registration_popup var token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; function join(arr /*, separator */) { var separator = arguments.length > 1 ? arguments[1] : ", "; return arr.filter(function(n){return n}).join(separator); } function showPostalCode(address) { $("#shipping_address_postcode").val(address.postal_code); } function showRegion(address) { $region = $("#shipping_address_zone_id"); if ($region.length && typeof(address.region) !== 'undefined' && address.region) { var result = address.region.replace(/\s{0,1}[-\/].+/gi, '').toLowerCase(); $region.find('option').each(function (i, o) { if ($(o) .text() .toLowerCase() .search(result) >= 0 ) $(this).attr('selected', true); else $(this).attr('selected', false); }); }; } function showCity(address) { $("#shipping_address_city").val(join([ join([address.city_type, address.city], " "), join([address.settlement_type, address.settlement], " ") ])); } function showAddress(address) { insert = ''; if (typeof(address.settlement) !== 'undefined' && address.settlement) insert += join([address.settlement_type, address.settlement], " ") insert += join([ join([address.street_type, address.street], " "), join([address.house_type, address.house], " ") ]) if (parseInt(address.block) > 0) insert += join([address.block_type, address.block], " "); if (parseInt(address.flat) > 0) insert += join([address.flat_type, address.flat], " "); $("#shipping_address_address_1").val(insert); } // function showStreet(address) { // $("#shipping_address_street").val( // join([address.street_type, address.street], " ") // ); // } // function showHouse(address) { // $("#house").val(join([ // join([address.house_type, address.house], " "), // join([address.block_type, address.block], " ") // ])); // } // function showFlat(address) { // $("#flat").val( // join([address.flat_type, address.flat], " ") // ); // } var cityChanged = 0; function inputChanged(a,b,c) { cityChanged = 1 } function showSelected(suggestion) { var address = suggestion.data; showPostalCode(address); showRegion(address); showCity(address); showAddress(address); // showStreet(address); // showHouse(address); // showFlat(address); if (cityChanged) reloadAll() } $("#shipping_address_address_2").suggestions({ token: token, type: "ADDRESS", onSelect: showSelected, beforeRender: inputChanged });
  13. https://opencartforum.com/files/file/5345-mobilnaja-versija-opencart-uskorenie-layout-type похоже это то, что Вам нужно) при создании преследовалась подобная логика, как Вы описали, плюс загружается только один баннер/слайдшоу в зависимости от клиента, что уменьшает нагрузку.
  14. ещё бы с Украинского на Русский и обратно)
  15. Выпущена новая версия 4.3.0 в которой: 1) Добавлен новый функционал позволяющий удобно подключать любые собственные js скрипты глобально всему сайту. В некоторых случаях, покупатели интересовались такой возможностью, например, для вывода подсказок во всплывающих окнах. а так-же 2) Доработано - работа в поддоменах (подпапках). при некоторых условиях, модуль мог не срабатывать в поддомнах, данный случай рассмотрен и модуль доработан. 3) дополнительно произведены косметические правки, отключение подсказки и исправление текста в подсказке. а так-же исправлено. (платная версия)
  16. Значит указанный модуль обходит функционал OpenCart, нужно адаптировать. Ещё возможно в настройках фильтра есть встроенный функционал работы с мобильными устройствами который "перекрывает" настройки layout type.
  17. 2.1 более не поддерживается.
  18. Sha

    Анекдоты

    покажите весь код, пожалуйста!

×
×
  • Створити...

Important Information

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