Кнопки: В заметки(контакт), В мой мир, Мне нравится(Like), В твиттер под топиком(инструкция) - Плагин!

Только что прилепил на одном своем проекте и делюсь с вами.
Хотелось именно, чтобы отображались цифры, нажавших на кнопки, а не просто кнопки.

Итак, в файл header.tpl вашего шаблона необходимо добавить до тега
</head>

следующий код
{literal}<script type="text/javascript" src="http://vkontakte.ru/js/api/share.js?5" charset="windows-1251"></script>
{/literal}


В файле topic.tpl вашего шаблона необходимо добавить после такого или подобного кода
<ul class="voting {if $oVote || ($oUserCurrent && $oTopic->getUserId()==$oUserCurrent->getId())|| strtotime($oTopic->getDateAdd())<$smarty.now-$oConfig->GetValue('acl.vote.topic.limit_time')}{if $oTopic->getRating()>0}positive{elseif $oTopic->getRating()<0}negative{/if}{/if} {if !$oUserCurrent || $oTopic->getUserId()==$oUserCurrent->getId() || strtotime($oTopic->getDateAdd())<$smarty.now-$oConfig->GetValue('acl.vote.topic.limit_time')}guest{/if} {if $oVote} voted {if $oVote->getDirection()>0}plus{elseif $oVote->getDirection()<0}minus{/if}{/if}">
					<li class="plus"><a href="#" onclick="lsVote.vote({$oTopic->getId()},this,1,'topic'); return false;"></a></li>
					<li class="total" title="{$aLang.topic_vote_count}: {$oTopic->getCountVote()}">{if $oVote || ($oUserCurrent && $oTopic->getUserId()==$oUserCurrent->getId()) || strtotime($oTopic->getDateAdd())<$smarty.now-$oConfig->GetValue('acl.vote.topic.limit_time')} {if $oTopic->getRating()>0}+{/if}{$oTopic->getRating()} {else} <a href="#" onclick="lsVote.vote({$oTopic->getId()},this,0,'topic'); return false;">—</a> {/if}</li>
					<li class="minus"><a href="#" onclick="lsVote.vote({$oTopic->getId()},this,-1,'topic'); return false;"></a></li>
					<li class="date">{date_format date=$oTopic->getDateAdd()}</li>
					{if $oTopic->getType()=='link'}
						<li class="link"><a href="{router page='link'}go/{$oTopic->getId()}/" title="{$aLang.topic_link_count_jump}: {$oTopic->getLinkCountJump()}">{$oTopic->getLinkUrl(true)}</a></li>						
					{/if}
					<li class="author"><a href="{$oUser->getUserWebPath()}">{$oUser->getLogin()}</a></li>
					{hook run='topic_show_info' topic=$oTopic}
			</ul>	


добавить следующий код
Спасибо, что добавили мой пост себе =)

<div style="float: left;">
{literal}<script type="text/javascript"><!--  
document.write(VK.Share.button(false,{type: "round", text: "В Контакт"})); 
--></script>{/literal}
</div>
<div style="float: left; padding-left: 5px;">
<iframe src="http://www.facebook.com/plugins/like.php?href={$oTopic->getUrl()}&layout=button_count&show_faces=false&width=100&action=like&font=arial&colorscheme=light&height=20" scrolling="no"
 frameborder="0" style="border:none; overflow:hidden; width:100px; height:20px;" allowTransparency="true"></iframe>  
</div>
<div style="float: left; padding-left: 5px;" >
<a class="mrc__share" type="button_count" href="http://connect.mail.ru/share?share_url={$oTopic->getUrl()}">В Мой Мир</a><script src="http://cdn.connect.mail.ru/js/share/2/share.js" type="text/javascript"></script> 
</div>
<div style="float: left;padding-left: 5px; ">
{literal}<script type="text/javascript">
tweetmeme_style = 'compact';
</script>
<script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script>{/literal}
</div>


зы: работает на движке 0.4.1
зыы: так чего там с авторизацией на этой версии через яндекс?+)
у меня пишет такую ошибку
return_to u'http://***.nimoff.ru/login/openid/enter/finish/?janrain_nonce=2010-06-30T21%3A13%3A44ZOpgvPn' not under trust_root u'http://***.nimoff.ru:81/'

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

UPD
пользователь creo рекомендует русские тексты вставлять в языковой файл, чтобы не полетела кодировка
вот инструкция от него. плюсуйте автора+)
templates/language/russian.php
Почти в любом месте пишем:
'button_vkontakte' => 'В контакт',
...
'button_moimir' => 'В Мой мир',

И аналогично все русские тексты, присвоив им какое-либо имя.
А в самом шаблоне вставляем например так:
<a class="mrc__share" type="button_count" href="http://connect.mail.ru/share?share_url={$oTopic->getUrl()}">{$aLang.button_moimir}</a>


UPD2
Всем нормальным людям здесь спасибо сами знаете за что+)
Кстати, от себя могу порекомендовать плагин от фейсбука, который будет показывать кто чего «лайкнул» на вашем сайте — Activity Feed

чтобы вставить в сайдбар нужно создать файл facebook.txt с кодом плагина
код можно получить тут developers.facebook.com/plugins?footer=3

далее положить этот файл в папку plugins/aceblockmanager/config/blocks
при условии, что у вас установлен плагин aceblockmanager (спасибо avadim за это чудо)

далее в файле config.php (plugins/aceblockmanager/config)
добавляем такой код (еще один блок template)
$config['blocks'][]=array(
        'block'=>'template', // название блока
        'position'=>'right', // позиционирование блока
        'priority'=>0,
        'params'=>array(
            'plugin'=>'aceblockmanager', //
            'title'=>'Кому, что понравилось',
            'file'=>'facebook.txt',
            ),
        //'exclude'=>array('admin', 'settings', 'profile', 'talk', 'people', 'office'),
);

Выглядеть на сайте это будет как-то так


UPD3
Инструкция от wangwei — как вставить такие кнопки на статические страницы (плюсуйте автора)
Спасибо, хорошая инструкция. Совет: если вы хотите поставить эти кнопки на статические страницы, то в шаблоне actions/ActionPage/page.tpl код нужно вставлять такой (вставлять до {include file=footer.tpl}):
<p>Поделитесь страничкой с друзьями:</p>
<div style="float: left;">
{literal}<script type="text/javascript"><!--
document.write(VK.Share.button(false,{type: "round", text: "В Контакт"}));
--></script>{/literal}
</div>
<div style="float: left; padding-left: 5px;">
<iframe src="http://www.facebook.com/plugins/like.php?href=http://{$smarty.server.SERVER_NAME}/page/{$oPage->getUrlFull()}/&layout=button_count&show_faces=false&width=100&action=like&font=arial&colorscheme=light&height=20" scrolling="no"
 frameborder="0" style="border:none; overflow:hidden; width:100px; height:20px;" allowTransparency="true"></iframe>
</div>
<div style="float: left; padding-left: 5px;" >
<a class="mrc__share" type="button_count" href="http://connect.mail.ru/share?share_url=http://{$smarty.server.SERVER_NAME}/page/{$oPage->getUrlFull()}/">В Мой Мир</a><script src="http://cdn.connect.mail.ru/js/share/2/share.js" type="text/javascript"></script>
</div>
<div style="float: left;padding-left: 5px; ">
{literal}<script type="text/javascript">
tweetmeme_style = 'compact';
</script>
<script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script>{/literal}
</div>


UPD4
Пользователь gran упаковал все это добро в плагин.
Спасибо ему.
Плагин тут и работает только на версии 0.4.2

82 комментария

avatar
Отличная вещь, так коротко и просто! Еще в плагин упаковать, цены не будет! =)
avatar
всегда пжта
я всегда про себя ругаюсь, что здесь очень мало толковых инструкций рассчитанных на таких, как я, нубов в кодинге,
поэтому в плагин запихнуть — эт не ко мне+)

а ведь некоторые вещи реально достаточно простые

мне бы про авторизацию кто поведал
и как перевести шаблон live на 0.4.1 =)
avatar
лови плюс сюда и в карму) молодец!
avatar
Спасибо за подобную инструкцию!
avatar
поставил.
вот такие символы пошли
avatar
Сохрани php-файл в формате UTF-8(без BOM), предварительно переписав русские слова заново
avatar
помогло, спасибо!
avatar
а эти кнопки работают на шаблоне для аля вордпресс
avatar
не пробовал
avatar
круто
сделал хорошо
рейтинг -3

всем спасибо
avatar
Хм, тоже удивлен, интересно было бы услышать аргументы почему минусуют.
Может кто то хотел сделать тоже самое, но ты его опередил…
avatar
видимо кого-то сильно напрягла моя скромная реклама моего проекта в профиле
дык, а нафига профиль тада еще нужен

в общем, я в очередной раз убедился, что сюда с добром лучше не приходить
буду у себя в жж писать про мелочи для livestreet
кому надо, тот найдет
avatar
Думаю топик носит уже обратных характер, за один день попасть в 3й десяток лучших людей лайвстрит это уже что то.
Желаю всем также вносить свой вклад в развитие проекта и быть заслуженно в плюсе! =)
avatar
патамушта неплагином, например =)
avatar
дареному коню в зубы не смотрят. Так всю жизнь будете сидеть и жаловаться на то, что всё вокруг плохо.
А просто надо уметь свою задницу поднимать или хотя бы нормально говорить спасибо тем, кто это делает за вас.

Вместо этого комментария ты мог, к примеру, сделать плагин. Хотя нафиг тут плагин — ума не приложу.
avatar
Плагин тут нужен для того чтобы людям не очень опытным в один клик все поставить, и не задавать глупых вопросов, за которые им минусы поставить могут…
avatar
плагин нужен для того, чтобы не лезли руками в код, а потом не лезли на лайвстрит, в стопитидисятый раз жаловаться что у них данный хак не заработал, ловя минусы
avatar
Вы зажрались товарищи =)))
avatar
здесь, видимо, дедовщина в плане минусов. вообще на месте ort'а я бы что-то с этим сделал, потому что сейчас здесь полный неадекват с этим.
avatar
К этому надо быть готовым, всегда когда совершаешь какие-то общественные дела. Ты предложил вариант, кто-то оценил положительно, кто-то отрицательно… часть людей благодаря тебе решила свои проблемы и это самое главное.
avatar
заметил, что сверху от шапки появился белый отступ в одну стройчку именно при открытии топика.
avatar
у меня нет
я на маке
движок 0 4 1
шаблон new
могу дать ссылку kvn.nimoff.ru/ (тестирую как раз тут)
avatar
а можешь посмотреть что я неправильно вставил?
header.tpl
topic.tpl

вернул обратно, отступ исчез.
avatar
хм, вроде все верно, я даже хз
попробуй в header.tpl повыше код поставить

НАРОД, помогите человеку! =)
avatar
не вижу лишнего отступа. оставь его в шаблоне, дай линк, скажу, из-за чего он появился.
avatar
avatar
неожиданно жесткая задача. Очистил весь код страницы до одной чистой шапки, а полоска осталась. Может кэш?
avatar
очень похоже
avatar
Не нужно вставлять кириллические символы в шаблон, лучше вынести в языковой файл, дабы избежать проблем с кодировкой.
avatar
согласен
я не умею+)

пока нареканий не было
avatar
templates/language/russian.php
Почти в любом месте пишем:
'button_vkontakte' => 'В контакт',
...
'button_moimir' => 'В Мой мир',

И аналогично все русские тексты, присвоив им какое-либо имя.
А в самом шаблоне вставляем например так:
<a class="mrc__share" type="button_count" href="http://connect.mail.ru/share?share_url={$oTopic->getUrl()}">{$aLang.button_moimir}</a>

Хоть так и дольше делать, но так вроде бы правильнее с точки зрения архитектуры =)
avatar
ну так надо править еще один файл +)
это правильней, конечно, но когда нужно просто и быстро
ни плагины, ни подобные ухищрения не нужны

зы: спасибо, буду знать
побольше бы таких инструкций
avatar
добавил Вашу инструкцию в топик
avatar
Подскажи плиз, а что надо прописать для кнопки Контакта?
avatar
добавил инструкцию по добавлению плагина Likebox от фейсбук
avatar
каюсь, перепутал — это плагин Activity Feed (инструкция про него в топике)
avatar
Спасибо, хорошая инструкция. Совет: если вы хотите поставить эти кнопки на статические страницы, то в шаблоне actions/ActionPage/page.tpl код нужно вставлять такой (вставлять до {include file=footer.tpl}):
<p>Поделитесь страничкой с друзьями:</p>
<div style="float: left;">
{literal}<script type="text/javascript"><!--
document.write(VK.Share.button(false,{type: "round", text: "В Контакт"}));
--></script>{/literal}
</div>
<div style="float: left; padding-left: 5px;">
<iframe src="http://www.facebook.com/plugins/like.php?href=http://{$smarty.server.SERVER_NAME}/page/{$oPage->getUrlFull()}/&layout=button_count&show_faces=false&width=100&action=like&font=arial&colorscheme=light&height=20" scrolling="no"
 frameborder="0" style="border:none; overflow:hidden; width:100px; height:20px;" allowTransparency="true"></iframe>
</div>
<div style="float: left; padding-left: 5px;" >
<a class="mrc__share" type="button_count" href="http://connect.mail.ru/share?share_url=http://{$smarty.server.SERVER_NAME}/page/{$oPage->getUrlFull()}/">В Мой Мир</a><script src="http://cdn.connect.mail.ru/js/share/2/share.js" type="text/javascript"></script>
</div>
<div style="float: left;padding-left: 5px; ">
{literal}<script type="text/javascript">
tweetmeme_style = 'compact';
</script>
<script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script>{/literal}
</div>
avatar
круто
спасибо
добавил и вашу инструкцию в топик
чтобы не потерялась в коментах
avatar
что-то у меня нет папки в шаблоне actions/ActionPage
avatar
Мм, вы, наверное, ищете наверху, а страницы — это плагин. Посмотрите в plugins/page/classes
avatar
и там такого нет
avatar
Логично, что если разработчики сделали архитектуру для плагинов, то если уж делать правильно, надо делать через плагин. А хаки вовсе не решение, т.к. в случае чего, потом все снова придется вручную менять.
avatar
сделайте плагин, пжта
avatar
присоеденяюсь
avatar
как такое же проделать в шаблоне NJournal?
avatar
а разве он чем-то внутри отличается от new?
avatar
Хочу кнопочки как на ссылка (не реклама), они и меньше и удобнее, как реализовать?
avatar
shakin.ru/other/social-buttons.html

в ливстрите функция {$oTopic->getUrl()} — возвращает url страницы
а {$oTopic->getTitle()} — заголовок страницы

эти значения нужно вставить в нужные места кодов из инструкции по ссылке выше
а кнопки прицепить любые свои
avatar
Если кто-то делать плагин станет, то было бы здорово эти кнопки все поместить в выпадающее окошко, ибо кнопок может быть больше, а шаблон хоть резиновый, хоть не резиновый, но не резиновый же. ))
Автору отдельное спасибо.
avatar
выпадающие окошко имеет свои минусы
так люди сразу видят, что уже кому-то это интересно
это мотивирует поделиться со своми друзьями тоже

а при выпадающем окошке эта информация будет скрыта
avatar
Вот на вскидку, как в АИФ сделано www.samara.aif.ru/politic/news/30813
avatar
что-то у меня снова не то. Обратив внимание, что кнопень вконтакт без счётчика, а файсбучная вообще на английском.
avatar
теперь счётчик контакта работает. в принципе русский файсбук и не так важен
avatar
авторизуйтесь на фейсбуке и зайдите на свой сайт с этими кнопками
avatar
блин, снова трабл.
Пишет мне юзер, что IE выдаёт ошибку в топиках. Проверил, действительно выдаёт и не даёт комментировать. Сам мазиллу юзаю. Выяснил, что именно эти кнопки выдают. Пока удалил.
Опера тоже даёт ошибку. Посмотрите у себя.
Вроде код нормально вставил, у одного меня проблемы.
avatar
привет
попробуй на моем сайте kvn.nimoff.ru/
можно зайти через open id

я на маке
пока проблем нет
avatar
логинится не обязательно. просто в первый же топик зашёл. У тебя всё ок.
Я уже не знаю где я напортачил. Надо плагином всё делать, что такие как я в код не лезли своими кривыми ручками.
avatar
ну не умею я плагином
поэтому попытался максимально полную инструкцию выложить

а так пока дождешься такого плагина+)
avatar
а может просто скинешь мне свои header.tpl и topic.tpl. Они ж одинаковые у всех.
avatar
вопрос закрыт, проблему решили.
avatar
на моем не получается
avatar
может как тут попробовать сделать<a href=«svirv.ru»тут
avatar
Как говорится если не я то кто же?
Сделал плагином это счастье, после модерации будет доступно livestreet.ru/addons/174/
Работает только на 0.4.2+
avatar
Имхо, лучше сделать маленькие кнопки вконтакте, фейсбук и твиттер и разместить их сразу под топиком, следом за логином
avatar
То, что сделано сейчас по моему мнению как-то грубовато выглядит. Ну и на том спасибо.
avatar
не факт
пользователь дочитал статью и ему надо подняться наверх, чтобы найти так какие-то кнопки

а так, он дочитал статью и бац кнопки! +)
avatar
Почему наверх? Сразу под топиком я указал, в той строке, где голосование, дата и логин, сразу после логина 3 маленькие кнопки, а не такие монстообразные.
avatar
Все три кнопки такого размера и дизайн не пострадает.
avatar
вы предлагаете тыкать в маленькие кнопки — это плохо, учитывая развитие сенсорных устройств.
плюс кнопки без цифр — это плохо, нет мотивации.
и последнее — именно такие кнопки предлагают сами сервисы, значит именно такие они будут стоять на большинстве сайтов и будут узнаваемы. так зачем делать что-то не узнаваемое и мелкое?=)

инструкция с вашим вариантом тут
только нужно допилить ее до ливстрит

в ливстрите функция {$oTopic->getUrl()} — возвращает url страницы
а {$oTopic->getTitle()} — заголовок страницы

эти значения нужно вставить в нужные места кодов из инструкции по ссылке выше
а кнопки прицепить любые свои
avatar
круто!
avatar
Добавь еще в топик ссылку на плагин, чтобы не затерялась, и люди не задавали глупых вопросов.
avatar
сделано
avatar
большое спасибо
а можно изменить title отправляемой закладки? у меня упорно шлет «Вход на сайт \ %название сайта%»
avatar
Что то facebook брыкаться стал, кнопка перестала отображаться и типа соединение закрыто удаленным сервером. У кого нибудь есть подобное?
avatar
такого нет, но все глючит по страшному, страница теперь грузится секунд 20-30
avatar
Странно, сейчас все нормально, наверное у них тоже бывают тормоза:)
avatar
facebook время от времени не правильно выдает код для соц плагинов на своей странице — да, оно тоже глучит+)
avatar
Добрый вечер. Вот какая проблема нарисовалась с этими «социализаторами»: у пользователей, у которых нет доступа к используемым ресурсам (в частности tweetmeme и vkontakte) сайт грузится не ровно столько, сколько требуется скрипту, что бы отвалиться по тайм-ауту. У друга на работе тайм-аут с контактом составляет 5 минут. Что с этим посоветуете делать?
avatar
Привет! подскажи, пожалуйста, как отредактировать форму подачи ссылок. Сейчас это «Заголовок/Имя блога/Тайтл».
avatar
кнопку одноклассников забыли )
avatar
специально по морально этическим соображениям)
avatar
от этого сайту хуже не станет, если лишний раз люди придут с одноклассников
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.