• доступно о веб-разработке
11.05.2013 JavaScript, Вопрос-Ответ

Перенос комментариев ВКонтакте

Александр Наумов спрашивает, как можно перенести комментарии ВКонтакте, если адрес их страницы сменился. Честно говоря, конкретно этой задачей мне не приходилось заниматься, но определённые мысли по этому поводу есть. Давайте попробуем разобраться вместе. Заодно вы узнаете логику моего мышления в таких случаях.

Собственно, сам вопрос с исходной формулировке:

Куда должен заглянуть разработчик первым делом?

Конечно, в документацию.

http://vk.com/dev/Comments

Обращаем внимание, что стандартные настройки в форме комментирования достаточно скупы.

Поэтому переходим по ссылке с надписью «Перейти к подробной документации виджета»:

http://vk.com/dev/widget_comments

Нам нужно что-то, чтобы привязаться к конкретной странице.

Ага, нашёл!

Вот этот параметр:

page_id Идентификатор страницы на Вашем сайте. Произвольная строка до 128 символов, либо число. Используется в том случае, если у одной и той же статьи может быть несколько адресов, а также на динамических сайтах, у которых меняется только хеш. Значение по умолчанию равно контрольной сумме от location.href.

Всё ясно.

Если мы изначально зададим в настройках параметр, то можем отвязаться от URI страницы:

<!-- Put this script tag to the <head> of your page -->
<script type="text/javascript" src="//vk.com/js/api/openapi.js?95"></script>

<script type="text/javascript">
  VK.init({apiId: 1950678, onlyWidgets: true});
</script>
<!-- Put this div tag to the place, where the Comments block will be -->
<div id="vk_comments"></div>
<script type="text/javascript">
VK.Widgets.Comments("vk_comments", {limit: 10, width: "520", attach: "*", 'page_id':<?php the_ID()?>});
</script>

В WordPress, например, мы можем таким образом отвязать комментарии от URI или того, что называется в этой системе slug.

Но что делать Александру, если он не пользуется WordPress на конкретном проекте и не предусмотрел данный параметр с самого начала?

Тогда надо обратить внимание на следующую фразу:

Значение по умолчанию равно контрольной сумме от location.href

Значит значение, всё-таки, есть.

Что сделать в этом случае? Добавить в базу данных в таблицу с постами поле vk_hash. В него при первом просмотре записывать хэш поля location.href, и уже его использовать в качестве значения для page_id.

После этого адрес страницы можно менять как угодно.

Поделиться

Комментарии Правила дискуссии

Читайте ранее:
Мозговой штурм

Друзья, хорошие новости. Удаётся найти свободное время для продолжения работы над «ДвижКодом». В связи с этим проекту необходимо внимание каждого...

Закрыть