Udostępnianie wpisów w różnych serwisach
Czytając niektóre strony można natknąć się na specjalne przyciski umożliwiające udostępnienie danego wpisu w serwisach takich jak Facebook, BLIP, Twitter czy Wykop. Większość osób prowadzących swoją stronę, zastanawia się w jaki sposób dodać taką funkcję do swojego serwisu. Jest to prostsze niż się wydaje.
Czytając niektóre strony można natknąć się na specjalne przyciski umożliwiające udostępnienie danego wpisu w serwisach takich jak Facebook, BLIP, Twitter czy Wykop. Większość osób prowadzących swoją stronę, zastanawia się w jaki sposób dodać taką funkcję do swojego serwisu. Jest to prostsze niż się wydaje.
Rozpoczniemy od stworzenia funkcji otwierającej nowe okno.
function noweOkno(link,width,height) {
var atrybuty='menubar=no, toolbar=no, location=no, scrollbars=yes, width=' + width + ', height=' + height;
window.open(link,'Udostępnij wpis',atrybuty);
}
Wytłumaczę tylko co oznaczają kolejne wpisy (oddzielone przecinkami) w zmiennej atrybuty. Menubar oznacza paski menu - jest wyłączony, toolbar, pasek narzędzi (także wyłączony), location - pasek adresu, scrollbars - paski do przewijania ekranu (włączone), width - szerokość (okna) w pikselach, a height wysokość w pikselach.
Następnie wywołujemy funkcję open z klasy window. Pierwszym atrybutem jest link, drugim, tytuł okna, a trzecim atrybuty.
Teraz pozostało nam przygotować odpowiednie przyciski.
W zależności od tego czy strona jest statyczna (czysty język HTML), czy generowana dynamicznie (PHP, JS, AJAX itp.), użyjemy innego kodu. Dla PHP będzie to kod następujący:
<?php
echo '<a href="javascript:noweOkno('http://facebook.com/sharer.php?u=http://moja-domena.com/' . $_SERVER['REQUEST_URI'] . '',800,600);" title="Dodaj do Facebook'a"><img src="/katalogZGrafika/facebook.gif" alt="dodaj do facebook'a" /></a>';
?>
Przykład pokazuje jak dodać przycisk do Facebook'a. Wszystkie inne serwisy dodajemy tak samo, zmieniając link w funkcji noweOkno na:
+ dla Wykopu:
http://www.wykop.pl/dodaj?url=http://moja-domena.com/' . $_SERVER['REQUEST_URI'] . '
+ dla BLIP'a:
http://blip.pl/dashboard?body=http://moja-domena.com/' . $_SERVER['REQUEST_URI'] . '
+ dla Twitter'a:
http://twitter.com/home?status=http://moja-domena.com/' . $_SERVER['REQUEST_URI'] . '
Na koniec pokażę jeszcze przykład dla strony statycznej, pisanej w HTML'u.
<a href="javascript:noweOkno('http://facebook.com/sharer.php?u=http://moja-domena.com/plik.html',800,600);" title="Dodaj do Facebook'a"><img src="/katalogZGrafika/facebook.gif" alt="dodaj do facebook'a" /></a>
Jak widać, wiele się on nie różni od przykładu dla PHP.
Oczywiście można również zamieścić przyciski dla innych serwisów. Przykład link, który ma zostać wywołany zawsze powinien znajdować się w API serwisu.
sam się zastanawiałem jak takie coś zrobić na mojej stronie (w przyszłości ;P).
Dzięki za artykuł, przyda się na pewno!
Tylko kiedy ta strona ruszy, bo z tego co pamiętam, to już od początku wakacji coś mówiłeś o niej ;)
P.S. To chyba Twój pierwszy komentarz u mnie, gdzie nie masz żadnego "ale" ;)
mówisz-masz:
nie przyglądałem się wszystkim kodom, tylko temu z wykop.pl
Twój link przekazuje wykopywarce tylko adres strony, przez co czytelnik musi sam wpisać tytuł, opis, co może go trochę zniechęcić. A w linku do wykopu można te dwie informacje przekazać:
http://www.wykop.pl/dodaj?url=http://adresstrony.pl&title=TUTAJ_TYTUL&desc=TUTAJ_OPIS
Druga sprawa.
Na tej stronie wszystko działa elegancko, bo masz przyjazne linki. Ale co jeśli ktoś ich nie ma? Np strona:
http://adres-strony.pl/artykul.php?kategoria=inne&id=55
Po dodaniu takiego adresu wykop zrozumie tylko tą część do pierwszego "&" (albo i nawet nie tyle, zależy jak poradzi sobie z "?" w adresie), bo pomyśli że reszta to zmienne należące do niego. Tutaj polecałbym jakąś funkcję do przeróbki tekstu a'la encodeURIComponent javascriptu, tyle że napisaną w php. Szczerze mówiąc, nie znam takiej, ale jak znajdę to się pochwalę ;)
No racja. Nie pomyślałem o tym. Ale pomyślę.