Joomla Tema Dönüştürme 1.0 Temasını 1.5 Teması Yapmak
| Joomla! Kodlama |
Joomla! 1.5 sürümler artık seriyi tamamlamaya yaklaşsa da halen Joomla! 1.0 serisi kullananlar var. Bunun sebebi resmî desteğin 22 Temmuz 2009'a kadar devam edecek olması. Hal böyleyken 1.0 serisinden 1.5 sürümlere geçişler de devam ediyor demek oluyor. Ancak bu geçişlerde en büyük sıkıntılardan biri uzun süre siteniz için ilmek ilmek optimize ettiğiniz Joomla! 1.0.x temasını Joomla! 1.5.x temasına çevirmek. Aslında temelde birkaç adımda gerçekleştirilebilecek Joomla! 1.0 - 1.5 tema göçü, kullanılan temanın kodlanma şekline göre değişik müdahaleler gerektirebiliyor. Temelde gerekli olan müdahalelerden bahsedeceğim. Böylelikle Joomla! 1.0 temasını 1.5 temasına dönüştürmek sizin için de mümkün olacak.
Çalışmaya başlamadan evvel sizin için kıymetli olan bu Joomla! 1.0 temanızın muhakkak yedeğini alın. Geri dönmeniz gerekirse temanın uzun süre siteniz için düzenleyediğiniz kısmlarını bulamayabilirisiniz. Bu sebeple tedbirli olmakta fayda var. 4 aşamalı bir değişim işlemi gerçekleştireceğiz. Bu aşamalar temanızın header kısmında düzenleme, modül yerleşimlerini düzenleme, eskiden adı mainbody olan içerik kısmında düzenleme ve temanın css dosyasının adını düzenleme şeklinde olacak. Css dosya ismini değiştirmek dışındaki işlerimizi temamızın index.php dosyasında gerçekleştireceğiz.
Öncelikle temanızın header kısmını değiştirmelisiniz. Temanın header kısmı, index.php dosyasının 1. satırından itibaren </head> kapama etiketinin olduğu yere kadar olan kısımdır. 1. satırdan aşağı doğru bu </head> kapama etiketi dahil seçin ve aşağıdaki ile değiştirin. Bunu yapmanın kolay yolu önce aşağıdakini kopyalamanız, daha sonra söylediğim şekilde seçimi yapıp ardından ctrl+v tuşlarını kullanmanızdır.
| templates/sizintemanız/index.php | |
1 |
<?php |
Burada 3. satırda verdiğimiz JHTML::_(behavior.mootools'); kısmını dilerseniz kullanmayabilirsiniz. Bu durumda sadece 3. satırı silmeniz yeterli. Satırda mootools Joomla çekirdekte gelen kütüphanesi temaya çağırılıyor.
Ardından her modül pozsiyonu tanımlamasında değişiklik yapmamız gerekecek. Modül pozisyonlar genelde iki şekilde tanımlanıyor. Bir defa her halukarda pozisyonun tanımlaması ve çoğunlukla da bu tanımlamanın içinde olduğu divi yayında modül yokken göstermemek için kullanılan bir if döngüsü oluyor. Bu iki duruma göre nasıl hareket edeceğimize bakalım. Temanızda şunu bulun:
<?php mosLoadModules ( 'user1' ); ?> |
Bunun şununla değiştirin (user1 tanımlamaları örnektir, kopyalarken dikkat edin):
<jdoc:include type="modules" name="user1" style="xhtml" /> |
Eğer ilk bulduğunuz kodun üstünde ve altında if ve endif kodları görüyorsanız onlarda da değişiklik yapmanız gerekecek. Örneğin ilk kod şöyle olabilir:
<?php if (mosCountModules( "user1" )) { ?> |
O zaman şöyle değiştirmeniz gerekecek:
<?php if($this->countModules('user1')) : ?> |
Hatta bunu bir örnekle daha netleştirelim. Kodunuz temada şu şekilde de yer alıyor olabilir ve aslında böyle olması daha mantıklıdır:
<?php if (mosCountModules( "user1" )) { ?> |
Bu takdirde yapacağımız değişiklik de ona uygun olacak. Burada yapılan şey tam olarak belirtilmiş pozisyonda yayınlanmış bir modül yoksa o div alanının temada gösterilmemesidir.
<?php if($this->countModules('user1')) : ?> |
Bütün modül pozsiyonlarını bu şekilde arayıp özenle değiştirmelisiniz.Aslında modül pozisyonu tanımlamaları son örnekte verdiğimize benzer başka şartlara da bağlanabiliyor. Örneğin user1 yayındaysa user2'yi yayınla, user1 ve user2 yayındaysa...gibi Bu durumdlarda dikkat etmemiz gereken şey değişen kısımlar. 1.0 temalarında mosLoad ile yayınlanmış modülün temada gösterilmesini sağlayan kod jdoc:include type:"modules" ile değiştirildi. if döngülerindeki pozisyonda yayınlanmış modül varsa anlamında kullanılan mosCountModules kısmı yerine $this->countModules kullanılıyor. Buna göre düzenlemelerimizi yapabiliriz.
Ardından sıra içeriğin yayınlandığı ana kısma geliyor. Bu kısım 1.0 temalarda şu şekilde tanımlanmıştır:
<?php mosMainBody(); ?> |
Bu kodu şununla değiştirmeniz gerekecek:
<jdoc:include type="component" /> |
Son olarak yapmamaız gereken şey css dosyamızın template_css.css olan ismini template.css olarak değiştirmek.
Hepsi bu, gözünüzaydın. Artık temanız Jooml 1.5 teması. Üzerinde ince çalışmalarınıza devam edebilirsiniz.
Güle güle kullanın.
Buna Benzer Diğer Yazılar:
| < Önceki | Sonraki > |
|---|

Yorumlar
Tema dönüşümü sonrası xml dosyasında bir değişiklik yapma şartı bulunmamakla birlikte modül yerleşimlerini xml dosyasına ekleyebilirsiniz. Bu işlem modül yönetiminde modül yerleşimlerinin seçilebilir şekilde görülmesini sağlar.
Yerleşimleri templateDetails.xml dosyasında position etiketi içinde kullanabilirsiniz. Örn:
< positions >
< position >yerlesimismi< / position >
< / positions >
Ancak 1.5 yapısı bu olmaksızın tema index.php dosyasında tanımlanmış yerleşimleri kullanabilmeye imkan veriyor. Modül ayarlarında yerleşim seçim kutusunu açmadan, seçenek olan kısmına, yani içine tıklarsanız, oraya dilediğinizi yazabilirsiniz. Bu hem temada var olan ama xml dosyasına eklenmemiş bir yerleşime modül atamaya hem de var olmayan bir yerleşim kullanmaya (içerik içinde çağırmak için mesela) yarar.
Fatal error: Call to undefined function getcurrenturl() in C:-xampphtdocsimtemplatesja_ xenia_homeindex.php on line 13) sürekli aynı hatayı alıyorum hata nerde yapıyorum acaba
Fakat 1.5 i 1.0 sürümüne cevirmek mümkün mü?
RSS beslemesi, bu iletideki yorumlar için.