devblog, portfolio

movie producer, zend framework, php, jquery pluginy



Udostępnianie wpisów w różnych serwisach

media/upload/images/facebook-wykop-blip-twitter-nasza-klasa-sledzik-share.[kacperkolodziej.com].1256374240.pngCzytają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.

media/upload/images/facebook-wykop-blip-twitter-nasza-klasa-sledzik-share.[kacperkolodziej.com].1256374240.pngCzytają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);
}

media/upload/images/twitter.%5Bkacperkolodziej.com%5D.1255353847.jpgWytł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.

Czytelników: 2122 Odsłon: 2482 Komentarzy: 4
lisek www Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.0.3) Gecko/2008092510 Ubuntu/8.04 (hardy) Firefox/3.0.3 GTB5

sam się zastanawiałem jak takie coś zrobić na mojej stronie (w przyszłości ;P).
Dzięki za artykuł, przyda się na pewno!

Kacper Kołodziej www Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3

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" ;)

lisek www Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.0.3) Gecko/2008092510 Ubuntu/8.04 (hardy) Firefox/3.0.3 GTB5

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ę ;)

Kacper Kołodziej www Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.1.5) Gecko/20091109 Ubuntu/9.10 (karmic) Firefox/3.5.5

No racja. Nie pomyślałem o tym. Ale pomyślę.

Dodaj komentarz »