Используется на этом форуме. Мало ли кому пригодится...
Собственно правок не особо много. В Display.template.php
1. В самом начале подгружаем скриптик собственно яндекса (так как у меня поделиться можно только сообщениями в темах и грузить скрипт во все остальные части форума я особого смысла не вижу) и скриптик который будет динамично скармливать вышезаявленному скрипту яндекса содержимое сообщений.
Вместо
function template_main()
{
global $context, $settings, $options, $txt, $scripturl, $modSettings;
// Let them know, if their report was a success!
Пишем
function template_main()
{
global $context, $settings, $options, $txt, $scripturl, $modSettings;
//Our scripts for topic only
echo '<script type="text/javascript" src="//yandex.st/share/share.js" charset="utf-8"></script>
<script type="text/javascript">
function share(element_share)
{
var share_text = $('#msg_' element_share).html();
if (share_text.length >= 500) {
share_text = jQuery.trim(share_text).substring(0, 500) .trim(share_text) "...";
};
new Ya.share({element:'ya_share_' element_share,description:share_text,elementStyle:{'type':'none','quickServices': ["yaru","vkontakte","facebook","twitter","odnoklassniki","moimir","lj","friendfeed","moikrug","gplus","pinterest","surfingbird"]},});
}
</script>';
// Let them know, if their report was a success!
2. И перед дополнительными полями подписи делаем блок для парковки собственно яндексовой панельки, плюс запускаем вышеозначенный скриптик.
Вместо
// Are there any custom profile fields for above the signature?
if (!empty($message['member']['custom_fields']))
{
Пишем
//YaShare
echo '<script type="text/javascript">
share('.$message['id'].');
</script>
<div id="ya_share_'.$message['id'].'"></div>';
// Are there any custom profile fields for above the signature?
if (!empty($message['member']['custom_fields']))
{
3. Куда-нибудь подключаем jquery (в принципе можно переписать вышеозначенный код и без использования jquery... но лично мне оно не особо надо, так как jquery нужен для работы ещё нескольких используемых мной дополнений).
Собственно всё.
P.S. Плюс, в отличие от решения, предложенного яндексом по умолчанию, данный вариант полностью валиден.
P.P.S.
Исходно выкладывалось вот здесь, перенесено дабы не потерялось (всё-таки там тема достаточно активна, уползёт куда-нибудь... а решение может и пригодится).