Joomla Tema Dönüştürme 1.0 Temasını 1.5 Teması Yapmak

Joomla! Kodlama

Joomla! 1.0 Temasını 1.5 Temasına Çevirmek - How to convert Joomla 1.0 template to Joomla! 1.5 templateJoomla! 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.

Joomla Themes

Ö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
2
3
4
5
6
7
8
9
10
11
<?php
defined('_JEXEC') or die('Restricted access');
JHTML::_('behavior.mootools');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" >
<head>
<jdoc:include type="head" />
<link rel="stylesheet" href="/templates/_system/css/general.css" type="text/css" />
<link rel="stylesheet" href="/templates/<?php echo $this->template ?>/css/template.css" type="text/css" />
</head>

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" )) { ?>
<?php mosLoadModules ( 'user1'); ?>
<?php } ?>

O zaman şöyle değiştirmeniz gerekecek:


<?php if($this->countModules('user1')) : ?>
<jdoc:include type="modules" name="user1" style="xhtml" />
<?php endif; ?>

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" )) { ?>
<div id="">
<?php mosLoadModules ( 'user1'); ?>
</div>
<?php } ?>

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')) : ?>
<div id="">
<jdoc:include type="modules" name="user1" style="xhtml" />
</div>
<?php endif; ?>

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" />

Joomla Themes

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:

Yorumlar  

 
+1 #13 Aytuğ Halil AKAR 31-10-2010 16:38
Alıntılandı fatih yılmaz:
dediklerinizi yaptım ama şu hatayla karşılaştım yardım ederseniz sevinirim.Warning: include() [function.include]: Failed opening 'pathway.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/cankiris/public_html/templates/cb-sand/index.php on lin

Hata uyarısının devamında dosya satır numarası yazar. Oraya bakarak ilgili satırda nasıl bir kod bulunduğunu yazarsanız yardımcı olmaya çalışayım.
Alıntı
 
 
+1 #12 fatih yılmaz 31-10-2010 14:32
dediklerinizi yaptım ama şu hatayla karşılaştım yardım ederseniz sevinirim.Warning: include() [function.include]: Failed opening 'pathway.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/cankiris/public_html/templates/cb-sand/index.php on lin
Alıntı
 
 
+1 #11 Yekta ATAK 09-07-2010 23:09
Teşekkürler Kardeş Başardım :)
Alıntı
 
 
+2 #10 Aytuğ AKAR 04-11-2009 08:32
Merhaba Savaş AKAR,

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.
Alıntı
 
 
+1 #9 Savaş Akar 03-11-2009 22:54
Temayı dönüştürdükten sonra xml de yapılması gereken değişiklikler nelerdir?
Alıntı
 
 
+1 #8 mahmut pamuk 10-08-2009 16:23
aytur akar arkadasım dediklerini yaptım bazı temaların index.php dosyası farklı yada icersinde farklı php dosyaları yer almaktadır. yapmıs oldugum temaya ait sorun index.php icinde 1 hatası oldu onu da size cms uzerinde pm ile gondermistim genel olarak temalarda bazı ust menuler yok veya ust menu kurmus oldugum superfish menude cok uzun gostermekte hatta dısarı cıkmaktadır. tema nasıl yapılıyor bilemiyorum fakat kod bilgim yok j trans menu programlarınd acılım degisim yapmakta yani yazı altında degil biraz ilersinde acılır menu acmakta bu yonde bilgileriniz bekliyorum
Alıntı
 
 
+1 #7 Aytuğ AKAR 09-08-2009 20:31
Anlattıklarımı yapmak için temanın kurulu olması gerekmiyor. Bunlar kod değişiklikleri. Temayı ayrıca dönüştürdükten sonra kurulabilir hale getirmek istiyorsanız xml dosyasında değişiklik yapmanız gerekir. Sorduğunuz tam olarak bu ise xml dosyası oluşturmaya değinebilirim. Yoksa temanın kodlarında düzenleme yukarıda gösterdiğim kadardır.
Alıntı
 
 
0 #6 mahmut pamuk 09-08-2009 20:01
aytuğ akar arkadasım bu kısımları yaptım fakat sitede kurulu olmayan veya internette indirmis oldugumuz 1.0 teması 1.5 yapabiliyormuyuz
Alıntı
 
 
+2 #5 Aytuğ AKAR 28-05-2009 15:26
Temanın belirtilen dosya ve satırında ne olduğunu, belirtmediğiniz için bilemiyorum. Ancak bana sorarsanız bunu 1.5 temasına çevirmek yerine kurum adına bir http://www.joomlart.com hesabı açmak daha iyi olur. Böylelikle bahsettiğiniz temanın güncel ve 1.5 için kodlanmış olanına da ulaşabilirsiniz.
Alıntı
 
 
+1 #4 kaan dinc 28-05-2009 13:21
hata kodu şu hocam ( ent" href="/
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
Alıntı
 

Yorum ekle

Eklenen yorum Türkiye Cumhuriyeti yasalarına ve toplumun genel ahlak değerlerine aykırı olmamalıdır. Üye girişi yapmayanların yorumlarında bazı özellikler kısıtlanmıştır ve ancak onaylandıktan sonra yayına girer.


Güvenlik kodu
Yenile