Подскажите можно ли заменить стандартный фильтр этой темы, на фильтр из шаблона весна, где можно передвигать ползунок цен?
0
Фильтр
Автор Сергей Иванов, 28 окт. 2015 17:22
Сообщений в теме: 7
#1
Отправлено 28 Октябрь 2015 - 17:22
#2
Отправлено 29 Октябрь 2015 - 01:55
Уточните пожалуйста, в какой категории можно пронаблюдать ваш старый фильтр, который вы хотите заменить?
#3
Отправлено 29 Октябрь 2015 - 06:33
в любой)
#5
Отправлено 29 Октябрь 2015 - 08:10
Аааа, о сортировке
#6
Отправлено 29 Октябрь 2015 - 11:21
Сергей Иванов (29 Октябрь 2015 - 08:10) писал:
Аааа, о сортировке
Здравствуйте, для того, чтобы изменить сортировку на такую же, как в шаблоне Весна, необходимо произвести следующие изменения:
1) Зайдите в админ.панель -> Сайт -> Редактор шаблонов -> Шаблоны ->Товары и найдите код
<!-- Верхний блок, изменяющий отображение данных выдачи товаров --> <div class="toolbar"> <form action="" class="form-inline OrderFilterForm"> <!-- Вид Таблица/Список --> <div class="view-mode"> {% IF GOODS_VIEW_TYPE=1 %} <span title="Таблица" class="fa fa-th-large"></span> <a href="?goods_view_type=2" title="Список" class="fa fa-th-list"></a> {% ELSE %} <a href="?goods_view_type=1" title="Таблица" class="fa fa-th-large"></a> <span title="Список" class="fa fa-th-list"></span> {% ENDIF %} </div> <!-- /END Вид Таблица/Список --> <!-- Показывать по: (Шаг для выбора пользователем лимита выдачи товаров на страницу от 1 до 100) --> <div class="show-by"> <label>Показывать по:</label> <select name="per_page" class="selectBox" title="Лимит товаров на странице" onchange="this.form.submit();"> {% FOR goods_per_page_list %} <option value="{goods_per_page_list.LIMIT}" {% IF goods_per_page_list.SELECTED %}selected="selected"{% ENDIF %}>{goods_per_page_list.LIMIT}</option> {% ENDFOR %} </select> </div> <!-- /END Показывать по: --> <!-- Сортировать по: (Поле сортировки товаров по умолчанию) --> <div class="sort-by"> <label>Сортировать по:</label> <select name="goods_search_field_id" class="selectBox" title="Название сортировки" onchange="this.form.submit();"> {% FOR goods_order_fields %} <option value="{goods_order_fields.ID}" {% IF goods_order_fields.SELECTED %}selected="selected"{% ENDIF %}>{goods_order_fields.NAME}</option> {% ENDFOR %} </select> </div> <!-- /END Сортировать по: -->
и замените его на код
<!-- Верхний блок, изменяющий отображение данных выдачи товаров --> <div class="product-filter"> <div class="category-products"> <div class="category-products"> <form action="" class="form-inline OrderFilterForm"> <!-- Список фильтров, которые сейчас действуют на результаты поиска --> {% FOR goods_filters %} <input type="hidden" name="{goods_filters.NAME}" value="{goods_filters.VALUE}" /> {% ENDFOR %} <!-- Блок возможности изменения лимитов выдачи -- {% IF goods_show_per_page %} <div class="limit"> <label>Показывать по:</label> <select name="per_page" onchange="this.form.submit();"> {% FOR goods_per_page_list %} <option value="{goods_per_page_list.LIMIT}" {% IF goods_per_page_list.SELECTED %}selected="selected"{% ENDIF %}>{goods_per_page_list.LIMIT}</option> {% ENDFOR %} </select> <label>результатов</label> </div> {% ENDIF %} <!-- /Блок возможности изменения лимитов выдачи --> <!-- Блок изменения вида списка и поля сортировки --> <div class="view-mode"> <label>Вид списка:</label> {% IF GOODS_VIEW_TYPE=1 %} <span title="Таблица" class="fa fa-th-large"></span> <a href="?goods_view_type=2" title="Список" class="fa fa-th-list"></a> {% ELSE %} <a href="?goods_view_type=1" title="Таблица" class="fa fa-th-large"></a> <span title="Список" class="fa fa-th-list"></span> {% ENDIF %} </div> <div class="sort"> <div class="sort-by"> <label>Сортировать по:</label> <ul class="OrderFilterFormByURLs"> <!-- цене: Дорогие - Дешевые --> {% IF GOODS_SEARCH_FIELD_ID=1 %} <li class="selected-desc"><a href="?goods_search_field_id=2" title="Товары сейчас отсортированы по цене. Вверху дорогие внизу дешевые. Нажмите ещё раз, если хотите чтобы сортировка товаров производилась наоборот, сначала дешевые, затем дорогие">цене</a></li> <!-- цене: Дешевые - Дорогие --> {% ELSEIF GOODS_SEARCH_FIELD_ID=2 %} <li class="selected-asc"><a href="?goods_search_field_id=1" title="Товары сейчас отсортированы по цене. Вверху дешевые внизу дорогие. Нажмите ещё раз, если хотите чтобы сортировка товаров производилась наоборот, сначала дорогие, затем дешёвые">цене</a></li> <!-- Сортировка отключена --> {% ELSE %} <li><a href="?goods_search_field_id=2" title="Отсортировать товары по убыванию цены. Сверху дорогие, снизу дешевые">цене</a></li> {% ENDIF %} <!-- названию: А - я --> {% IF GOODS_SEARCH_FIELD_ID=3 %} <li class="selected-asc"><a href="?goods_search_field_id=4" title="Товары сейчас отсортированы по алфавиту. Сверху «а», снизу «Я». Нажмите ещё раз, если хотите чтобы сортировка товаров производилась наоборот, сначала «Я», затем «а»">названию</a></li> <!-- названию: я - А --> {% ELSEIF GOODS_SEARCH_FIELD_ID=4 %} <li class="selected-desc"><a href="?goods_search_field_id=3" title="Товары сейчас отсортированы по алфавиту. Сверху «Я», снизу «а». Нажмите ещё раз, если хотите чтобы сортировка товаров производилась наоборот, сначала «а», затем «Я»">названию</a></li> <!-- Сортировка отключена --> {% ELSE %} <li><a href="?goods_search_field_id=3" title="Отсортировать товары по алфавиту. Сверху «а», снизу «Я»">названию</a></li> {% ENDIF %} <!-- рейтингу: Хорошие - Плохие --> {% IF GOODS_SEARCH_FIELD_ID=11 %} <li class="selected-desc"><a href="?goods_search_field_id=12" title="Товары сейчас отсортированы по рейтингу отзывов покупателей. Сверху хорошие товары, снизу плохие. Нажмите ещё раз, если хотите чтобы сортировка товаров производилась наоборот, сначала плохие, затем хорошие">рейтингу</a></li> <!-- рейтингу: Плохие - Хорошие --> {% ELSEIF GOODS_SEARCH_FIELD_ID=12 %} <li class="selected-asc"><a href="?goods_search_field_id=11" title="Товары сейчас отсортированы по рейтингу отзывов покупателей. Сверху плохие товары, снизу хорошие. Нажмите ещё раз, если хотите чтобы сортировка товаров производилась наоборот, сначала хорошие, затем плохие">рейтингу</a></li> <!-- Сортировка отключена --> {% ELSE %} <li><a href="?goods_search_field_id=11" title="Отсортировать товары по рейтингу отзывов покупателей. Сверху хорошие товары, снизу плохие">рейтингу</a></li> {% ENDIF %} </ul> </div> </div> <!-- /Блок изменения вида списка и поля сортировки --> </form> </div> <div class="clear"></div> <!-- Если в тарифном плане подключен модуль фильтров по товарам --> {% IF TARIFF_FEATURE_GOODS_FILTERS %} <div class="filters"> <!-- Форма поиска отправляет всегда на ту же страницу, на которой находится пользователь --> <form action="" method="get"> <!-- Если есть возможность фильтрации товаров по ценам --> {% IF SHOW_GOODS_PRICE_FILTERS %} <div class="filter"> <div> <label>Цена:</label> <input id="goods-filter-min-price" type="text" class="inputText" name="form[filter][price][min]" value="{% IF GOODS_FILTER_MIN_PRICE %}{GOODS_FILTER_MIN_PRICE}{% ELSE %}{GOODS_FILTER_MIN_AVAILABLE_PRICE}{% ENDIF %}" autocomplete="off" /> - <input id="goods-filter-max-price" type="text" class="inputText" name="form[filter][price][max]" value="{% IF GOODS_FILTER_MAX_PRICE %}{GOODS_FILTER_MAX_PRICE}{% ELSE %}{GOODS_FILTER_MAX_AVAILABLE_PRICE}{% ENDIF %}" autocomplete="off" /> <div class="contentTbodySearchPriceFilterBlock"> <!-- Фильтры по цене --> <div class="goodsFilterPriceRangePointers"><span class="min">{GOODS_FILTER_MIN_AVAILABLE_PRICE}</span><span class="max">{GOODS_FILTER_MAX_AVAILABLE_PRICE}</span><div class="clear"></div></div> <div id="goods-filter-price-slider"></div> <div class="goodsFilterPriceSubmit"> <input class="button" type="submit" value="Показать" /> </div> </div> </div> </div> {% ENDIF %} <!-- END Если есть возможность фильтрации товаров по ценам --> {% IF TARIFF_FEATURE_GOODS_FILTERS && SHOW_GOODS_FILTERS %} <!-- Фильтры по характеристикам товаров (Например: Производитель, разрешение экрана, заряд аккомулятора) --> {% FOR filter_attr_list %} <div class="filter"> {filter_attr_list.NAME}:<br /> <select onchange="$(this).attr('name', $(this).find('option:selected').attr('value') == -1 ? '' : $(this).find('option:selected').attr('rel'));this.form.submit();" name="{% FOR values %}{% IF filter_attr_list.values.CHECKED %}form[filter][attr][{filter_attr_list.ID}][{filter_attr_list.values.ID}]{% ENDIF %}{% ENDFOR %}"> <option> - все - </option> {% FOR values %} <option value="1" rel="form[filter][attr][{filter_attr_list.ID}][{filter_attr_list.values.ID}]" {% IF filter_attr_list.values.CHECKED %}selected="selected"{% ENDIF %}>{filter_attr_list.values.VALUE}</option> {% ENDFOR %} </select> </div> {% ENDFOR %} <!-- Фильтры по свойствам товарных модификаций (Например: Цвет, размер, модификация) --> {% FOR filter_prop_list %} <div class="filter"> {filter_prop_list.NAME}:<br /> <select onchange="$(this).attr('name', $(this).find('option:selected').attr('value') == -1 ? '' : $(this).find('option:selected').attr('rel'));this.form.submit();" name="{% FOR values %}{% IF filter_prop_list.values.CHECKED %}form[filter][prop][{filter_prop_list.ID}][{filter_prop_list.values.ID}]{% ENDIF %}{% ENDFOR %}"> <option> - все - </option> {% FOR values %} <option value="1" rel="form[filter][prop][{filter_prop_list.ID}][{filter_prop_list.values.ID}]" {% IF filter_prop_list.values.CHECKED %}selected="selected"{% ENDIF %}>{filter_prop_list.values.VALUE}</option> {% ENDFOR %} </select> </div> {% ENDFOR %} {% ENDIF %} <div class="clear"></div> </form> </div> {% ENDIF %} <!-- END Если в тарифном плане подключен модуль фильтров по товарам --> </div> </div>
2) Зайдите в Стили -> main.css и в самом конце добавьте код
/* Блок выбора условий сортировки */ .product-filter {padding:15px 10px 15px 10px;background-color:#ffffff;-webkit-border-radius: 5px;-moz-border-radius: 5px;-khtml-border-radius: 5px;border-radius: 5px;border-bottom:4px solid #e1e1e1;margin-bottom:15px;box-shadow: 0 0 6px 0 rgba(0, 0, 0, 0.1); -moz-box-shadow: 0 0 6px 0 rgba(0, 0, 0, 0.1);-webkit-box-shadow: 0 0 6px 0 rgba(0, 0, 0, 0.1);*border: solid 1px #e1e1e1;border: solid 1px #e1e1e1\0/;} .product-filter .display {margin-right: 15px;float: left;padding-top: 4px;color: #333;} .product-filter .display a {font-weight: bold;} .product-filter .sort {float: left;color: #333; } .product-filter .sort { margin-top:5px; } .product-filter .view-mode {float:right;margin-top:5px;padding-right:10px; } .product-filter .view-mode label { float:left;margin-right:7px; color: #333;} .product-filter .view-mode a { background:url("{ASSETS_IMAGES_PATH}ico_list_or_table_view_12.jpg?design=spring") 0px 0px no-repeat;width:12px;height:12px;display:block;float:left;margin:2px 7px 1px 0;} .product-filter .view-mode a.table { background-position:0px 0px; } .product-filter .view-mode a.list { background-position:-12px 0px; } .product-filter .view-mode a.table-act, .product-filter .view-mode a.table:hover { background-position:0px -12px; } .product-filter .view-mode a.list-act, .product-filter .view-mode a.list:hover { background-position:-12px -12px; } .product-filter .view-mode strong{color:#000;} .product-filter .sort .sort-by { float:left; } .product-filter .sort .sort-by label { float:left; } .product-filter .limit {float: right;color: #333;} .category-products{width:100%;display: inline-block;position: relative;} /* END Блок выбора условий сортировки */ /* Фильтры */ .filter-title {margin-bottom:12px;float:left;padding:3px 8px;-webkit-border-radius: 3px;-moz-border-radius: 3px;-khtml-border-radius: 3px;border-radius: 3px;} .filter-title p {float:left;margin:0 12px 0 0;font-weight:bold;color:#333333;} .filter {display: inline-block; *display: inline; *zoom: 1;*width: auto; padding-right: 10px;vertical-align: top;margin-top: 15px;} .filter:first-child {*width: 250px;} .filter label { vertical-align: top; } .filter .inputText {background-color: rgb(238, 238, 238); margin: 0px 3px; min-width: 65px ;} /* END Фильтры */ /* Фильтр по цене */ .goodsFilterPriceRangePointers .min {float: left;color:#212121;font-size: 12px;font-weight: bold;} .goodsFilterPriceRangePointers .max {float: right;color:#212121;font-size: 12px;font-weight: bold;} #goods-filter-price-slider {margin: 0 6px 0 10px;height: 5px;-moz-border-radius: 2px;-webkit-border-radius: 2px;border-radius: 2px;background: #333;border: solid 1px #333;} .ui-slider-horizontal .ui-slider-range {background: #ff0551;border: solid 1px #ff0551;} .ui-slider-horizontal .ui-slider-handle {height: 12px;width: 12px;top: -4px;background: #ccc;border: solid 1px #999;-moz-border-radius: 2px;-webkit-border-radius: 2px;border-radius: 2px;} .goodsFilterPriceSubmit {margin-top: 10px;display: none;} .goodsFilterPriceSubmit .button {margin: 0 auto;display: block;} /* END Фильтр по цене */ /* Тип сортировки товаров */ .OrderFilterFormByURLs {padding:0;margin:0 0 0 5px;float:left;} .OrderFilterFormByURLs li {float:left;padding:0 6px 0 0;margin:0;list-style-type:none;} .OrderFilterFormByURLs a {padding-right:12px;margin:0 2px;list-style-type:none;}
3) Далее зайдите в скрипты main.js, в самом конце добавьте код
// Функция собирает свойства в строку, для определения модификации товара function getSlugFromGoodsDataFormModificationsProperties(obj) { var properties = new Array(); $(obj).each(function(i){ properties[i] = parseInt($(this).val()); }); return properties.sort(function(a,B){return a - b}).join('_'); } var // Запоминаем поля выбора свойств, для ускорения работы со значениями свойств goodsDataProperties = $('form.goodsDataForm select[name="form[properties][]"]'), // Запоминаем блоки с информацией по модификациям, для ускорения работы goodsDataModifications = $('div.goodsDataMainModificationsList'); // Обновляет возможность выбора свойств модификации, для отключения возможности выбора по характеристикам модификации которой не существует. function updateVisibility (y) { // Проверяем в каждом соседнем поле выбора модификаций, возможно ли подобрать модификацию для указанных свойств goodsDataProperties.each(function(j){ // Если мы сравниваем значения свойства не с самим собой, а с другим списком значений свойств if( j != y ) { // Проходим по всем значениям текущего свойства модификации товара $(this).find('option').each(function(){ // Записываем временный массив свойств, которые будем использовать для проверки существования модификации var checkProperties = new Array(); $(goodsDataProperties).each(function(i){ checkProperties[i] = parseInt($(this).val()); }); // Пытаемся найти модификацию соответствующую выбранным значениям свойств checkProperties[j] = parseInt($(this).attr('value')); // Собираем хэш определяющий модификацию по свойствам slug = checkProperties.sort(function(a,B){return a - b}).join('_'); // Ищем модификацию по всем выбранным значениям свойств товара. Если модификации нет в возможном выборе, отмечаем потенциальное значение выбора как не доступное для выбора, т.к. такой модификации нет. if(!goodsDataModifications.filter('[rel="'+slug+'"]').length) { $(this).attr('disabled', true); // Если выбрав данное значение свойства товара можно подобрать модификацию, то выделяем вариант выбора как доступный. } else { $(this).attr('disabled', false); } }); } }); } // Обновляем возможность выбора модификации товара по свойствам. Для тех свойств, выбор по которым не возможен, отключаем такую возможность. // Проверяем возможность выбора на всех полях кроме первого, чтобы отключить во всех остальных варианты, которые не возможно выбрать updateVisibility (0); // Проверяем возможность выбора на всех полях кроме второго, чтобы в первом поле так же отключилась возможность выбора не существующих модификаций updateVisibility (1); //var goodsDataProperties = $('.goodsDataForm [name="form[properties][]"]'); // Изменение цены товара при изменении у товара свойства для модификации goodsDataProperties.each(function(){ $(this).change(function(){ var slug = getSlugFromGoodsDataFormModificationsProperties(goodsDataProperties), modificationBlock = $('.goodsDataMainModificationsList[rel="'+slug+'"]'), modificationId = parseInt(modificationBlock.find('[name="id"]').val()), modificationArtNumber = modificationBlock.find('[name="art_number"]').val(), modificationPriceNow = parseFloat(modificationBlock.find('[name="price_now"]').val()), modificationPriceNowFormated = modificationBlock.find('.price_now_formated').html(), modificationPriceOld = parseFloat(modificationBlock.find('[name="price_old"]').val()), modificationPriceOldFormated = modificationBlock.find('.price_old_formated').html(), modificationRestValue = parseFloat(modificationBlock.find('[name="rest_value"]').val()), modificationDescription = modificationBlock.find('.description').html(), modificationMeasureId = parseInt(modificationBlock.find('[name="measure_id"]').val()), modificationMeasureName = modificationBlock.find('[name="measure_name"]').val(), modificationMeasureDesc = modificationBlock.find('[name="measure_desc"]').val(), modificationMeasurePrecision = modificationBlock.find('[name="measure_precision"]').val(), modificationIsHasInCompareList= modificationBlock.find('[name="is_has_in_compare_list"]').val(), goodsModificationId = $('.goodsDataMainModificationId'), goodsPriceNow = $('.goodsDataMainModificationPriceNow'), goodsPriceOld = $('.goodsDataMainModificationPriceOld'), goodsAvailable = $('.goodsDataMainModificationAvailable'), goodsAvailableTrue = goodsAvailable.find('.available-true'), goodsAvailableFalse = goodsAvailable.find('.available-false'), goodsArtNumberBlock = $('.goodsDataMainModificationArtNumber'), goodsArtNumber = goodsArtNumberBlock.find('span'); goodsCompareAddButton = $('.goodsDataCompareButton.add'); goodsCompareDeleteButton = $('.goodsDataCompareButton.delete'); goodsModDescriptionBlock = $('.goodsDataMainModificationsDescriptionBlock'); // Изменяем данные товара для выбранных параметров. Если нашлась выбранная модификация if(modificationBlock.length) { // Цена товара goodsPriceNow.html(modificationPriceNowFormated); // Старая цена товара if(modificationPriceOld>modificationPriceNow) { goodsPriceOld.html(modificationPriceOldFormated); } else { goodsPriceOld.html(''); } // Есть ли товар есть в наличии if(modificationRestValue>0) { goodsAvailableTrue.show(); goodsAvailableFalse.hide(); // Если товара нет в наличии } else { goodsAvailableTrue.hide(); goodsAvailableFalse.show(); } // Если товар есть в списке сравнения if(modificationIsHasInCompareList>0) { goodsCompareAddButton.hide(); goodsCompareDeleteButton.show(); // Если товара нет в списке сравнения } else { goodsCompareAddButton.show(); goodsCompareDeleteButton.hide(); } // Покажем артикул модификации товара, если он указан if(modificationArtNumber.length>0) { goodsArtNumberBlock.show(); goodsArtNumber.html(modificationArtNumber); // Скроем артикул модификации товара, если он не указан } else { goodsArtNumberBlock.hide(); goodsArtNumber.html(''); } // Описание модификации товара. Покажем если оно есть, спрячем если его у модификации нет if(modificationDescription.length > 0) { goodsModDescriptionBlock.show().html('<div>' + modificationDescription + '</div>'); } else { goodsModDescriptionBlock.hide().html(); } // Идентификатор товарной модификации goodsModificationId.val(modificationId); } else { // Отправим запись об ошибке на сервер sendError('no modification by slug '+slug); alert('К сожалению сейчас не получается подобрать модификацию соответствующую выбранным параметрам.'); } }); }); var // Минимальное значение цены для фильтра priceFilterMinAvailable = parseInt($('.goodsFilterPriceRangePointers .min').text()) // Максимальное значение цены для фильтра ,priceFilterMaxAvailable = parseInt($('.goodsFilterPriceRangePointers .max').text()) // Максимальное значение цены для фильтра ,priceSliderBlock = $('#goods-filter-price-slider') // Поле ввода текущего значения цены "От" ,priceInputMin = $( "#goods-filter-min-price" ) // Поле ввода текущего значения цены "До" ,priceInputMax = $( "#goods-filter-max-price" ) // Блок с кнопкой, которую есть смысл нажимать только тогда, когда изменялся диапазон цен. ,priceSubmitButtonBlock = $( ".goodsFilterPriceSubmit" ) ; // Изменяет размер ячеек с ценой, т.к. у них нет рамок, есть смысл менять размеры полей ввода, чтобы они выглядили как текст function priceInputsChangeWidthByChars() { // Если есть блок указания минимальной цены if(priceInputMin.length) { priceInputMin.css('width', (priceInputMin.val().length*7 + 30) + 'px'); priceInputMax.css('width', (priceInputMax.val().length*7 + 30) + 'px'); } } // Слайдер, который используется для удобства выбора цены priceSliderBlock.slider({ range: true, min: priceFilterMinAvailable, max: priceFilterMaxAvailable, values: [ parseInt($('#goods-filter-min-price').val()) ,parseInt($('#goods-filter-max-price').val()) ], slide: function( event, ui ) { priceInputMin.val( ui.values[ 0 ] ); priceInputMax.val( ui.values[ 1 ] ); priceSubmitButtonBlock.show(); priceInputsChangeWidthByChars(); } }); // При изменении минимального значения цены priceInputMin.keyup(function(){ var newVal = parseInt($(this).val()); if(newVal < priceFilterMinAvailable) { newVal = priceFilterMinAvailable; } priceSliderBlock.slider("values", 0, newVal); priceSubmitButtonBlock.show(); priceInputsChangeWidthByChars(); }); // При изменении максимального значения цены priceInputMax.keyup(function(){ var newVal = parseInt($(this).val()); if(newVal > priceFilterMaxAvailable) { newVal = priceFilterMaxAvailable; } priceSliderBlock.slider("values", 1, newVal); priceSubmitButtonBlock.show(); priceInputsChangeWidthByChars(); }); // Обновить размеры полей ввода диапазона цен priceInputsChangeWidthByChars();
#8
Отправлено 30 Октябрь 2015 - 16:35
Сергей Иванов (30 Октябрь 2015 - 16:17) писал:
1) Убрать "сортировать по:" снизу
2) Сделать по стандартной ширине (расширить)
2) Сделать по стандартной ширине (расширить)
1)Зайдите в админ.панель - сайт - редактор шаблонов - Товары, найдите и удалите код:
<!-- Сортировать по: (Поле сортировки товаров по умолчанию) --> <div class="sort-by"> <label>Сортировать по:</label> <select name="goods_search_field_id" class="selectBox" title="Название сортировки" onchange="this.form.submit();"> {% FOR goods_order_fields %} <option value="{goods_order_fields.ID}" {% IF goods_order_fields.SELECTED %}selected="selected"{% ENDIF %}>{goods_order_fields.NAME}</option> {% ENDFOR %} </select> </div> <!-- /END Сортировать по: -->
2) в main.css найдите строчку:
.col-md-9{width:75%}
замените на код
.col-md-9{width:100%}
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных