Sosyal Medya ile blogumuzu daha popüler yapabilirsiniz. Bunun için blog içeriğinizin ziyaretçiler tarafından sosyal medyada paylaşılmasını sağlayabilirsiniz.
Şuan da okuduğunuz yazının başında ve sonunda paylaşım butonlarını görebilirsiniz. Sizlere blogumda kullanmış olduğum paylaş butonlarının yapılışını anlatmaya çalışacağım.
Bizim yapacağımız paylaş butonları 4 farklı boyutta olabilecek. Bunun için 4 tane css class tanımlayacağız. Burda önemli nokta bu 4 boyut için tek resim kullanacağız. Bu resmimizi css sprite tekniği ile kullanarak istediğimiz boyuttaki butonu koordinatları vererek göstereceğiz.
Daha önce css sprite tekniği ile ilgili yazdığım yazıya buradan bakabilirsiniz.
CSS
.social-buyuk, .social-orta, .social-kucuk, .social-cok-kucuk{display: block;list-style-type: none;width: 100%;padding: 0;margin: 0;} .social-buyuk li,.social-orta li,.social-kucuk li,.social-cok-kucuk li{display: inline;} .social-buyuk strong,.social-orta strong,.social-kucuk strong,.social-cok-kucuk strong{display: none;} .social-buyuk a, .social-orta a, .social-kucuk a, .social-cok-kucuk a{ background: url("img/sprite-social.png") no-repeat left top transparent; display: inline-block; margin: 0 10px 10px 0; padding: 0; text-decoration: none; } .social-cok-kucuk a{width: 24px; height: 24px;} .social-kucuk a{width: 32px; height: 32px;} .social-orta a{width: 48px; height: 48px;} .social-buyuk a{width: 64px; height: 64px;} .social-cok-kucuk .facebook{background-position: -0px -44px;} .social-cok-kucuk .twitter{background-position: -0px -264px;} .social-cok-kucuk .friendfeed{background-position: -0px -88px;} .social-cok-kucuk .delicious{background-position: -0px 0;} .social-cok-kucuk .googlebuzz{background-position: -0px -132px;} .social-cok-kucuk .stumbleupon{background-position: -0px -220px;} .social-cok-kucuk .rss{background-position: -0px -176px;} .social-kucuk .facebook{background-position: -44px -52px;} .social-kucuk .twitter{background-position: -44px -312px;} .social-kucuk .friendfeed{background-position: -44px -104px;} .social-kucuk .delicious{background-position: -44px 0px;} .social-kucuk .googlebuzz{background-position: -44px -156px;} .social-kucuk .stumbleupon{background-position: -44px -260px;} .social-kucuk .rss{background-position: -44px -208px;} .social-orta .facebook{background-position: -96px -68px;} .social-orta .twitter{background-position: -96px -408px;} .social-orta .friendfeed{background-position: -96px -136px;} .social-orta .delicious{background-position: -96px -0px;} .social-orta .googlebuzz{background-position: -96px -204px;} .social-orta .stumbleupon{background-position: -96px -340px;} .social-orta .rss{background-position: -96px -272px;} .social-buyuk .facebook{background-position: -164px -84px;} .social-buyuk .twitter{background-position: -164px -504px;} .social-buyuk .friendfeed{background-position: -164px -168px;} .social-buyuk .delicious{background-position: -164px -0px;} .social-buyuk .googlebuzz{background-position: -164px -252px;} .social-buyuk .stumbleupon{background-position: -164px -420px;} .social-buyuk .rss{background-position: -164px -336px;}
Css kodumuzda gördüğünüz gibi 4 farklı css class tanımladık. Dikkat ederseniz bu 4 class için aynı arka plan resmi verdik.
.social-buyuk a, .social-orta a, .social-kucuk a, .social-cok-kucuk a { background: url("img/sprite-social.png") no-repeat left top transparent; display: inline-block; margin: 0 10px 10px 0; padding: 0; text-decoration: none; }
PHP
Paylaş butonlarını istediğimiz boyutta oluşturan php fonksiyonumuzu yazıyoruz.
if(!function_exists('paylas_butonlari')) { /** * Sosyal paylaşım sitelerinin paylaşım butonlarını oluşturur * * Örnek kullanım * echo paylas_butonlari('http://www.serkandaglioglu.com', 'Serkan Dağlıoğlu', 'orta') * * boyut'un alabileceği değerler ('cok-kucuk', 'kucuk', 'orta', 'buyuk') * * @param <string> $url * @param <string> $title * @param <string> $boyut * @return <string> */ function paylas_butonlari($url='',$title='',$boyut='orta') { $siteler = array( 'facebook' => 'http://www.facebook.com/share.php?u=%url%&title=%title%', 'twitter' => 'http://twitthis.com/twit?url=%url%&title=%title%', 'friendfeed' => 'http://friendfeed.com/?url=%url%&title=%title%', 'delicious' => 'http://www.delicious.com/save?jump=yes&url=%url%&title=%title%', 'googlebuzz' => 'http://www.google.com/reader/link?url=%url%&title=%title%', 'stumbleupon' => 'http://www.stumbleupon.com/submit?url=%url%&title=%title%' ); $url = urlencode($url); $title = urlencode($title); $class = ( in_array($boyut, array('cok-kucuk','kucuk','orta','buyuk')) ) ? $boyut : 'orta'; $cikti = '<ul class="social-' . $class . '">'; foreach($siteler as $index => $value) { $value = str_replace(array('%url%','%title%'),array($url,$title), $value); $link_title = ucfirst($index).' ile paylaş'; $link = '<a href="'. $value .'" class="'.$index.'" title="'. $link_title.' "><strong>'.$link_title.'</strong></a>'; $cikti .= '<li>' . $link . '</li>'; } $cikti .= '</ul>'; return $cikti; } }
Fonksiyon paylaşım yapılan url, paylaşım yapılan sayfanın başlığı ve oluşturulacak butonların boyutu olmak üzere 3 tane parametre almaktadır.
Örnek Kullanım
İndidiğiniz dosyalar içerisinde bulunan social.php ve social.css dosyalarını sayfanıza dahil ediğ istediğiniz yere aşağıdaki kodları eklediğiniz zaman paylaşım butonlarının oluşması için yeterli olacaktır.
<?php echo paylas_butonlari('http://www.serkandaglioglu.com/php-ve-css-sprite-ile-paylas-butonlari', 'Paylaş Butonları', 'kucuk'); ?>
arkadaşım bu butonların siteme entegresi için bir kişiye sordum 50 tl istedi. Çok sağol senin sayende bedavaya getirmiş olucam.hemde yani birşeyler öğreniyorum.
rica ederim…
fakat buradaki kodlarda verilen başlığın türkçe karakter içermemesi lazım.türkçe yazınca karakterler bozuluyor.
bunu nasıl ayarlayabiliriz?
fonksiyondaki aşağıdaki kısım türkçe karakterlerinde sorunsuz gitmesini sağlıyor.
Ben öyle bir sorunla karşılaşmadım. senin dosyanın karakter kodlaması ile alakalı olabilir.
Türkçe karakterlerde sorun yaşamamak için daha önce yazılmış şu yazıyı okumanı tavsiye ederim .
http://www.yakuter.com/utf-8-bom-byte-order-mark-nedir/">http://www.yakuter.com/utf-8-bom-byte-order-mark-nedir/
yazılan kodları denedim fakat bir türlü türkçe karakter meselesini çözemedim.
üzerine geldiğimde tarayıcının altında doğru gösteriyor fakat tıklayınca facebookta karakter sorunu çıkıyor
resimler:
http://www.yukleresim.com/images/KvwG0.png">http://www.yukleresim.com/images/KvwG0.png
http://www.yukleresim.com/images/1d5bS.jpg">http://www.yukleresim.com/images/1d5bS.jpg
1)kardeş bu resimleri nereden çekiyor.
bu fonksiyonu kullanıdığın kodunu yazabilirmisin?
ikinci resimde benim adresim gözüküyor ? Paylaştığın sayfanın url sini vermelisin
kodlar
https://viewer.zoho.com/docs/rcXtr">https://viewer.zoho.com/docs/rcXtr
hem karakter sorunu oluyor hem de resmi almıyor.yani ben beceremedim galiba.yardımcı olurmusunuz.
tıklamadan önceki görüntü
http://www.yukleresim.com/images/0oYJQ.jpg">http://www.yukleresim.com/images/0oYJQ.jpg
tıklayıncaki görüntü
http://www.yukleresim.com/images/059r.jpg">http://www.yukleresim.com/images/059r.jpg
url’de sitenin domaini yoktur. yani şu şekilde olmalı.