“Бобик сдох” ©. Это я про свой виджет Active Commentators для Blogger. Спасибо Maljar‘у, а то я не заметил бы.
Короче … Blogger изменил формат выдачи фида для комментариев (в массив перестали передавать URL страницы профиля автора комментария) и как результат все виджеты на эту тему перестали работать. И не только мои.
Пришлось переделывать. Вот результат:
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 |
<!-- minimus Active Commentators Widget. START --> <div id="mx-ac"></div> <script type="text/javascript"> var maxList = 5; // Количество позиций в списке активных комментаторов var sFilter = "minimus"; // Фильтр комментаторов. Разделять запятыми БЕЗ ПРОБЕЛОВ! var baseUrl = "//minimusx.blogspot.com/"; // URL блога. var maxResults = 200; var commentsUrl = "feeds/comments/default?alt=json-in-script&callback=listComments&max-results=" + maxResults; 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.link[2].href; 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) { 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> <!-- minimus Active Commentators Widget. END --> |
Установка
Добавить гаджет “HTML/Javascript”, в качестве содержимого вставить код указанный выше.
Настройка
Настройка идентична настройке версии 1.0
var maxList = 5; – настройка позиций в списке комментаторов
var sFilter = “”; – фильтр. Если Вы не хотите фильтровать список оставьте как есть. Для фильтрации введите свой псевдоним, или псевдонимы всего коллектива авторов.
Например: var sFilter = “minimus”; или var sFilter = “minimus,Вася Пупкин,alconavt”; Псевдонимы разделяйте запятыми БЕЗ ПРОБЕЛОВ!
var baseUrl = “//minimusx.blogspot.com/”; – URL Вашего блога. Обратный слэш в конце –ОБЯЗАТЕЛЕН!
var maxResults = 500; – глубина сканирования. Если у Вас заведомо меньше 500 комментариев, поставьте меньшее число. Больше ставить нет смысла – Blogger больше не даст.
© 2009 – 2013, minimus. Все права защищены. При копировании и републикации статьи, ссылка на первоисточник обязательна.
Чего-то не фурычит? 🙁
А я к нему так привык…
4 раза переустанавливал, а толку нет.
А ты как копировал? Как текст или выделял и копировал? Как текст – надо над кодом кнопочку нажать, самую левую …
Да я в курсе как копировать. Только когда я копировал, код совсем другой был:
Я еще удивился – “странно выглядит”. Но в низу приписка про упаковку была, я и успокоился.
А теперь все замечательно. Спасибо!
В HTML всё работает (упакованный) чики-пуки, а вот в Blogger – хрен … 🙁
Еще один баг проявился: Не указывает ники коментаторов, как ссылки. Просто текст.
Это не bug – это суровая действительность … Читай текст статьи … До url’ов теперь не добраться … 🙁
Хм… Во я даю… 🙂
Тогда на последок еще один баг: я не получаю комменты на почту, хоть и подписан.
И хожу туда, сюда, потому как НАДО!!!
По поводу подписки – ты в листе есть. Может рассылка запаздывает – народу оказывается подписалось нехило 😉 . По поводу виджета: могу выводить ссылки на последний коммент каждого пользователя в списке …
Давай хотя бы так. Все лучше чем ничего. Главное чтоб ник, кол-во комментов и какая-никакая ссыль.
ЗЫ: Загляну через часок 🙂 а может и раньше…
Вот я нагнал волны…. Сам взял и ящик не тот указал. Представляю как мой теска врубиться в ситуацию пытается 🙂
И вроде не курил ничего….. Прости что ввел в заблуждение.
Готово! Ссылается на последний комментарий …
Респект тебе и Уважуха! Проще сказать – Большое Спасибо!
Придумаешь, что нибудь новенькое пиши.
Установил ваш код на блог ничего не получает не показывает последни коменты //games-morvo.blogspot.com/
Ещё раз скопируйте код! WordPress немного накуролесил с кодом при сохранении поста … 🙁