Flag eklentisinde ikon kullanımı

Bu anlatımda flag metinlerine ikon ekleme ve flag metinlerini ikon ile değiştirme konularını ele alacağız. Bu yöntemleri kullanarak sitenizde tanımlamış olduğunuz her değişik flag için ayrı ikonlar kullanabilmeniz mümkün.
#1 Flag metinlerine ikon ekleme
Bu işlemi CSS kullanımıyla gerçekleştirmek mümkün. Yapmamız gereken şey metinlere biraz padding uygulayıp sağa kaydırmak ve böylece açılan yere de ikonları bir arkaplan resmi olarak eklemek. Bunun için aşağıda verilen örnek css kodunu kullanabilirsiniz.
Not: Kodda flagadi yazan yerlere oluşturduğunuz flag'in makine adını (ing: machine-name) yazınız.
padding-left: 20px;
}
.flag-flagadi a.flag-action {
background: url(images/sevdim.png) no-repeat left center;
}
.flag-flagadi a.unflag-action {
background: url(images/sevmedim.png) no-repeat left center;
}
#2 Flag metinlerini ikon ile değiştirme
Önceki uygulamada flag metninin yanına CSS kullanarak bir ikon eklemiştik. Şimdi ise metni tamamen kaldırmaya ve yerine bir ikon koymaya çalışacağız. Bunun için biraz elimizi drupal koduna bulaştırmak gerekiyor.
Flag eklentisi, işlevlerini beraberinde gelen tema üzerinden sunuyor. Bu temada çeşitli değişkenler kullanılıyor; bunlardan biri de flag metnini içeren $link_text değişkeni. Drupal'in bize sunduğu değişkenlerin içeriklerini temada kullanılmadan önce değiştirebilme esnekliğinden yararlanarak, bu değişkende yer alan flag metnini bir <img> etiketi ile değiştirebilmemiz mümkün. Bu yöntem şöyle çalışıyor:
- Aşağıdaki kodu temanızın template.php dosyasına ekliyorsunuz.
function phptemplate_preprocess_flag(&$vars) {
$image_file = path_to_theme() . '/flag-' . $vars['flag_name_css'] . '-' . ($vars['action'] == 'flag' ? 'off' : 'on') . '.png';
if (file_exists($image_file)) {
$vars['link_text'] = "<img src='$image_file' />";
}
} - Her flag için "imleme (işaretleme)" ve "iptal etme" ikonlarını sırasıyla flag-flagadi-on.png ve flag-flagadi-off.png olarak adlandırarak tema ana klasörüne atıyorsunuz. İkon adlarının yapısını değiştirirseniz yukarıdaki kodu da buna uygun olarak değiştirmeniz gerektiğini unutmayın.
Not: Dosya isimlerindeflagadiyazan yerlere oluşturduğunuz flag'in makine adını (ing: machine-name) yazınız. - flag/theme klasöründe yer alan flag.tpl.php dosyasının bir kopyasını alıp tema dizininize koyuyorsunuz.
- Son olarak Drupal'in önbelleğini siliyorsunuz (Yönet » Site Ayarları » Performans).
- Yeni yorum ekle
- 1028 kez okundu

en son kod'da flagadı yazan yer yok.
Notu 2. madde yerine yanlışlıkla 1. maddeye yazmışım. "flagadi" kodda değil dosya isimlerinde var ve bunların değiştirilmesi gerekiyor. Anlatımı bu şekilde düzelttim. Uyarı için teşekkürler.
//editör notu: İlgili mesaj buraya taşınmıştır.
birinci maddedeki kodları nereye ekleyeceğiz?
ceaplayabilecek biri yok mu, ilk kodları flag modülündeki hangi css dosyasına ve nereden ekleyeceğiz?
sayfaya etki eden herhangi bir CSS dosyasına yazılacak. Kullanılan temanın ana CSS'i (style.css gibi) olabilir...