Расширяем возможности служебных строк комментариев

AnonimousПримерно три месяца назад я написал статью "'Анонимный комментирует...' меняем на...", где рассказал, как заменить некоторые стандартные наименования в служебных строках комментариев. С тех пор движок Blogger (Blogspot) претерпел значительные изменения - к прочим его фишкам добавилась новая - иерархический формат комментариев. Увы, код, предложенный в той статье, для этого формата комментариев не работает.

В этой статье я хочу рассказать, как для иерархического формата комментариев задействовать автозамену и добавить еще кое-какие полезные опции.

Для начала, немного информации, какие конкретно я ставлю задачи! Во-первых я вновь хочу произвести замену наименования комментаторов, пожелавших остаться неизвестными, с "Анонимный" на "Гость". Во-вторых, мне нравилось в заголовке комментария видеть "Гость пишет...", да или просто, "Кто-то там пишет...", а не как сейчас - голый ник. В третьих, меня безумно раздражает страшный черный кружок рядом с ником автора блога, и я хочу от него избавиться. В четвертых, я хочу добавить возможность всего в один клик перейти от заголовка любого комментария к тексту статьи. Все это мы сегодня и реализуем!

Правка служебных строк комментариев

Откройте редактор шаблона (Дизайн->Изменить HTML) и добавьте перед закрывающим тэгом </head> следующий код:
<script src='http://code.jquery.com/jquery.min.js' type='text/javascript'/>
* Если перед тэгом </head> уже имеется ссылка на скрипт jquery.min.js, то дублировать ее не стоит. Достаточно одного указания на библиотеку jQuery.

Теперь найдите открывающий тэг <div class='post hentry'> и после него разместите это:
<a name='post-title'/>
А перед закрывающим тэгом </body> добавьте следующий код:
<script type='text/javascript'>
    if(document.getElementsByClassName == undefined) {
      var authors = $('#comments').find('.user')
      var dates = $('#comments').find('.datetime')
    } else {
      var authors = document.getElementById('comments').getElementsByClassName('user')
      var dates = document.getElementById('comments').getElementsByClassName('datetime')
    }
    for (key in authors) {
      var author = authors[key]
      if (author.innerHTML) {
        author.innerHTML = author.innerHTML.replace(/Анонимный/g, 'Гость') + ' пишет... '
      }
    }
    for (key in dates) {
      var date = dates[key]
      if (date.innerHTML) {
        date.innerHTML += "&nbsp; <a href='#post-title'><img align='baseline' height='13' src='https://lh6.googleusercontent.com/-v4ZiWdP4FTo/TyMkadDh52I/AAAAAAAAAX8/qikT8ixaWbI/s13/st29-2.gif' title='К тексту статьи' width='13'/></a>"
      }
    }
</script>
Обратите внимания на специально подсвеченную 12-ю строку. Именно в ней производится замена "Анонимный" на "Гость" и добавляется хвостик "пишет...". Совсем не обязательно использовать именно мой вариант написания. Можно ведь назвать комментатора, пожелавшего остаться неизвестным, не только "Анонимный" или "Гость", но и, к примеру, "Читатель". А вместо "пишет...", использовать "сказал(а):", "говорит:", или "считает...".

Подсвеченные строки 4, 7 и с 15 по 20, а также второй блок кода (тот который с "a name=...") отвечают за вывод стрелочки со ссылкой на текст статьи. Если вы не хотите использовать эту конструкцию, то просто удалите ее из кода.

Для того, чтобы избавиться от страшненького черного кружочка с карандашиком внутри, что соседствует с ником автора блога, удалите следующий код из шаблона:
.comments .comments-content .icon.blog-author {
  background-repeat: no-repeat;
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEgAACxIB0t1+/AAAAAd0SU1FB9sLFwMeCjjhcOMAAAD+SURBVDjLtZSvTgNBEIe/WRRnm3U8RC1neQdsm1zSBIU9VVF1FkUguQQsD9ITmD7ECZIJSE4OZo9stoVjC/zc7ky+zH9hXwVwDpTAWWLrgS3QAe8AZgaAJI5zYAmc8r0G4AHYHQKVwII8PZrZFsBFkeRCABYiMh9BRUhnSkPTNCtVXYXURi1FpBDgArj8QU1eVXUzfnjv7yP7kwu1mYrkWlU33vs1QNu2qU8pwN0UpKoqokjWwCztrMuBhEhmh8bD5UDqur75asbcX0BGUB9/HAMB+r32hznJgXy2v0sGLBcyAJ1EK3LFcbo1s91JeLwAbwGYu7TP/3ZGfnXYPgAVNngtqatUNgAAAABJRU5ErkJggg==);
} 
Не всё поняли или по мере прочтения статьи появились дополнительные вопросы? Пишите - все решим :-)
Данный виджет разработан для иерархического формата комментариев. О том, как воплотить нечто подобное для линейного формата, рекомендую почитать в статье "'Анонимный комментирует...' меняем на...".

Комментариев: 6

  1. А как еще у иерархического формата сделать рамку с закругленными краями?

    ОтветитьУдалить
    Ответы
    1. В двух словах не объяснишь. Об этом пойдет речь в будущих статьях.

      Удалить
  2. Спасибо за подробную статью :)
    Кстати, при вставке кода "стрелочки с ссылкой на текст статьи" шаблон не сохранялся, вылазила ошибка "The entity “nbsp” was referenced, but not declared". Сделал в коде замену   на   И все заработало)

    ОтветитьУдалить
    Ответы
    1. Комментарии Blogger не дадут вам просто так опубликовать что-то между треугольными скобками < и >. Либо подменяйте их квадратными, либо пишите их в виде кода символов. В противном случае представленный Вами код не будет опубликован, как это случилось выше.

      Удалить
    2. А что нужно сделать, дабы такое счастье не всплывало?
      Ошибка есть, как решить - не понял.

      Удалить

Хотите подписать свой комментарий, но у вас нет аккаунта? Выберите в выпадающем списке Имя/URL.
Вы сможете вписать свои имя или ник. Поле для указания URL можно оставить пустым.

Тэги, допустимые в комментариях