codemotion (codemotion) wrote,
codemotion
codemotion

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

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

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

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

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

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

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.

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

Опубликовано на сайте ДвижКод.

Tags: javascript, Вопрос-Ответ
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 2 comments