DLE выбор категорий чекбоксами вместо списка

BG
На сайте с 03.10.2010
Offline
195
950

Для каждой новости нужно выбирать более десятка разных категорий, удобней это делать чекбоксами, а не списком. Установил такой хак:

engine/skins/javascripts/application.js в самом низу вставил:

$(function() {


var new_box = '', name_select = $('#addnews #category');

if(typeof name_select.attr('name')!=='undefined'){

$.each($('option', name_select),function (i,c) {

if(this.value!=0){

new_box += '<div style="width:200px;float: left;">'

+'<input type="checkbox" name="'+name_select.attr('name')+'" id="chk'+i+'" onclick="onCategoryChange(this);" value="'+this.value+'"'+(this.selected==true ? ' checked' : '')+'>'

+' <label for="chk'+i+'">'+this.text+'</label>'

+'</div>';}});

name_select.after('<div class="categoryCheckbox">'+new_box+'</div>').remove();

function smartColumns() {

$(".categoryCheckbox").css({ 'width' : "100%"});

var colWrap = $(".categoryCheckbox").width();

var colNum = Math.floor(colWrap / 200);

var colFixed = Math.floor(colWrap / colNum);

$(".categoryCheckbox").css({ 'width' : colWrap});

$(".categoryCheckbox div").css({ 'width' : colFixed});}

smartColumns();

$(window).resize(function(){smartColumns();});



}



});

Но список категорий получается в строку, то-есть:

1 2 3 4 5 6

7 8 9 10 11...

Мне нужно что бы было так:

1 7

2 8

3 9

4 10

5 11

6 12

Так будет намного удобней ориентироваться в более чем сотни разных категорий.

Посоветуйте в какую сторону нужно копнуть

Заранее благодарен.

-= Сайты на заказ | Правки, обновление, работы по DLE =- ( /ru/forum/791118 ) Telegram: @ruslansh ( tg://resolve?domain=ruslansh )
дани мапов
На сайте с 06.09.2012
Offline
204
#1



$(function() {

var new_box = '',
j = 0,
name_select = $('#addnews #category');

if (typeof name_select.attr('name') !== 'undefined') {

new_box += '<div style="width:200px;float: left;">';

$.each($('option', name_select), function(i, c) {

if (this.value != 0) {

if (j % 6 == 0)
new_box += '</div><div style="width:200px;float: left;">';

new_box += '<div>'

+ '<input type="checkbox" name="' + name_select.attr('name') + '" id="chk' + i + '" onclick="onCategoryChange(this);" value="' + this.value + '"' + (this.selected == true ? ' checked' : '') + '>'

+ ' <label for="chk' + i + '">' + this.text + '</label>'

+ '</div>';

j++;
}
});

new_box += '</div>';

name_select.after('<div class="categoryCheckbox">' + new_box + '</div>').remove();

function smartColumns() {

$(".categoryCheckbox").css({
'width': "100%"
});

var colWrap = $(".categoryCheckbox").width();

var colNum = Math.floor(colWrap / 200);

var colFixed = Math.floor(colWrap / colNum);

$(".categoryCheckbox").css({
'width': colWrap
});

$(".categoryCheckbox div").css({
'width': colFixed
});
}

smartColumns();

$(window).resize(function() {
smartColumns();
});



}



});
Написание и доработка скриптов (PHP, MySQL, JavaScript, jQuery) (/ru/forum/811046)
BG
На сайте с 03.10.2010
Offline
195
#2

Спасибо!

if (j % 6 == 0) - 6 это количество пунктов я так понял, сменил на 30 и все стало понятней.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий