COVID2019 и это вот все. Друзья, вся эта история начинает плохо пахнет. Мойте руки, не ходите в люди. Отложите все плановые покупки и положите в носок заначку. Заприте ваших родителей, бабушек-дедушек на даче. Лучше перебдеть чем недобдеть. Берегите себя!

BuslikDrev

Соучастники
  • Публикации

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

  • Посещение

  • Days Won

    133

Сообщения, опубликованные пользователем BuslikDrev

  1. Что перенести? Подкатегорию? Просто подкатегорию в связях удаляете в категории которая выше этой подкатегории, и устанавливаете подкатегорию в связях нужной вам категории и чистите кэш.

  2. 13 часа назад, pikitos сказал:

    На версии 3.0.3.6 проблема с модификаторами, на ней не встанет.

    Случаем не изучали, кто-нибудь фиксил?

     

    Мне кажется это вручную нужно сделать: https://github.com/opencart/opencart/commit/f47490a4a50a84e204a89ce840ca39924b124abd#diff-db393cbd21293779df8604619fb45c16d1db89664a7e8f26d1a41259b1425c3c
    https://github.com/opencart/opencart/blob/3.0.x.x_Maintenance/upload/system/modification.xml

  3. 1 час назад, Егор2016 сказал:

    На PHP - 7.1.33 (alt)  почему-то у меня не работает(((

    Версия OPENCART.PRO 2.3.0.2.5, ioncube  включен

    turbo cache  только с php 5.4-5.6, а всё остальное должно работать на 7.1

  4. 27/ аналог ajax на чистом javascript для браузеров от IE 7+

    Отправка post запроса:

    Скрытый текст
    
    
    	function ajax(url, setting) {
    		if (typeof setting['metod'] === 'undefined') {
    			setting['metod'] = 'GET';
    		}
    		if (typeof setting['responseType'] === 'undefined') {
    			setting['responseType'] = 'json';
    		}
    		if (typeof setting['dataType'] === 'undefined') {
    			setting['dataType'] = 'text';
    		}
    		if (typeof setting['data'] === 'undefined') {
    			setting['data'] = '';
    		}
    		if (typeof setting['async'] === 'undefined') {
    			setting['async'] = true;
    		}
    		if (typeof setting['user'] === 'undefined') {
    			setting['user'] = null;
    		}
    		if (typeof setting['password'] === 'undefined') {
    			setting['password'] = null;
    		}
    		if (typeof setting['success'] === 'undefined') {
    			setting['success'] = function(json) {};
    		}
    		if (typeof setting['error'] === 'undefined') {
    			setting['error'] = function(error) {};
    		}
    		var datanew;
    		if (setting['data']) {
    			if (setting['dataType'] == 'json') {
    				datanew = JSON.stringify(setting['data']);
    			} else {
    				if (typeof FormData !== 'undefined') {
    					datanew = new FormData();
    					if (typeof setting['data'] == 'object') {
    						for (var i in setting['data']) {
    							if (typeof setting['data'][i] == 'object') {
    								for (var i2 in setting['data'][i]) {
    									datanew.append(i + '[' + i2 + ']', setting['data'][i][i2]);
    								}
    							} else {
    								datanew.append(i, setting['data'][i]);
    							}
    						}
    					} else {
    						datanew = setting['data'];
    					}
    				} else {
    					datanew = [];
    					if (typeof setting['data'] == 'object') {
    						for (var i in setting['data']) {
    							if (typeof setting['data'][i] == 'object') {
    								for (var i2 in setting['data'][i]) {
    									datanew.push(encodeURIComponent(i) + '[' + encodeURIComponent(i2) + ']=' + encodeURIComponent(setting['data'][i][i2]));
    								}
    							} else {
    								datanew.push(encodeURIComponent(i) + '=' + encodeURIComponent(setting['data'][i]));
    							}
    						}
    					} else {
    						datanew = setting['data'];
    					}
    
    					datanew = datanew.join('&').replace(/%20/g, '+');
    				}
    			}
    		}
    
    		var xhr = new XMLHttpRequest();
    		xhr.open(setting['metod'], url, setting['async'], setting['user'], setting['password']);
    		xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
    		if (typeof FormData === 'undefined') {
    			if (setting['dataType'] == 'json') {
    				xhr.setRequestHeader('Content-type', 'application/json;charset=UTF-8');
    			} else if (setting['dataType'] == 'text') {
    				xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded; charset=UTF-8');
    			}
    		}
    		if (setting['responseType']) {
    			xhr.responseType = setting['responseType']; //"text" – строка,"arraybuffer", "blob", "document", "json" – JSON (парсится автоматически).
    		}
    		xhr.send(datanew);
    		xhr.onload = function(oEvent) {
    			if (xhr.status == 200) {
    				return setting['success'](xhr.response, xhr);
    			} else {
    				var ajaxOptions = setting;
    				var thrownError = false;
    				return setting['error'](xhr, ajaxOptions, thrownError);
    			}
    		};
    	}
    
    var debug = {'param1':'1','param2':'2'};
    
    ajax('index.php?route=exyension/mymodule/debug', {
    	metod: 'POST',
    	data: {debug, debug},
    	success:function(json) {
    		console.log(json);
    	}
    });

     

    В контроллере получим массив:

    
    
    
    
    
    
    
    $this->request->post['debug'] = array('param1' => '1', 'param2' => '2');

     

     

     

    28/ начиная с OpenCart 3.0.3.7

    Перед созданием столбца для даты и время нужно выполнять запрос "SET SESSION sql_mode = ''"

     

    Пример:

    Скрытый текст
    
    
    $this->db->query("SET SESSION sql_mode = ''");
    $this->db->query("ALTER TABLE `" . DB_PREFIX . "manufacturer` ADD COLUMN `date_modified` DATETIME NOT NULL AFTER date_added");

     

     

  5. 50 минут назад, Candy-shop сказал:

    день убила, но сделала. ваш файл у меня в принципе не работает( я ж дурында, не посмотрела, что это на 2 версию, а у меня 3 стоит... сидела все переделывала методом тыка)

    Для тройки ищите темы на форуме тройки (ocstore 3), там несколько раз вопрос поднимался.

  6. В 18.01.2021 at 14:22, igorek91 сказал:

    Добрый день. Ув. Модераторы, помогите пожалуйста решить проблему с арифметикой корзины OPENCART.PRO Версия 2.3.0.2.3. 

     

    В 18.01.2021 at 14:39, WarStyle сказал:

    Пам падабам, решили вопрос)

     

     

    Я думаю он про это:

     

  7. 14 часа назад, lamoda сказал:

    Один вопрос... когда планируется релиз OPENCART.CMS на версию опенкарта 3.0.3.6

    Скорее никогда, было объединение: https://opencartforum.com/ в итоге ocStroe 3.0.2.0, а на счёт версии PRO я не знаю.

    А так, лично я занимаюсь улучшением для себя версии 2.3.0.2.5 https://github.com/BuslikDrev/OpenCart.CMS-2.3.0.2.6/tree/oc-2.3.0.2.1

  8. 4 часа назад, opencartprosuperuser сказал:

    Здравствуйте. Возможно ли настроить покупку ткани  метражом с дробным количеством? Например 1,5.м и т д

    Сейчас на сайте iris-tekstil.ru установлен минимальный отрез ткани в 10 см, получается, чтобы купить 1 метр покупатель должен нажать 10 раз, но не до всех это доходит.

    Как сделать, чтобы шаг был 1.1, 1.2, 1.3 а не 10, 11, 12, 13

     

    В идеале сделано на сайте kupava43.ru  но это не опенкарт 

     

    https://liveopencart.ru/opencart-moduli-shablony/moduli/zakaz/tovar-partiyami-v-korzinu-opencart-2

     

    или

     

    Через опции: https://liveopencart.ru/index.php?route=product/product&product_id=1076

  9. 26/ Я рекомендую применять атрибут rel в ссылках на другие сайты с параметрами norefferer и noopener для защиты данных пользователей и особенно админ панели, и другие рекомендации из статьи:

    Скрытый текст

     

  10. v1.0.28 Full OpenCart 2.X-3.X
    - добавлен новый дизайн "disco" для тип: список;
    - добавлен новый дизайн "disco" для тип: витрина;
    - загрузка ссылок в админ панели теперь через ajax;
    - добавлена возможность выбора иконок (Awesome 4.4.0-5.15.1); - кто-то хотел, да и я не против.
    - исправлены найденные ошибки;

  11. 25/ Иконки Font Awesome

    v4.4.0 - 585 шт.

    v4.7.0 - 675 шт.

    v5.15.1 - 1001 шт.

    Я не смог найти какой-нибудь список иконок, поэтому делаю свой и делюсь с вами:

    Скрытый текст

    Код скрипта с помощью которого спарсил (файл стилей должен быть на вашем сайте):

    
    var selection = [];
    var sheets = document.styleSheets;
    var html = '{';
    
    for (i in sheets) {
    	try {
    		if (i) {
    			var sheet = sheets[i].rules;
    
    			if (sheet) {
    				for (j in sheet) {
    					if (/fa-[\d\w]+/.test(sheet[j].selectorText)) {
    						var xet = sheet[j].selectorText.indexOf(',');
    
    						if (xet != -1) {
    							xet = sheet[j].selectorText.indexOf(' ');
    							if (xet != -1) {
    								sheet[j].selectorText = sheet[j].selectorText.substring(0, xet);
    							}
    							xet = sheet[j].selectorText.indexOf(':');
    							if (xet != -1) {
    								sheet[j].selectorText = sheet[j].selectorText.substring(0, xet);
    							}
    							html += '"' + sheet[j].selectorText.replace('.fa', 'fa') + '",';
    							selection.push(sheet[j].selectorText.replace('.fa', 'fa'));
    						} else {
    							var sh = sheet[j].selectorText.split(',');
    
    							for (s in sh) {
    								xet = sh[s].indexOf(' ');
    								if (xet != -1) {
    									sh[s] = sh[s].substring(0, xet);
    								}
    								xet = sh[s].indexOf(':');
    								if (xet != -1) {
    									sh[s] = sh[s].substring(0, xet);
    								}
    								html += '"' + sh[s].replace('.fa', 'fa') + '",';
    								selection.push(sh[s].replace('.fa', 'fa'));
    							}
    						}
    					}
    				}
    			}
    		}
    	} catch(e) {
    		console.log('pisec ' + sheets[i].href);
    	}
    }
    
    html += '}';
    $('.icons').html(html);
    //console.log(selection);

     

    База самих иконок (названия классов):

     

    icons.js

     

     

     Иконки Bootstrap v3.3.5+ - 262 шт.:

    Спойлер
    			var base_icons = {
    				'glyphicon':["glyphicon-asterisk","glyphicon-plus","glyphicon-euro","glyphicon-minus","glyphicon-cloud","glyphicon-envelope","glyphicon-pencil","glyphicon-glass","glyphicon-music","glyphicon-search","glyphicon-heart","glyphicon-star","glyphicon-star-empty","glyphicon-user","glyphicon-film","glyphicon-th-large","glyphicon-th","glyphicon-th-list","glyphicon-ok","glyphicon-remove","glyphicon-zoom-in","glyphicon-zoom-out","glyphicon-off","glyphicon-signal","glyphicon-cog","glyphicon-trash","glyphicon-home","glyphicon-file","glyphicon-time","glyphicon-road","glyphicon-download-alt","glyphicon-download","glyphicon-upload","glyphicon-inbox","glyphicon-play-circle","glyphicon-repeat","glyphicon-refresh","glyphicon-list-alt","glyphicon-lock","glyphicon-flag","glyphicon-headphones","glyphicon-volume-off","glyphicon-volume-down","glyphicon-volume-up","glyphicon-qrcode","glyphicon-barcode","glyphicon-tag","glyphicon-tags","glyphicon-book","glyphicon-bookmark","glyphicon-print","glyphicon-camera","glyphicon-font","glyphicon-bold","glyphicon-italic","glyphicon-text-height","glyphicon-text-width","glyphicon-align-left","glyphicon-align-center","glyphicon-align-right","glyphicon-align-justify","glyphicon-list","glyphicon-indent-left","glyphicon-indent-right","glyphicon-facetime-video","glyphicon-picture","glyphicon-map-marker","glyphicon-adjust","glyphicon-tint","glyphicon-edit","glyphicon-share","glyphicon-check","glyphicon-move","glyphicon-step-backward","glyphicon-fast-backward","glyphicon-backward","glyphicon-play","glyphicon-pause","glyphicon-stop","glyphicon-forward","glyphicon-fast-forward","glyphicon-step-forward","glyphicon-eject","glyphicon-chevron-left","glyphicon-chevron-right","glyphicon-plus-sign","glyphicon-minus-sign","glyphicon-remove-sign","glyphicon-ok-sign","glyphicon-question-sign","glyphicon-info-sign","glyphicon-screenshot","glyphicon-remove-circle","glyphicon-ok-circle","glyphicon-ban-circle","glyphicon-arrow-left","glyphicon-arrow-right","glyphicon-arrow-up","glyphicon-arrow-down","glyphicon-share-alt","glyphicon-resize-full","glyphicon-resize-small","glyphicon-exclamation-sign","glyphicon-gift","glyphicon-leaf","glyphicon-fire","glyphicon-eye-open","glyphicon-eye-close","glyphicon-warning-sign","glyphicon-plane","glyphicon-calendar","glyphicon-random","glyphicon-comment","glyphicon-magnet","glyphicon-chevron-up","glyphicon-chevron-down","glyphicon-retweet","glyphicon-shopping-cart","glyphicon-folder-close","glyphicon-folder-open","glyphicon-resize-vertical","glyphicon-resize-horizontal","glyphicon-hdd","glyphicon-bullhorn","glyphicon-bell","glyphicon-certificate","glyphicon-thumbs-up","glyphicon-thumbs-down","glyphicon-hand-right","glyphicon-hand-left","glyphicon-hand-up","glyphicon-hand-down","glyphicon-circle-arrow-right","glyphicon-circle-arrow-left","glyphicon-circle-arrow-up","glyphicon-circle-arrow-down","glyphicon-globe","glyphicon-wrench","glyphicon-tasks","glyphicon-filter","glyphicon-briefcase","glyphicon-fullscreen","glyphicon-dashboard","glyphicon-paperclip","glyphicon-heart-empty","glyphicon-link","glyphicon-phone","glyphicon-pushpin","glyphicon-usd","glyphicon-gbp","glyphicon-sort","glyphicon-sort-by-alphabet","glyphicon-sort-by-alphabet-alt","glyphicon-sort-by-order","glyphicon-sort-by-order-alt","glyphicon-sort-by-attributes","glyphicon-sort-by-attributes-alt","glyphicon-unchecked","glyphicon-expand","glyphicon-collapse-down","glyphicon-collapse-up","glyphicon-log-in","glyphicon-flash","glyphicon-log-out","glyphicon-new-window","glyphicon-record","glyphicon-save","glyphicon-open","glyphicon-saved","glyphicon-import","glyphicon-export","glyphicon-send","glyphicon-floppy-disk","glyphicon-floppy-saved","glyphicon-floppy-remove","glyphicon-floppy-save","glyphicon-floppy-open","glyphicon-credit-card","glyphicon-transfer","glyphicon-cutlery","glyphicon-header","glyphicon-compressed","glyphicon-earphone","glyphicon-phone-alt","glyphicon-tower","glyphicon-stats","glyphicon-sd-video","glyphicon-hd-video","glyphicon-subtitles","glyphicon-sound-stereo","glyphicon-sound-dolby","glyphicon-sound-5-1","glyphicon-sound-6-1","glyphicon-sound-7-1","glyphicon-copyright-mark","glyphicon-registration-mark","glyphicon-cloud-download","glyphicon-cloud-upload","glyphicon-tree-conifer","glyphicon-tree-deciduous","glyphicon-cd","glyphicon-save-file","glyphicon-open-file","glyphicon-level-up","glyphicon-copy","glyphicon-paste","glyphicon-alert","glyphicon-equalizer","glyphicon-king","glyphicon-queen","glyphicon-pawn","glyphicon-bishop","glyphicon-knight","glyphicon-baby-formula","glyphicon-tent","glyphicon-blackboard","glyphicon-bed","glyphicon-apple","glyphicon-erase","glyphicon-hourglass","glyphicon-lamp","glyphicon-duplicate","glyphicon-piggy-bank","glyphicon-scissors","glyphicon-bitcoin","glyphicon-btc","glyphicon-xbt","glyphicon-yen","glyphicon-jpy","glyphicon-ruble","glyphicon-rub","glyphicon-scale","glyphicon-ice-lolly","glyphicon-ice-lolly-tasted","glyphicon-education","glyphicon-option-horizontal","glyphicon-option-vertical","glyphicon-menu-hamburger","glyphicon-modal-window","glyphicon-oil","glyphicon-grain","glyphicon-sunglasses","glyphicon-text-size","glyphicon-text-color","glyphicon-text-background","glyphicon-object-align-top","glyphicon-object-align-bottom","glyphicon-object-align-horizontal","glyphicon-object-align-left","glyphicon-object-align-vertical","glyphicon-object-align-right","glyphicon-triangle-right","glyphicon-triangle-left","glyphicon-triangle-bottom","glyphicon-triangle-top","glyphicon-console","glyphicon-superscript","glyphicon-subscript","glyphicon-menu-left","glyphicon-menu-right","glyphicon-menu-down","glyphicon-menu-up"]
    			};

     

     

  12. 24/ Наткнулся на хорошие проекты "Определение мобильных устройств, браузеров, ботов, а также их версий по user agent". Думаю достойная замена get_browser() и нужно опробовать, тем более легко устанавливается на OpenCart:

    Скрытый текст

    https://github.com/cbschuld/Browser.php (просмотрел код подробнее - не советую применять (время проверки 4-6 мс), но пойдёт для написания своего решения в виде шаблона) - совет: сначала разобрать user agent потом прогонять по своей базе условий каждый параметр, и использовать регулярные выражения. https://developer.mozilla.org/en-US/docs/Web/HTTP/Browser_detection_using_the_user_agent

     

    Если нужны все возможности get_browser() и проверки по базе http://browscap.org/, которую использует функция get_browser(), то:

    https://github.com/GaretJax/phpbrowscap (Очень старая версия - это для истории)

    https://github.com/browscap/browscap-php (Новая версия)