В одной из ранее опубликованных статей, я представлял виджет Top Commentators, написанный на автором блога . Однако, являясь сторонником Открытых кодов (Open Source) и, справедливо полагая, что виджет, являющийся частью блога, работает быстрее (не обращается к "третьему" сервису), я написал свой виджет "Активные комментаторы" ("Active Commentators"), который и представляю в этой статье.
Виджет выводит список самых активных комментаторов Вашего блога, исключая анонимных комментаторов. Возможна фильтрация списка на предмет исключения из него автора или авторов блога. Количество позиций в списке так-же настраивается.
Установка
Устанавливается, как содержимое стандартного гаджета Blogger HTML/JavaScript.
Код виджета
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
<!-- Active Commentators Widget by minimus. START --> <div id="mx-ac"></div> <script type="text/javascript"> var maxList = 5; // Количество позиций в списке активных комментаторов var sFilter = ""; // Фильтр комментаторов. Разделять запятыми БЕЗ ПРОБЕЛОВ! var baseUrl = "http://minimusx.blogspot.com/"; // URL блога. var commentsUrl = "feeds/comments/default?alt=json-in-script&callback=listComments"; var aFilter = sFilter.split(","); function oCommentator (name, url, num) { this.name = name; this.url = url; this.num = num; } function doGetComments () { var container = document.getElementById("mx-ac"); var srcComm = document.createElement("script"); srcComm.type = "text/javascript"; srcComm.src = baseUrl + commentsUrl; container.appendChild(srcComm); } function isInFilter(str){ for (var i = 0; i < aFilter.length; i++) { if (str == aFilter[i]) return(true); } return(false); } var aCommentators = new Array(); function listComments (root) { var feed = root.feed; var entries = feed.entry || []; var maxNum = 0; for (var i = 0; i < entries.length; ++i) { var entry = entries[i]; var isInList = new Boolean(); var numInList = 0; if ((entry.author[0].name.$t != "Anonymous") & (!isInFilter(entry.author[0].name.$t))) { var name = entry.author[0].name.$t; var url = entry.author[0].uri.$t; if (aCommentators.length == 0) { aCommentators.push(new oCommentator(name, url, 1)); maxNum = 1; } else { for (var j = 0; j < aCommentators.length; j++) { isInList = false; if ((aCommentators[j].name == name) & (aCommentators[j].url == url)) { isInList = true; numInList = j; break; } } if (isInList) { aCommentators[numInList].num++; if (maxNum < aCommentators[numInList].num) maxNum = aCommentators[numInList].num; } else aCommentators.push(new oCommentator(name, url, 1)); } } } var container = document.getElementById("mx-ac"); var divFooter = document.createElement("div"); var aFooter = document.createElement("a"); divFooter.style.fontSize = "x-small"; aFooter.appendChild(document.createTextNode("minimus")); aFooter.href = "http://blogcoding.ru/"; divFooter.appendChild(document.createTextNode("Widget by ")); divFooter.appendChild(aFooter); var numList = 0; for (var i = maxNum; i > 0; i--) { for (var j = 0; j < aCommentators.length; j++) { if ((aCommentators[j].num == i)) { var br = document.createElement("br"); var a = document.createElement("a"); a.appendChild(document.createTextNode(aCommentators[j].name + " (" + aCommentators[j].num + ")")); a.href = aCommentators[j].url; container.appendChild(a); container.appendChild(br); numList++; } if (numList >= maxList) break; } if (numList >= maxList) break; } container.appendChild(divFooter); } doGetComments(); </script> <!-- Active Commentators Widget by minimus. END --> |
Настройка
var maxList = 5; – настройка позиций в списке комментаторов
var sFilter = ""; – фильтр. Если Вы не хотите фильтровать список оставьте как есть. Для фильтрации введите свой псевдоним, или псевдонимы всего коллектива авторов.
Например: var sFilter = "minimus"; или var sFilter = "minimus,Вася Пупкин,alconavt"; Псевдонимы разделяйте запятыми БЕЗ ПРОБЕЛОВ!
var baseUrl = "http://minimusx.blogspot.com/"; – URL Вашего блога. Обратный слэш в конце – ОБЯЗАТЕЛЕН!
© 2008 – 2011, minimus. Все права защищены. При копировании и републикации статьи, ссылка на первоисточник обязательна.
Популярность: 16%
Похожие статьи:

Приветствую!
Вот уже как дней 5 этот виджет перестал работать. Код стоит, а ни чего не показывает. В чем может быть дело?
Сейчас буду проверять. Возможно в Blogger опять что-нибудь изменили …
Добавлено в 0:01
Разобрался … Можно выкидывать виджет, т.к. смысл потерян. Теперь ссылка на профиль комментатора в массив не передаётся. Будем искать другие возможности. Конечно и этот можно переделать и использовать исключительно как информер …