Кнопки социальных сетей в каждом комментарии

ottokrauz

Проверенные
Сообщения
42
Реакции
3
Баллы
5,510
Захотел поставить кнопки соц. сетей в каждый комментарий пользователя, что была возможность поделиться отдельным комментарием, а не всей страницей.
в шаблон message, вставил код:

<script type="text/javascript">(function() {
if (window.pluso)if (typeof window.pluso.start == "function") return;
if (window.ifpluso==undefined) { window.ifpluso = 1;
var d = document, s = d.createElement('script'), g = 'getElementsByTagName';
s.type = 'text/javascript'; s.charset='UTF-8'; s.async = true;
s.src = ('https:' == window.location.protocol ? 'https' : 'http') + '://share.pluso.ru/pluso-like.js';
var h=d[g]('body')[0];
h.appendChild(s);
}})();</script>
<div class="pluso" data-background="transparent" data-options="small,square,line,horizontal,counter,theme=08" data-services="facebook,twitter,google,vkontakte,odnoklassniki"></div>

Кнопки появились, все как хотел. Но при активации кнопки, можно поделиться не конкретным комментарием, а только первым на странице.
Как сделать, что бы когда нажимаю кнопки в конкретном комментарии делиться только им, и не каким другим?
Подскажите.
 
зачем мне комментарии от соц сетей? мне нужно что бы текст комментария при нажатии кнопки переносился в соц сеть. Тут тоже на странице, можно поделиться только первым постом, и не каким другим. Если будет решение этого вопроса в каком другом коменте ( скажем восьмом), то отдельно только решением поделится нельзя.
 
Последнее редактирование:
Это нормально. Для определения поста нужна специальная переменная, которую в вышеуказанный код не впихнуть...

Код:
<a href="{xen:link threads/post-permalink, $thread, 'post={$post}'}" title="{xen:phrase permalink}" class="item muted postNumber hashPermalink OverlayTrigger" data-href="{xen:link posts/permalink, $post}">#{xen:calc '{$post.position} + 1'}</a>
 
а в этот код
<div class="share42init"></div>
<script type="text/javascript" src=" "></script>

можно впихнуть?

или в этот

<script type="text/javascript" charset="UTF-8" async="async" src=" "></script>
<div id="goodshare" themecolor="color" themestyle="roundedge" socialnetworks="vkontakte,ok,facebook,twitter,googleplus" iconsize="24" buttonfixed="none"></div>
 
Это нормально. Для определения поста нужна специальная переменная, которую в вышеуказанный код не впихнуть...
Как тогда поступить, есть варианты?

Одной переменной не обойтись, я её не нашёл. Движок форума генерит уже готовую конструкцию ссылки, в которую, если включён ЧПУ, входит название темы. Если она на кириллице, то будет абракадабра. Если на латинице, то длинная и может быть ломанная, так как иногда, английская, буква "е" может не распознаваться нормально. Кроме url включены параметры тегов, css-стиль. А нам нужна "чисто относительная ссылка". Поэтому, решение такое:
Код:
data-url="http://вашсайт.ру/threads/{$thread.thread_id}/page-{$page}#post-{$post.post_id}" data-title="{$thread.title}"

Структура:
  • data-url - ссылка на сообщение;
  • data-title - название темы;
  • data-description - описание темы;
  • data-image - ссылка на аватарку автора сообщения.

Переменные для URL - data-url:
  • {$thread.thread_id} - номер темы (только число);
  • page-{$page} - номер страницы в теме;
  • #post-{$post.post_id} - номер сообщения.

Дополнительные параметры, необходимые для соцкнопок. Без них никак:
  • {$thread.title} - название темы;
  • {xen:helper bodyText, {xen:helper snippet, $post.message, 150, {xen:array 'stripQuote=1'}}} - выборка текста из сообщения, количество знаков - 150, вырезка ВВ-кода.


а в этот код
<div class="share42init"></div>
<script type="text/javascript" src=" "></script>

Решение:
Код:
<div class="share42init" data-url="http://ВашСайт.ру/threads/{$thread.thread_id}/page-{$page}#post-{$post.post_id}" data-title="{$thread.title}" data-description="{xen:helper bodyText, {xen:helper snippet, $post.message, 150, {xen:array 'stripQuote=1'}}}" data-path="http://ВашСайт.ру/share42/"></div>

<script type="text/javascript" src=" "></script>
Нужно разместить в шапке или в футере, чтобы не генерить его для каждого сообщения.

Решение для //share.pluso.ru/
Хотя я проверял, но точно не уверен, работает или нет. Проверяйте:

Код:
<div class="pluso" data-background="transparent" data-options="small,square,line,horizontal,counter,theme=08" data-services="facebook,twitter,google,vkontakte,odnoklassniki" data-url="http://ВашСайт.ру/threads/{$thread.thread_id}/page-{$page}#post-{$post.post_id}" data-title="{$thread.title}" data-description="{xen:helper bodyText, {xen:helper snippet, $post.message, 150, {xen:array 'stripQuote=1'}}}"></div>

Mirovinger, можете написать условие для проверки на наличие не пустой переменной {$page} ? Чтобы добавлять page-{$page} когда есть страницы, а когда их нет, то не выводить...
 
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу