Artı Teknoloji - Teknolojiye Artı
Joomla Şablon Override Mekanizması: Çekirdek Dosyalara Dokunmadan Özelleştirme - Baskı Önizleme

+- Artı Teknoloji - Teknolojiye Artı (https://www.artiteknoloji.com)
+-- Forum: Web Tabanlı Uygulamalar (https://www.artiteknoloji.com/forumdisplay.php?fid=44)
+--- Forum: Diğer Web Tabanlı Uygulamalar (https://www.artiteknoloji.com/forumdisplay.php?fid=50)
+--- Konu Başlığı: Joomla Şablon Override Mekanizması: Çekirdek Dosyalara Dokunmadan Özelleştirme (/showthread.php?tid=198)



Joomla Şablon Override Mekanizması: Çekirdek Dosyalara Dokunmadan Özelleştirme - Wertomy® - 21-11-2025

Joomla ekosisteminde profesyonel geliştiricileri amatörlerden ayıran en belirgin çizgi, sistemin çekirdek (core) dosyalarına müdahale etmeden arayüz manipülasyonu yapabilme yeteneğidir. Birçok geliştirici, bir bileşenin veya modülün görünümünü değiştirmek için doğrudan /components/ veya /modules/ klasörlerindeki PHP dosyalarını düzenleme hatasına düşer. Bu yaklaşım, ilk Joomla güncellemesinde tüm özelleştirmelerin silinmesiyle sonuçlanır.



Override Nedir ve Neden Hayatidir?

Override işlemi, Joomla'nın çekirdek çıktı dosyalarının (View), kullanılan şablon klasörü içerisine kopyalanarak sistemin öncelikli olarak bu dosyaları okumasını sağlama işlemidir.

Sistem bir sayfayı oluştururken şu mantığı izler:

Önce /templates/aktif-sablon/html/com_content/article/ yolunu kontrol eder.

Eğer burada bir dosya bulamazsa, varsayılan /components/com_content/views/article/tmpl/ yolunu kullanır.

Bu sayede, çekirdek güncellemeleri yapılsa bile, şablon klasöründeki özelleştirilmiş dosyalarınız korunur.

Adım Adım Override Oluşturma Süreci

Bu süreci, en sık ihtiyaç duyulan senaryolardan biri olan "Makale Görünümü (Single Article)" özelleştirmesi üzerinden ele alalım.

1. Yöntem: Joomla Paneli Üzerinden (Hızlı Yöntem)
Joomla, kod editörü kullanmadan dosya yapısını oluşturmanıza olanak tanır:

Sistem > Şablonlar > Site Şablonları (System > Templates > Site Templates) yolunu izleyin.

Kullandığınız şablonun ismine (örneğin: Cassiopeia Details and Files) tıklayın.

Override Oluştur (Create Overrides) sekmesine geçin.

Listeden com_content > article seçeneğine tıklayın.

Sistem otomatik olarak gerekli PHP dosyasını /templates/sablonunuz/html/com_content/article/default.php yoluna kopyalayacaktır.

2. Kod Düzenleme ve Özelleştirme

Dosya oluşturulduktan sonra "Editor" sekmesine dönerek html > com_content > article > default.php dosyasını açın. Artık burada yapacağınız her değişiklik, sitenizdeki tüm tekil makale görünümlerini etkileyecektir.

Örnek Senaryo: Başlık ile İçerik Arasına Özel Alan (Custom Field) Ekleme

Standart yapıda başlık ve içerik ardışık gelir. Araya, örneğin bir "Yazar Biyografisi" veya "İlgili Tarih" özel alanı eklemek isterseniz, PHP kod bloğunda başlık (echo $this->escape($this->item->title); ) (Aradaki boşluğu silin) ile içerik (echo $this->item->text; ) (Aradaki boşluğu silin) arasına müdahale etmelisiniz.

PHP Kod:
<?php if ($params->get('show_title')) : ?>
    <h1 class="art-title">
        <?php echo $this->escape($this->item->title); ?>
    </h1>
<?php endif; ?>

<div class="custom-override-info">
    <span class="icon-user"></span>
    Bu makale uzman ekibimiz tarafından incelenmiştir.
</div>
<?php echo $this->item->text?>
Layout Override (Alternatif Görünümler)

Bazen tüm makaleleri değil, sadece belirli bir kategorideki makaleleri farklı göstermek isteyebilirsiniz. Bunun için "Alternative Layout" tekniğini kullanırız.

Oluşturduğunuz default.php dosyasının adını değiştirin (Örn: ozel-haber.php).

Artık makale düzenleme ekranında, "Seçenekler" sekmesinde Düzen (Layout) kısmında "ozel-haber" seçeneğinin belirdiğini göreceksiniz.

Profesyonel İpucu: CSS düzenlemelerinizi asla PHP dosyasının içine <style> etiketiyle gömmeyin. Bunun yerine user.css veya custom.css dosyasını kullanarak, override dosyasında tanımladığınız yeni CSS sınıflarını (class) hedefleyin.