Эта модификация написана по мотивам уже
существующего хака по оформлению тегов от
Sander'а, с поддержкой актуальных версии DLE. Она позволяет разгуляться в оформлении и формировании шаблонов для облака тегов. Имеет дополнительные возможности, а так же фильтр для поиска.
В шаблоне
fullstory.tpl как и было, тут ничего не поменялось:
{tags="X"} - где X символ разделяющий теги, не обязательно к использованию.
Для блока тегов был добавлен шаблон
tagscloud_block.tpl, теперь стандартный тег выводит содержимое этого шаблона и в нём же и описывается разметка.
В шаблоне можно применять как стандартный тег, так и тег
[list-tags-block] ... [/list-tags-block]. Оба тега имеют возможность принимать параметры:
- limit -устанавливает лимит количества тегов.
- sep - указывает символ разделяющий теги между собой.
- sort - устанавливает критерий сортировки.
- min - устанавливает минимальное количество тегов, которое будет скрыто или полностью удалено при установленном параметре hide_min. При использовании стандартного тега будет добавлять класс min_hide, который стилем можно скрыть. А фильтр при вводе будет раскрывать спрятанные теги. Может принимать двойное значение разделённое символом |. Например 2|5 - в этом случае параметр hide_min сработает лишь для первого значения, а второе получит класс.
- hide_min - если задан параметр min, то будет полностью удалять теги.
Так же при использовании
[list-tags-block] ... [/list-tags-block] для составления разметки тегов применяются другие теги:
Например:
[list-tags-block min="2|5" hide_min="yes" limit="40"]<a href="{link}" class="filtered_tag[min_c] min_hide[/min_c]"><span class="tagname">{tag}</span><span class="tagcount">{count}</span></a>[/list-tags-block]
Выведет приблизительно 40 тегов. Из них все теги с количеством новостей 2 и ниже будут удалены, а оставшиеся до количества 5ти скрыты для отображения при поиске через набор в фильтре.
Для стандартной реализации тега так же доступны параметры.
Важно помнить, при установке параметра
sort с значением
count, в минимальные может ничего не попасть.
В разделе облака всех тегов так же применяется выше описанные правила только в шаблоне
tagscloud.tpl используется теги
[ list] ... [/list ].
Теги list, без пробелов (просто они забиты тут редактором для списков).
var Input = {
filterTagsCloud: function(e) {
e.preventDefault();
e.stopPropagation();
if ( e.keyCode == 13 )
return;
var target = $(e.srcElement || e.currentTarget),
filterVal = target.val().toLowerCase(),
filterTable = target.parents('.alltagscloud, .tags-block-module').find('.numbertag, .overview_tags');
if ( e.keyCode == 27 )
target.val('');
if ( target.val().length < 1 ) {
filterTable.children('.filtered_tag').removeClass('filtered');
filterTable.children('.filtered_tag').removeClass('show');
filterTable.children('.no-results').hide();
} else {
filterTable.children('.filtered_tag').each(
function() {
$(this)[($(this).text().toLowerCase().indexOf(filterVal) > -1) ? "removeClass" : "addClass"]('filtered');
$(this)[($(this).text().toLowerCase().indexOf(filterVal) > -1) ? "addClass" : "removeClass"]('show');
}
);
var allHidden = filterTable.children('.filtered_tag.filtered').length >= filterTable.children('.filtered_tag').length;
filterTable.children('.no-results')[(allHidden) ? "show" : "hide"]();
}
var scroll = target.parents('.alltagscloud, .tags-block-module').find('.numbertag, .overview_tags');
if (scroll.length > 0){}
},
filterRecentTags: function(e) {
e.preventDefault();
e.stopPropagation();
if ( e.keyCode == 13 )
return;
var target = $(e.srcElement || e.currentTarget),
filterVal = target.val().toLowerCase(),
filterTable = $('.fav_tag .tags-block, #child-tag').find('.overview_tags li');
if ( e.keyCode == 27 )
target.val('');
if ( target.val().length < 1 ) {
filterTable.children('div').removeClass('filtered');
filterTable.children('.no-results').hide();
} else {
filterTable.children('div').each(
function() {
$(this)[($(this).children('.fil').text().toLowerCase().indexOf(filterVal) > -1) ? "removeClass" : "addClass"]('filtered');
}
);
var allHidden = filterTable.children('div.filtered').length >= filterTable.children('div').length;
filterTable.children('.no-results')[(allHidden) ? "show" : "hide"]();
}
var scroll = target.parents('.fav_tag .tags-block, #child-tag').find('.overview_tags');
if (scroll.length > 0){}
}
};
.numbertag {
border: 1px solid #dcdcdc;
padding: 10px;
}
.numbertag .no-results{
text-align: center;
line-height: 38px;
display: block;
}
.numbertag a.min_hide,
.finetags a.min_hide,
.overview_tags .min_hide {
display:none;
}
.numbertag a.min_hide.show,
.finetags a.min_hide.show,
.overview_tags .min_hide.show {
display:inline-block;
}
.numbertag a,
.finetags a{
box-sizing: border-box;
display: inline-block;
height: 27px;
border: 1px solid #d4d4d4;
border-bottom-color: #c7c7c7;
border-radius: 3px 0 0 3px;
box-shadow: 0 1px 3px rgba(0,0,0,.3);
background: #f8f9fa url(dаta:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAbCAIAAAAyOnIjAAAAGklEQVQImWP48+cPEwMDA9P///8pomEYjzoAdawnBT2E540AAAAASUVORK5CYII=) repeat-x 0 0;
color: #222;
font: bold 12px/25px 'Trebuchet MS',Tahoma,sans-serif;
text-decoration: none;
padding: 0;
position: relative;
margin:0 15px 11px 0;
}
.finetags a{
padding: 0 15px;
}
.numbertag a:hover,
.finetags a:hover{
background-image: url(dаta:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAbCAIAAAAyOnIjAAAAGUlEQVQImWP48OEDEwMDAxwzMjJSROMxBwA7vQMmCBtaoAAAAABJRU5ErkJggg==);
}
.numbertag a>span{
display: inline-block;
position: relative;
}
.numbertag .tagname{
padding: 0 15px;
}
.numbertag .tagcount{
top: -1px;
padding: 0 8px;
font: bold 11px/27px Tahoma;
color: #fff;
background: #2e8b57;
}
.tagcount:after,
.tagcount:before,
.finetags a:after,
.finetags a:before{
content: "";
display: block;
left: 100%;
top: 0;
position: absolute;
width: 5px;
height: 27px;
}
.finetags a:after{
margin-left: -4px;
}
.finetags a:before{
margin-left: 1px;
}
.tagcount:before{
left: -5px;
}
.tagcount:before,
.finetags a:before{
background: url(dаta:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAbCAYAAAC0s0UOAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAABMSURBVHjaYvz//z8DDOj3RPxnYGBgYGLAAoa0IIt+T4QFAwNDBgMDQwBcECoQj649AJuZGzDMZGBgmAFlBzAwMPAzMDAwMI6M8AQMAEmYDxqDXR59AAAAAElFTkSuQmCC) no-repeat;
}
.tagcount:after,
.finetags a:after{
width: 3px;
background: url(dаta:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAbCAYAAAC5rTVJAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAA3SURBVHjaYtTrDv/PAAVMDEgAK6fxYskKRga97vD/////Z/j//z9ERr8nooGBgYGBcdQ0VA5gAOToOqEO1wV1AAAAAElFTkSuQmCC) no-repeat;
}
.numbertag .filtered,
.tags-block-module .filtered {
display: none !important;
}
.tags-block-filter {margin:0 auto;display:block;}
•
Версия DLE: 13.x-14.x
•
Кодировка: utf-8
•
Автор: TeraMoune
Посетители, находящиеся в группе Гость, не могут оставлять комментарии к данной публикации.