Интересует будет ли какой либо модуль под эту тему?
http://vk.com/developers.php?o=-1&p=Comments
Сегодня мы открываем возможность для владельцев сайтов и их пользователей, которая положит начало целой череде интересных нововведений этой осени.
Теперь любой администратор сайта может за 5 минут установить универсальный виджет комментариев ВКонтакте, который позволит практически всем пользователям рунета комментировать материалы на его сайте без дополнительной регистрации.
Более важно, что к обсуждению статей на сайтах рунета будут присоединяться друзья комментатора, и информация о любом материале и его обсуждении начнет распространяться лавинообразно.
Хотя готовые системы комментирования статей уже существовали в интернете, ряд особенностей делает виджет комментариев ВКонтакте значительно более привлекательным как для владельцев сайтов, так и для пользователей.
Приглашаю Вас прочитать полное описание виджета.
В пункте Все преимущества виджета комментариев ВКонтакте я постарался раскрыть причины, по которым данное нововведение может положить начало революции в рунете. Большая часть этих преимуществ уникальна не только для российского, но и для мирового интернета.
Думаю, по этой причине ряд популярных российских интернет-СМИ уже устанавливает виджет комментариев на своих страницах. Надеюсь, что со временем мы сможем общаться без регистрации на большинстве русскоязычных сайтов.
В свое время нам удалось первыми на просторах рунета создать открытую платформу для разработки приложений, в результате чего в России и Украине возникла целая индустрия социальных игр.
Однако мы никак не помогали разработчикам сторонних сайтов, что долгое время тормозило развитие рунета. Сегодня мы хотим дать им максимум возможного, иногда даже выходя за рамки здравого смысла. Почему?
ВКонтакте создает половину трафика рунета, но это никогда не было для нас самоцелью. Наша цель состоит в том, чтобы ускорить процессы распространения информации, тем самым внеся некоторый вклад в развитие нашего общества.
Именно эта цель мотивирует нас активно развивать ВКонтакте последние месяцы. И чем быстрее будет распространяться информация об интересных сайтах, статьях и обсуждениях, тем ближе мы будем к нашей цели.
В контакте с Вами,
Павел Дуров
Комментарии
А больше всего интересует куда именно вставить весь этот код, дабы и в story и в page и votes были комментарии от Вконтакте?
<script type="text/javascript" src="http://vkontakte.ru/js/api/openapi.js?9" charset="windows-1251"></script>
<script type="text/javascript">
VK.init({apiId: ВАШ ID приложения, 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: "496"});
</script>
похоже на шутку
не шутка....я все это вставил в node.tpl.php
но оно же не будет отображаться везде и в story и votes?!!
Не смотрел подробности, но поступил бы так (в самом простом варианте интеграции их комментов):
1. Отключил стандартное комментирование материалов друпала.
2. Написал бы небольшой модуль, который в хуке ноде_апи выводил бы вот этот JS (прицеплял бы к тексту).
Тут конечно возможны разные варианты, включая настройки в админке, чтобы можно было выбирать к какому типа контента какие комменты цеплять - стандартные или вк. Тогда и в реализации хука ноде_апи делать дополнительную проверку на выводимый тип контента.
а тупо создать страницу и впихнуть этот код - не заработает?? иль я чет не понимаю, хотя лучше конечн делать отдельным модулем...
Извиняюсь но в коддинге не силен, куда можно направить запрос о написание подобного модуля?
Не знаете ли вы автор Vk open api (модуль для друпла) русский ?)
как вариант сделать tpl файлы для story и votes
но для организации прав скорее всего потребуется модуль
особенно актуально будет для сайтов ориентирующихся на контакт
ну что, у кого-то получилось?
вставил все в node никакого эфекта...
А что такое "ВАШ_API_ID", где его узнать? Получилось ли подключить этот сервис?
"ВАШ АПИ АЙДИ" - это айди приложения вконтакте (вы его создаете сами как website)там очень легко...
Этот виджет можно использовать как замену стандартного модуля комментариев.. Не оставлять же 2 поля комментирования?
Но при таком раскладе, мы запрещаем оставлять комментарии тем, кто не зарегистрирован "вконтакте". Хотя можно javascript написать, который будет позволять выбрать, каким способом оставить комментарий
А у меня получилось! но не до конца.
Чтобы был виден кусок с комментариями контакта:
1) сначала "подружил" сайт с контактом (http://www.drupal.ru/node/45088, заодно и удобная форма регистрации);
2) потом вот с этой (!) страницы: http://vkontakte.ru/developers.php?o=-1&p=%C4%EE%EA%F3%EC%E5%ED%F2%E0%F6...
сделал следующее:
"1. В тег страницы Вашего сайта необходимо добавить следующий код:..."
- это вставил в новый блок, с форматом ввода PHP
А это ("2. На странице сайта необходимо добавить следующий блок кода внутри:") и Пример использования (не забудьте там 111 поменять на ID приложения) воткнул на желаемые страницы (тут http://studprofcom.com/node/650 и тут http://studprofcom.com/node/168). Вроде работает.
Но есть косяки:
- почему-то коммент на обеих страницах сделался одинаковый (т.е. блок для комментов на разных страницах один и тот же...)
Что с этим делать? Неужели для каждой страницы нужно новое приложение делать?
Жду вашей проверки и помощи
Я сделал. Вроде работает. Тот код, который надо в запихивать я не стал, т.к. установлена авторизация через контакт и по логике он туда уже добавляется.
А потом в нужное место влепил:
<script type="text/javascript">
window.onload = function () {
VK.init({apiId: код-приложения, onlyWidgets: true});
VK.Widgets.Comments('vk_comments', {width: 500, limit: 15});
}
</script>
Там в 5й строчке еще в конце какие-то 321 вписаны были, я их убрал. Скорее всего это дополнительный идентификатор страницы. AlexV, может это из-за них у тебя одинаковые получились? Т.к. у меня на разных страницах свои комментарии, раздельные.
А нужное место - это где?
Куда впихнули то?
Я блок создал отдельный. И его вывел.
Только сейчас нашел косяк: у меня сайт с www и без работает, так если оставить комментарий на странице без www, то на этой же странице с www его не будет...
Тут, я думаю, надо идентификатор страницы тогда использовать. + он мне нужен будет, т.к. у материала несколько вкладок и чтоб Контакт не считал их разными страницами. Только вопрос, как в блоке вывести id ноды?
<?php print $node->nid; ?>
- че-то не хочет ничего выводить. Что нужно написать, чтобы скрипт выводил просто, например, 42?
В общем, не знаю, насколько это все правильно, но блок у меня получился таким:
if (arg(0) == 'node' && is_numeric(arg(1))){
$nid = arg(1);
}
?>
<div id="vk_comments"> </div>
<script type="text/javascript">
window.onload = function () {
VK.init({apiId: КОД, onlyWidgets: true});
VK.Widgets.Comments('vk_comments', {width: 280, limit: 10}, <?php print $nid; ?>);
}
</script>
Посмотрите, кто разбирается в этом, правильно ли так получать id материала? Но вроде работает. Отображается сбоку на странице самого материала и отдельной страницы комментариев (модуль Talk).
Спасибо, 321 стер - работает. А с www/ не www может разработчики ВК исправят...
Ну с www и без решилось способом, который я выше написал.
А не лучше ли будет настроить переадресацию с WWW на без WWW? Ну или наоборот.
а оповещения на почту о новых комментариях возможно как-нибудь получить? как-нибудь отследить это событие?
я вот попробовал дописать в скрипт виджета функцию:
<script type="text/javascript">
VK.Widgets.Comments("vk_comments", {limit: 10, width: "496", attach: "*", onChange: saveComment, autoPublish: 0});
function saveComment(num, last_comment, date, sign){
$.post("http://www.mysite.ru/sites/all/themes/moyatema/mailru.php",{
type: 'vkontakte',
num: num,
last_comment: last_comment,
date: date,
sign: sign,
});
}
</script>
А уже в этом mailru.php - отправку письма на почту:
<?php
$to
= "mymail@mail.ru";$subject = "комент от посетителя сайта";
$message = "пришел комент";
mail ($to,$subject,$message) or print "Не могу отправить письмо."; ?>
но что-то не работает, не отправляет письмо.. как-нибудь можно "поймать" событие добавления нового коммента и исполнять после него php-код?
Ну зачем так сложно?
Читай тут http://rxb.name/blog/vypolnit-deystvie-posle-layka-28, способ аналогичный.
Я хочу написать модуль, который текст коммента сохранять в БД будет
уф.
сидел сейчас, колдовал над вашим способом, вроде переделал для моего случая (у вас ведь лайк, а не коммент, и всплывает див, а не отправляется письмо)
Получилось так:
<script type="text/javascript">
VK.Widgets.Comments("vk_comments", {limit: 10, width: "496", attach: "*"});
</script>
<script type="text/javascript">
VK.Observer.subscribe('widgets.comments.commented',function(){
$.post("http://www.moysait.ru/sites/all/themes/moyatema/mailru.php");
}
);
</script>
я только не совсем уверен на счет "widgets.comments.commented", это я написал по аналогии с вашим "widgets.like.liked"
и то ли из-за этого, то ли из-за чего еще, но что-то не работает, не отправляет письмо, не обращается к файлу mailru.php ((
Битва экстрасенсов на ТНТ, если вы хотите колдовать
Здесь программирование и мануалы.
Рабочий пример будет примерно такой:
$.post("/sites/all/themes/moyatema/mailru.php");
}
);
Так же, напоминаю, о существовании Firebug, позволяет делать без магии многие вещи
RxB, спасибо!
ну так, я над мануалами и колдовал 2 часа
читал это http://www.phpsql.ru/jquery-post-function
и это: http://vk.com/developers.php?oid=-1&p=VK.Observer
и это
ну и ваш сайт, прежде, чем сделать.
кстати, вконтакте я сколько искал, но не нашел названий событий, которые нужно подставлять в Observer. Конкретно new_comment который вы мне сейчас подсказали.
Поэтому вот чтение не до конца помогло, пришлось колодовать. )
А этот Firebug -насколько я где-то читал, что в хроме если делать "просмотр кода элемента", то выходит окошко с похожим на Firebug функционалом. Уж не знаю, насколько это правда, но найти лишний отступ в цсс почти всегда помогает.
А вот помочь написать jQuery код - и не думал, что он такое может
http://vk.com/developers.php?o=-1&p=%C4%EE%EA%F3%EC%E5%ED%F2%E0%F6%E8%FF...
События
ох, то есть я смотря в книгу видел фигу? .. печально, надо внимательней быть.
И, к сожалению, но код все равно не работает, даже предложенный вами.
я пробовал и относительный, как вы делали, и абсолютный путь к файлу mailru.php, пробовал менять $.post на $.get - но все без толку - не хочет он работать..
Ок, напишу аналогичное про комментарии
а почему все-таки не работает, не понятно?
Хм, и сейчас посмотрел вашу тестовую страницу http://rxb.name/examples/likes/
, понажимал - и что-то не всплывает у меня слой ( ни в хроме, ни в мозиле..
я с горя даже в ие попробовал, тк он ошибки javascript показывает, не то, что остальные.
и так тоже не работает и выдает ошибку:
Сообщение: Предполагается наличие объекта
Строка: 73
Символ: 5
Код: 0
URI-код: http://rxb.name/examples/likes/
напоминаю - я сейчас говорю о вашей странице, а не о своем сайте. тк если ваш пример не работает, то мой и подавно не будет )
Это я недавно с путями накосячил.
Теперь всё ок.
У меня работает
о, да, теперь в файрфоксе и хроме заработало - появляется фраза.
а ие что-то совсем сломался - закрывается при переходе на любой сайт )
а что именно вы исправили, может и мне попробовать?
а то у меня оповещение о комментариях по-прежнему не работает..
Я пути к JS-скриптам поправил
ясно.. может, и мне поправить надо.
поставил сейчас этот ваш Firebug, пытался отследить ошибки..
тестировал даже не мою отсправку письма, а скопировал ваш код с новым слоем, чтобы так же появлялся текст, как у вас. только не при лайке, а при новом коменте.
и увидел, что оказывается у меня выдает ошибки, во-первых:
this.$exposed_form.once(jQuery.proxy(this.attachExposedFormAjax, this));
ajax_v...?m9vs2g (строка 61)
но это вроде не относится к теме. и вторая, более важная:
VK.Widgets.loading(obj, false);
openapi.js?49 (строка 1342)
то есть, как я понимаю, он не определяет мой виджет. хотя, блок комментариев показывает, можно оставить и они запомнятся на странице. То есть вообще, соединение с сервером вконтакте есть - куда-то же они грузятся и запоминаются.
А когда оставляешь новый комментарий, то выходит еще ошибка:
VK.Observer.publish.apply(VK.Observer, args);
openapi.js?49 (строка 1339)
то есть обсервер не определен.
видимо из-за этого, код у меня не работает - текст не появляется, слой остается скрытым..
а почему не определен - непонятно. ведь я зарегистрировался в виджетахвконтакте, новые коменты появляются, а у vk.widgets почему-то не определен..
ПОдскажите куда вставить код чтоб он отображался после основных комментариев!
Сейчас стоит в Блоке в Содержимом..