2010-10-26 7 views
7

Chcemy zaimplementować stronę z listą elementów treści, pokazującą tytuł i fragment każdego z nich. Chcemy mieć przycisk "Lubię to" obok każdego elementu treści, który po kliknięciu "lubi" pojedynczy element, a nie stronę indeksu.Facebook Jak przycisk, aby polubić poszczególne elementy treści na stronie indeksu/listy

Widzieliśmy to zaimplementowane w innym miejscu (dawniej Mashable.com na stronie głównej), ale przy standardowej implementacji nie możemy go uruchomić. Czy ktoś ma jakieś wskazówki?

Używamy PHP/Symfony.

NB: Nie jestem programistą, więc to pytanie nie jest sformułowane w języku technicznym - jednak wszelkie odpowiedzi zostaną przekazane programistom, którzy będą w stanie je zrozumieć.

Odpowiedz

9

Wystarczy ustawić atrybut href na każdym przycisku podobnym na swojej stronie. Na przykład:

<script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script> 
<fb:like href="http://www.example.com/item1"></fb:like> 
<fb:like href="http://www.example.com/item2"></fb:like> 
<fb:like href="http://www.example.com/item3"></fb:like> 

Jeśli każdy przycisk ma swój własny href, każdy przycisk będzie zachowywał się niezależnie. Jeśli nie dodasz href, przycisk "Lubię to" zakłada, że ​​polubiłeś bieżącą stronę, którą oglądasz.

Dodatkowo, powinieneś zaimplementować protokół otwartego wykresu dla każdego adresu URL, który ci się podoba. Mam przez to na myśli URL w przycisku href z podobnym guzikiem, a niekoniecznie stronę, na której znajduje się przycisk "Lubię to". Możesz przeczytać o tym tutaj: http://developers.facebook.com/docs/opengraph

Jest to dość proste do zrobienia. Wystarczy dodać meta tagi do stron header tak:

<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:og="http://opengraphprotocol.org/schema/" 
     xmlns:fb="http://www.facebook.com/2008/fbml"> 
    <head> 
    <title>The Rock (1996)</title> 
    <meta property="og:title" content="The Rock"/> 
    <meta property="og:type" content="movie"/> 
    <meta property="og:url" content="http://www.imdb.com/title/tt0117500/"/> 
    <meta property="og:image" content="http://ia.media-imdb.com/rock.jpg"/> 
    <meta property="og:site_name" content="IMDb"/> 
    <meta property="fb:admins" content="USER_ID"/> 
    <meta property="og:description" 
      content="A group of U.S. Marines, under command of 
        a renegade general, take over Alcatraz and 
        threaten San Francisco Bay with biological 
        weapons."/> 
    ... 
    </head> 
    ... 
</html> 
0

Put to po każdym treści:

<div class="fb-like" data-href="unique_url_here_for_the_content" data-send="true" data-layout="button_count" data-width="100" data-show-faces="true"></div> 

zastąpić "unique_url_here_for_the_content" z rzeczywistą URL treści

zmodyfikować dane - * atrribute przejdź do strony fb jak wtyczka strona here

i z tego musisz użyć po tagu body

<div id="fb-root"></div> 
<script>(function(d, s, id) { 
var js, fjs = d.getElementsByTagName(s)[0]; 
if (d.getElementById(id)) return; 
js = d.createElement(s); js.id = id; 
js.src = "//connect.facebook.net/en_US/all.js#xfbml=1"; 
fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'facebook-jssdk'));</script> 
Powiązane problemy