CCK alanlarındaki sayıları 1,2,3 yerine 01,02 şeklinde yazdırmak!

Arkadaşlar yardımcı olabilecek varsa sevinirim.
amacım başlıktada belirttiğim gibi
cck alanlarımdaki sayıları 01,02 şeklinde verebilmek!
bunu nasıl yada hangi modüller yardımıyla yapabilirim.

NOT: sayıların bu şekilde görünmesini auto node title modülünde kullanmak için istiyorum.

Groups:
Login to post comments

theme cck fields

pembeci's picture
pembeci - Fri, 2009-11-06 11:03

drupal.org'da başlıktaki gibi arama yaparsan çeşitli şeyler geliyor. kısa bir özet geçecek olursam:

  • alanının ismi 'field_name' ise theme dizininde field-field_name.tpl.php diye bir dosya yarat.
  • bu dosyada şimdi $items[0] sana o alanın değerini verecek (alan birden çok değer içeriyorsa $items bunların hepsini sırayla tutacak).
  • bu değeri kullanarak nasıl bastırmak istiyorsan ona uygun kodu yaz. mesela:

<?php
print "<b>" . str_pad($items[0], 2, "0", STR_PAD_LEFT) . "</b>"; //kalın ve sıfırlar eklenmiş
?>

php'nin str_pad fonksiyonu senin istediğin işi yapar.

ama bu fonksiyonu kullanmadan (sayılar mesela hep 1000'den küçük olacaksa) şöyle bir kod da yazabilirdik:

<?php
 
if ($items[0] < 10) print "00" . $items[0];
  else if (
$items[0] < 100) print "0" . $items[0];
  else print
$items[0];
?>

Bu template dosyasında ulaşabileceğin değişkenlerin tanımı şurada verilmiş:

http://drupal.org/node/206980

Takılırsan buraya sor.


Düzeltme

pembeci's picture
pembeci - Fri, 2009-11-06 11:26

D6'da bunu hiç yapmamıştım, bir takım şeyler değişmiş. Dosyanın içeriğinde değişiklik yok fakat dosya ismi farklı ve bir iki şey daha yapmak lazım:

  • Öncelikle CCK/themes dizininde bulunan "content-field.tpl.php" dosyasını kendi theme dizinine kopyalaman gerekiyormuş.
  • Alanının isimi field_foo ise yeni oluşturacağın dosya ismi "content-field-field_foo.tpl.php" olmalıymış.
  • Theme registry denen şeyi tazelemek için ya Devel eklentisi sayesinde "Empty cache" yapman (Devel'in eklediği kutuda bu bağlantıya tıklayarak) veyahut Administer > Site configuration > Performance sayfasında "Clear cached data" düğmesine tıklaman lazımmış.