Tema ile Standart Çıktıyı Değiştirmek
Drupal sitelerinizin sayfalarını oluşturan HTML kodu, birçok Drupal eklentisinin çıktılarından derlenmektedir. Eğer herhangi bir eklentinin sunduğu standart biçimlendirmeyi yeterli bulumuyorsanız, bu çıktıyı ihtiyacınıza göre değiştirerek sayfanın istediğiniz görünüme kavuşmasını sağlayabilirsiniz. Örneğin sitenizdeki arama kutusunu çok gösterişsiz buluyor ve buraya bir büyüteç ikonu ekleyip "Ara" kelimesini de "Müthiş gizemleri keşfet" şeklinde süslü bir ifadeyle değiştirmek istiyor olabilirsiniz. İşte böyle bir durumda, sistemin ürettiği standart çıktıyı kendi istediğiniz şekilde yani büyüteç ikonunu ve de metin değişikliğini sağlayacak şekilde baştan aşağı değiştirebilirsiniz.
Burada söz konusu olan "değiştirme" İngilizce "override" kelimesinin yerine kullanılmıştır; ancak tam bir karşılık olmadığından bazı yanlış anlaşılmalara sebep olabilir. Bizim bu anlatımda sıkça kullanacağımız "değiştirme" işlemi mevcut bir eklentinin koduna müdahale edilmeksizin yapılan bir işlemdir. Koda doğrudan müdahale etmek yerine, kodu kopyala/yapıştır yöntemiyle başka bir yere taşır ve değişiklikleri bu kopya üzerinde yaparız. Daha sonra da orjinal kod yerine bu yeni kopyanın kullanılmasını sağlarız. Böylece orjinal kod olduğu gibi kalır ve hiçbir işlem görmez; bunun yerine bizim değiştirmiş olduğumuz yeni versiyon kullanılır. Değişikliğin bu şekilde yapılması sayesinde çekirdek ve eklenti güncellemeleri sırasında yapmış olduğumuz değişiklikleri kaybetmek gibi bir endişimiz de olmayacaktır. Zaten Drupal dünyasında çekirdek koda müdahale etmek hiç de hoş karşılanan birşey değildir; bunu hiç bir zaman için aklınızdan çıkarmayın![Smile :) :)](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Yukarıda bahsedilen "değişiklik" sürecini şu şekilde detaylandırabiliriz:
Ancak ne yaparsanız yapın, denemelerinizi yayında olan bir siteniz üzerinde değil öncelikle bir test sitesi üzerinde gerçekleştirmeyi unutmayın.
Bazen yapmak istediğiniz değişiklikler için HTML kodlarıyla uğraşmaya gerek olmayabilir. Örneğin bazı değişiklikler sadece CSS kullanılarak yapılabilmektedir. Eklentilerin kendi .css dosyalarında sundukları biçimlendirme bilgilerini değiştirmek için yapabileceğiniz iki şey var:
Tema üzerinden sistemin standart çıktısını değiştirmek birçok farklı uygulamayı içeren oldukça geniş ve detaylı bir konudur. Bu konuda zaman içinde yazılacak detaylı anlatımları bu sayfayanın alt-sayfalarında bulabileceksiniz.
Kaynaklar:
- Overriding themable output (Drupal 6 theme guide)
Drupal sitelerinizin sayfalarını oluşturan HTML kodu, birçok Drupal eklentisinin çıktılarından derlenmektedir. Eğer herhangi bir eklentinin sunduğu standart biçimlendirmeyi yeterli bulumuyorsanız, bu çıktıyı ihtiyacınıza göre değiştirerek sayfanın istediğiniz görünüme kavuşmasını sağlayabilirsiniz. Örneğin sitenizdeki arama kutusunu çok gösterişsiz buluyor ve buraya bir büyüteç ikonu ekleyip "Ara" kelimesini de "Müthiş gizemleri keşfet" şeklinde süslü bir ifadeyle değiştirmek istiyor olabilirsiniz. İşte böyle bir durumda, sistemin ürettiği standart çıktıyı kendi istediğiniz şekilde yani büyüteç ikonunu ve de metin değişikliğini sağlayacak şekilde baştan aşağı değiştirebilirsiniz.
Burada söz konusu olan "değiştirme" İngilizce "override" kelimesinin yerine kullanılmıştır; ancak tam bir karşılık olmadığından bazı yanlış anlaşılmalara sebep olabilir. Bizim bu anlatımda sıkça kullanacağımız "değiştirme" işlemi mevcut bir eklentinin koduna müdahale edilmeksizin yapılan bir işlemdir. Koda doğrudan müdahale etmek yerine, kodu kopyala/yapıştır yöntemiyle başka bir yere taşır ve değişiklikleri bu kopya üzerinde yaparız. Daha sonra da orjinal kod yerine bu yeni kopyanın kullanılmasını sağlarız. Böylece orjinal kod olduğu gibi kalır ve hiçbir işlem görmez; bunun yerine bizim değiştirmiş olduğumuz yeni versiyon kullanılır. Değişikliğin bu şekilde yapılması sayesinde çekirdek ve eklenti güncellemeleri sırasında yapmış olduğumuz değişiklikleri kaybetmek gibi bir endişimiz de olmayacaktır. Zaten Drupal dünyasında çekirdek koda müdahale etmek hiç de hoş karşılanan birşey değildir; bunu hiç bir zaman için aklınızdan çıkarmayın
Yukarıda bahsedilen "değişiklik" sürecini şu şekilde detaylandırabiliriz:
- Değiştirmek istediğimiz biçimlendirmeyi üreten eklenti tespit edilir.
- Bu aşamada iki ihtimal vardır:
- Eklenti biçimlendirmeyi bir tpl.php dosyası ile sağlıyordur (örneğin: Search eklentisindeki search-theme-form.tpl.php dosyası gibi). Bu durumda bu dosyanın bir kopyasını alıp tema klasörünüze taşırsınız (not: aslında tema klasöründe bulunan diğer tpl.php dosyaları da bu şekilde taşınıp üzerlerinde temaya özgü değişiklik yapılmış dosyalardır).
- Eklenti kodu içerisinde biçimlendirilmiş çıktıyı sunan bir fonksiyon mevcuttur (ör: Guestbook eklentisindeki theme_guestbook() fonksiyonu gibi). Bu durumda ise ilgili fonksiyonu kullanılan temanın template.php dosyasına kopyala/yapıştır yaparak ve fonksiyon adında yer alan "theme" kısmına da kullanılan temanın adını yazarak aktarırsınız (ör: Garland temasına aktarıyorsak garland_guestbook olmalı).
- Koypalamış olduğunuz tema dosyasında ya da fonksiyonda istediğiniz değişiklikleri yapar ve kaydedersiniz.
- Yapılan değişikliklerin etkili olabilmesi için tema önbelleğini temizlersiniz (bunun için Yönet » Site kurulumu » Temalar sayfasını ziyaret etmek yeterlidir).
Bazen yapmak istediğiniz değişiklikler için HTML kodlarıyla uğraşmaya gerek olmayabilir. Örneğin bazı değişiklikler sadece CSS kullanılarak yapılabilmektedir. Eklentilerin kendi .css dosyalarında sundukları biçimlendirme bilgilerini değiştirmek için yapabileceğiniz iki şey var:
- Değiştirmek istediğiniz elemanın class veya id'sini tespit edip (bu işlem için Firefox tarayıcısındaki Firebug eklentisi tavsiye edilir) bunlara ait biçim bilgilerini eklentinin .css dosyasından temanızın style.css dosyasına kopyala/yapıştır ile taşır ve değiştirirsiniz.
- Eklentinin .css dosyasını kopyala/yapıştır ile tema klasörüne aktarırsınız ve bu kopyayı istediğiniz gibi değiştirirsiniz. Daha sonra temanın .info dosyasına şu satırları eklediğinizde artık eklentinin kendi .css dosyası yerine temanızdaki kopyası kullanılır.
Kod:[COLOR=Yellow][B]stylesheets[COLOR=#009900][[/COLOR]all[COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]=[/COLOR] style[COLOR=#339933].[/COLOR]css stylesheets[COLOR=#009900][[/COLOR]all[COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]=[/COLOR][COLOR=#339933].[/COLOR]css[/B][/COLOR] eklentinin_orjinal_css_dosyasinin_adi
Tema üzerinden sistemin standart çıktısını değiştirmek birçok farklı uygulamayı içeren oldukça geniş ve detaylı bir konudur. Bu konuda zaman içinde yazılacak detaylı anlatımları bu sayfayanın alt-sayfalarında bulabileceksiniz.
Kaynaklar:
- Overriding themable output (Drupal 6 theme guide)