В одной из ранее опубликованных статей, я представлял виджет Top Commentators, написанный на YAHOO Pipes автором блога Assess My Blog. Однако, являясь сторонником Открытых кодов (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 = "//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 = "//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 = "//minimusx.blogspot.com/"; – URL Вашего блога. Обратный слэш в конце – ОБЯЗАТЕЛЕН!
© 2008 – 2013, minimus. Все права защищены. При копировании и републикации статьи, ссылка на первоисточник обязательна.
Приветствую!
Вот уже как дней 5 этот виджет перестал работать. Код стоит, а ни чего не показывает. В чем может быть дело?
Сейчас буду проверять. Возможно в Blogger опять что-нибудь изменили … 🙁
Добавлено в 0:01
Разобрался … Можно выкидывать виджет, т.к. смысл потерян. Теперь ссылка на профиль комментатора в массив не передаётся. Будем искать другие возможности. Конечно и этот можно переделать и использовать исключительно как информер …