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.

.flag-flagadi a {
  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:

  1. 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' />";
      }
    }
  2. 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 isimlerinde flagadi yazan yerlere oluşturduğunuz flag'in makine adını (ing: machine-name) yazınız.
  3. flag/theme klasöründe yer alan flag.tpl.php dosyasının bir kopyasını alıp tema dizininize koyuyorsunuz.
  4. Son olarak Drupal'in önbelleğini siliyorsunuz (Yönet » Site Ayarları » Performans).

Yorumlar

4 strings kullanıcısının resmi

en son kod'da flagadı yazan

en son kod'da flagadı yazan yer yok.

onur serkan kullanıcısının resmi

düzeltildi

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.