5
PART I
Sebenarnya saya ragu untuk menulis artikel ini. “MEMBUAT TEMPLATE JOOMLA 1.5”. Judul artikel yang
menakutkan untuk saya. Kenapa? Karena saya sadar saya masih sangat newbie dalam hal joomla. Saya
mempelajari joomla melalui sebuah buku yang di beli oleh bos saya di tempat kerja saya di Denpasar – Bali (thanx
Pak M**** karena telah meminjamkan bukunya kepada saya). Berawal dari buku tersebut akhirnya saya tertarik
utnuk terus mempelajari joomla.
Untuk pembuatan template joomla sendiri, saya juga masih sangat pemula. Awalnya saya tidak ingin membuat
artikel tentang pembuatan template joomla. Berawal dari posting situs saya yang berbasis joomla 1.5 dengan
template buatan sendiri, ada salah seorang teman di forum yang meminta saya untuk memberitahukan dia
bagaimana cara membuat template joomla. Akhirnya saya berfikir, kenapa tidak saya buat saja tutorial cara
membuat template joomla? Lagian mungkin banyak juga yang membutuhkan tutorial seperti ini. Kenapa punya
ilmu nggak di bagi-bagi? Karena dari itulah akhirnya saya memutuskan untuk mencoba menulis tutorial membuat
template joomla. Makasih banyak yach om heri (pascal_heri – id-joomla) karena telah memberikan ide membuat
tutorial ini.Selain itu, terima kasih juga untuk om rusmadi (id-joomla), karena kritikkan om rusmadi, saya memiliki
insiatif membuat template joomla sendiri. Dan terima kasih juga untuk semua teman-teman id-joomla yang mau
menjawab semua oertanyaan saya di forum.
Untuk membuat template joomla, awalnya untuk saya sangatlah susah. Saya harus belajar mengenal PHP ,
Cascading Style, dan lain-lain. Saya banyak mencari di search enggine tutorial-tutorial membuat template joomla.
Selain itu, saya juga mencoba memahami script-script template yang sudah ada sebagai referensi saya. Dan
akirnya, template pertama buatan saya, dapat anda lihat di http://artikelheri09.co.cc .
Template joomla sebenarnya tidaklah rumit, dan sangat sederhana. Hanya saja bila kita ingin template yang kita
buat sangat indah di pandang, maka ada beberapa tembahan script yang harus kita tambahkan selain script
sandart template itu sendiri. Sebenarnya, satu file layput html bisa kita konversi menjadi sebuat template joomla
yang valid.
Untuk membuat template joomla yang sederhana, sebenarnya hanya membutuhkan 4 file saja. Yaitu file
index.php, templateDetails.xml, template.css, dan template_thumbnail.png. Apa saja fungsi dari kemepat file
tersebut?
File Index.php
Menurut yang saya baca di forum id-joomla yang ditulis oleh om Andy sikumbang, file index.php adalah file yang
berisi kombinasi antara bahasa html dengan php yang merupakan file utama yang menentukan bentuk perwajahan
dari template. Kita dapat membuat file index.php ini dengan menggunakan pilihan new php file pada
Dreamweaver. Secara umum pada file index.php ini di bagi menjadi dua bagian yaitu header dan body.
Bagian awal yang harus kita isikan adalah bagian Header. Bagian ini harus ada di bagian awal setiap file
index.php. Bagian header ini adalah beberapa baris code php seperti yang ada berikut ini.
<?php
defined( '_JEXEC' ) or die( 'Restricted access' );
?>
<head>
<jdoc:include type="head" />
<link rel="stylesheet" href="templates/system/css/system.css" type="text/css" />
<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" />
Copyright © 2009 by heri siswanto
thanks to God and friends id-joomla
</head>
<?php
defined( '_JEXEC' ) or die( 'Restricted access' );
?>
berfungsi sebagai filter yang akan menyaring jenis akses yang datang terhadap file ini. Apabila akses tersebut
bersifat langsung, misalnya Anda mengetikkan alamat langsung kepada file index.php ini pada browser (misalnya :
http://www.webanda.com/templates/templateku/index.php) maka proses eksekusi script phpnya tidak akan
dilanjutkan dan pada jendela browser akan muncul tulisan ’ Restricted access’ yang menyatakan bahwa akses
langsung terhadap file yang bersangkutan tidak diizinkan.
Bagian
Mendefinisikan tipe dokumen html yang dipergunakan yaitu XHTML 1.0 Transitional berdasarkan standar
penggunaan code html internasional.
Bagian
Bagian
Iini akan memanggil file CSS yang berfungsi untuk mengatur tampilan dari index.php, dimana secara defaul akan
memanggile file css yang berada didalam folder css yang ada didalam directory template.
Bagian kedua setalah bagian header yang ada di dalam file index.php adalah bagian body dan peletakkannya
setelah header. Bagian body secara anatomi dapat di isi sebagai berikut
<body>
<jdoc:include type="modules" name="top" />
<jdoc:include type="modules" name="left" />
</body> </html>
Untuk menampilkan module-module yang dipublish pada posisi yang bersangkutan ( top, left, right, footer)
Bagian
Menampilkan content utama joomla. Jadi code ini harus mutlak ada pada semua file index.php template joomla
Selain yang sudah kita bahas diatas, joomla juga memiliki format penulisan posisi dalam template. Seperti :
Atau
Penjelasannya:
Untuk lebih memahami syntak diatas, berikut penjelasan secara detail fungsi dari Jdoc statement berikut :
Jdoc:include
Pernyataan <jdoc:include /> adalah metode yg di gunakan template Joomla untuk menampilkan bagian-bagian
tertentu pada halaman web. Ada bermacam macam pernyataan <jdoc:include />, masing-masing mengacu pada
bagian yang berbeda dari sebuah halaman web Joomla.
Attribute Type
Type pada pernyataan jdoc adalah atribut yg menentukan jenis konten yg akan di tampilkan pada tempat dimana
pernyataan jdoc tersebut ditempatkan. Misalnya, pernyataan <jdoc:include type="module" /> akan menampilkan
sebuah module (type="module") pada halaman web Joomla.
Component
Adalah contoh format jdoc dalam sebuah template untuk menampilkan sebuah komponen (misalnya komponen
frontpage , remository, dll) ke halaman web Joomla. Pernyataan <jdoc:include type="component" /> hanya
boleh di tulis sekali saja dan berada di dalam tag <body>
Head
Pernyataan ini berfungsi untuk menampilkan head pada tag <head> sebuah halaman Joomla. Pernyataan ini
hanya boleh ditulis sekali saja dan berada di dalam tag <head>
Message
Copyright © 2009 by heri siswanto
thanks to God and friends id-joomla
Misal : <jdoc:include type="message" />
Pernyatan ini juga hanya boleh sekali ditulis dalam tag <body> dan berfungsi untuk menampilkan pesan system
(system message) dan pesan error (error message) pada saat halama joomla di panggil browser. Css untuk format
dari system message berada pada templates\system\css\system.css
Module
Misal : <jdoc:include type="module" name=”menu” /> atau <jdoc:include type="module" name=”breadcrubs” />
Pernyataan ini akan menampilkan 1 buah module yang akan di tempatkan pada posisi yang ditulis pada attribute
name, misalnya <jdoc:include type="module" name=”menu” /> akan menampilkan satu buah module pada
posisi menu (name=”menu”). Tentunya hanya module yang telah di publish dari backend yang akan ditampilkan.
Attribut tertentu juga dapat ditambahkan untuk mengatur format tampilan dari pernyataan <jdoc:include> module
tersebut. Misalnya penambahan attribute style dan id pas pernyataan berikut <jdoc:include type="module"
name=”menu” style=”rounded” id=”menu-box” />
Modules
Lebih dari satu module dapat ditampilkansesuai posisinya dengan peryataan ini. Nama posisi-posisi tersebut diatur
pada templatedetails.xml. Bermacam-macam module dapat ditampilkan sesuai posisinya dengan menggunakan
pernyataan <jdoc:include type="modules" name=”posisi_module” />
Berikut adalah contoh dari jdoc modules yang biasa digunakan oleh developer template joomla
Catatan : posisi module user3 (name=”user3”) biasanya secara default digunakan untuk module top menu.
Attribute Style
Attribute style dapat digunakan untuk pernyataan <jdoc:include /> module maupun modules. Nilai dari attribute ini
mengacu pada chrome style. Bila attribute style tidak digunakan, maka secara default nilainya adalah “none”.
Module tidak akan menampilkan H3 jika attribute file tidak diberi nilai atau diberi nilai “none”
File templatedetails.xml
fungsi daripada file templateDetails.xml adalah untuk menyimpan informasi detail tentang template, sekaligus
menyimpan intruksi-intruksi yang digunakan pada saat menginstall template pada joomla atau dengan kata lain
sebagi installer template joomla. Apa saja yang terdapat didalam file templateDetails.xml? berikut akan saya coba
jelaskan sesuai dengan yang saya pahami. Untuk mempermudah, saya akn mencoba membagi isi file ini menjadi
2 bagian. Yang pertama kita sebut saja bagian header dan yang ke dua adalah body (ntah itu benar ato tidak
yach? Hehehehehe.... soalnya saya juga masih newbie).
Bagian
Mendefinisikan versi dokument xml yaitu 1.0 dan juag mendefinisikan versi joomla yang sesuai dengan template
serta membrikan type dari file yang diinstall pada joomla.
Bagian
<name>nama template</name>
<version>1.2.0</version>
<creationDate>tanggal pembuatan template</creationDate>
<author>nama pembuatan template</author>
<authorEmail>email pembuat template</authorEmail>
<authorUrl>url pembuat template</authorUrl>
<copyright></copyright>
<license>GNU/GPL version 2</license>
<description>descripsi template</description>
sebai informasi tentang template seperti nama template, versi, tanggal pembuatan, nama pembuat, email, url atau
web pembuatan template, licensi dan juga deskripsi tentang template.
Setalah header, bagian berikutnya yang terdapat dalam file templatedetails.xml adalah body. Di dalam body ini
sendiri adalah tempat untuk mendefinisikan semua file, image dan juga sebagai pengenal posisi module yang
terdapat pada template itu sendiri. Berikut sedikit penjelas mengenai isi daripada body file templatedetails.xml
Files
<files>
<filename>index.php</filename>
<filename>templatedetails.xml</filename>
<filename>css/template.css</filename>
</files>
Images
<images>
<filename>template_thumbnail.png</filename>
</images>
Positions
<positions>
<position>left</position>
<position>right</position>
.....
</positions>
File images_thumbnail.png
Berupa file gambar berukuran kecil/snapshot dari template yang nantonya akan digunakan oleh
templatedetails.xml untuk menampilkan minipreview template. Digunakan juga pada beberapa module tertentu,
misalnya module pemilih template.
File template.css
berfungsi untuk mendefinisikan fungsi-fungsi css yang nantinya akan dipakai untuk perwajahan situs dan biasanya
file ini disimpan didalam folder dengan nama css. untuk file template.css saya sendiri awalnya juga sangat susah
untuk mengerti apa arti dari script yang ada pada file css ini dan tiap-tiap penulisan code dan apa saja efeknya
untuk template. Maklum, saya berawal dari nekat aja untuk belajar bikin template dan awalnya saya hanya belajar
untuk merombak template yang sudah ada. Ok. Sebelum saya membahas tentang CSS untuk joomla, ada baiknya
sedikit saya bahas tentang CSS.
Sebelum ditemukannya CSS, para web designer membuat design web mereka menngunakan metode tabel. Jujur
saja, dulu awalnya saya juga menggunakan metode tabel untuk mendesign web saya dan software yang saya
gunakan masih microsoft frontpage Xp. Jadi, saya harus membuat banyak sekali halaman web yang saya link anta
satu dengan yang lain. Mungkin jika hanya satu atau dua halam saja, itu tidak jadi maslah. Tapi bayang kan jika
dalam sebuah situs terdiri dari ribuan halaman, tentu saja kita harus membuat satu persatu dari halam tersebut.
Dan selain itu, akses situs yang menggunakan metode tabel juga dapat dikatakan lambat dibandingkan situs yang
mengunakan metode CSS sekarang ini.
CSS (Cascading Style Sheet) dimulai pada tahun 1994. dan CSS di fungsikan untuk memberikan solusi dati
metode tabel. Dengan css, para webdesigner bisa membuat templan website meraka labig menarik lagi. Selain itu,
CSS memudahkan dalam mendesign halaman website. Untuk melakukakn layout dari banyak halaman pada
sebuat website, hanya membutuhkan minimal stu buah file CSS. Untuk akses website yang menggunakan metode
CSS, juga di rasa lebih cepat jika dibandingkan dengan metode tabel.
CSS sendiri memberikan kemudahan dalam mengatur format halaman seperti teks, font, image dan hal lain di
dalam halaman web. Misalnya anda membuat style untuk tag heading, <H3>. Anda membuat tag <H3> berwarna
merah. Sekarang jika anda memiliki 10 buah tag <H3> didalam halaman web, dan anda berkeinginan warnanya
menjadi biru, anda tidak harus menggantinya di dalam HTML dan menuju ke 10 tag H3 dan mengganti warnanya.
Yang anda lakukan adalah menggantikan style H3 dari merah ke biru.
Style Sheet
Style sheet dapat diembed ke HTML document. Atau disebut embedded style sheet. Style sheet juga bisa dibuat
sebagai external file dan dilink ke document HTML. Style role bisa dikenakan pada bagian tertentu web page.
Sebagai contoh anda bisa menentukan paragraph tertentu ditampilkan dengan style bold dan italic sementara yang
lain tetap seperti biasa.
Selector
Syntax dari selector kira-kira seperti ini : selector {property1:value;property2:value;...}
Sebagai contoh misalanya kita ingin membuat tag H1 dengan warna huruf green dan latar belakang orange maka
contoh penulisannya adalah : H1 { color:green; background-color:orange;}
Dengan metode seperti itu maka dapat kita artikan bahwa semua tag H1 yang ada didalam halaman web akan
berna green untuk font dan memiliki latar belakang orange. Pada penggalan script diatas, dapat kita definisikan
sebagi berikut :
• Selector adalah bagian pertama sebelum “{}” yang pada contoh diatas adalah H1
• Declaration adalah property dari selector dan memiliki nilai yang pada contoh di atas adalah color:green
atau background:orang;
<link rel=”stylesheet” href=”style.css”> - script tersebut biasanya ditempatkan pada bagian header
dokument anda. Perintah relperlu diatur dengan pernyataan “stylesheet” agar supaya browser dapat
menemukan perintah href sebagai penunjukan ke alamat web (url) sheet.
Body {margin-left: 10%; margin-right: 10%;} – perintah ini dituliskan dengan tujuan agar tampilan halaman
web di layar monitor emiliki batas halaman kiri 10% dan kanan 10% dari lebar monitor.
H2 {margin-top: 8em; margin-bottom: 3em; } – menentukan ruang sebelah atas dan bawah pada tag H2
H2{font-style: italic; font-weight: bold} – melakukan format font H2 menjadi italic(tulisan miring) dan bold
(tulisan tebal)
Body{ font-family: verdana, san-serif;} – menentukan jenis huruf yang aka digunakan pada halam
webpage.
H2{ border: 1px solid blue;} – memberikan border pada tag H2 dengan style solid, ukuran garis 1px dan
warna garis border blue.
:hover{ color: red’} – utnuk warna link ketika pointer berada diatasnya
Setelah kita sedikit membahas tentang CSS, sekarang saya akan memberikan beberapa pengaturan CSS standart
joomla 1.5 yang saya dapatkan dari sebuah situs develop joomla.
body {
font-family: Arial, Verdana, Helvetica, sans-serif;
font-size: 12px;
color: #666;
margin-top: 0px;
background-color: #FFFFFF;
}
/* Global Formatting */
h1 {font-size:16px;line-height: 1em;font-weight: 900;}
h2 {font-size:15px;line-height: 1em;font-weight: 900;}
h3 {font-size:14px;line-height: 1em;font-weight: 900;}
h4 {font-size:13px;line-height: 1em;font-weight: 900;}
h5 {font-size:12px;line-height: 1em;font-weight: 900;}
h6 {font-size:11px;line-height: 1em;font-weight: 900;}
td{font-size: 12px;}
th{font-size: 12px;}
a:link {color: #CC6600;}
a:hover {color: #659FDE;}
a:visited {color: #CC6600;}
img {border: 0 none;}
/* Clears Divs */
.clr{clear: both;}
/* Writen by Authors name can also be seen on search com results href and intro text
& Category listing if it has a article count*/
.small {
background-color: #99FF00;
}
/* Dates */
.createdate {}
.modifydate {}
.newsfeeddate {}
/* Dates */
/* Category */
.category {}
a.category:link, a.category:visited, a.category:hover {}
/* End category */
/* this class add formating to the right side of the content front page.
it will overwrite the hole right and take formating over article_column after the
first col
*/
.column_separator{}
div.caption {}
div.caption img {}
div.caption p {}
/* Need to Edit this is not My code See plugins images */
/* New added */
/* com_archive */
/*
li |row | 1
h4 |title |
h5 |metadata |
span |created-date |
span |author |
div |intro | */
/* It's LI in a UL list */
.row1{}
/* H4 Header tag for Title */
.title{}
/*Com Polls*/
/* Has Styles inside its own com folder */
/*td |smalldark | */
.smalldark {}
/*com_search*/
.searchintro{}
/*Search Form keyword highlight*/
.highlight {}
/* Table Control */
table.moduletable {}
/* Font Control */
/* Title Control */
table.moduletable th {}
/* List Control */
table.moduletable ul {}
table.moduletable li {}
/* Link Control*/
table.moduletable a:link{}
table.moduletable a:visited {}
table.moduletable a:hover {}
table.moduletable a:active {}
/* Table Control */
/* Module Content Control*/
div.moduletable {}
/* Font Control */
/* Title Control */
div.moduletable h3 { }
/* List Control */
div.moduletable ul {}
div.moduletable li {}
/* Link Control*/
div.moduletable a:link{}
div.moduletable a:visited {}
div.moduletable a:hover {}
div.moduletable a:active {}
/* Font Control */
/* Title Control */
div.module h3 { }
/* List Control */
.module ul {}
.module li {}
/* Link Control*/
.module a:link{}
.module a:visited {}
.module a:hover {}
.module a:active {}
/* Group */
div.bannergroup {}
/* Header */
div.bannerheader{}
/* Header */
div.bannerheader-ban-sfx{}
/* footer */
div.bannerfooter-ban-sfx{}
/* ##################### END MODULE BANNERS STYLE CUSTOM SUFFIX #################*/
/* Link Control*/
.latestnews a:link{}
.latestnews a:visited {}
.latestnews a:hover {}
.latestnews a:active {}
/* ##################### END MODULE LATESTNEWS STYLE CUSTOM SUFFIX
#################*/
/* mod_latestnews */
/*
ul |latestnews | moduleclass_sfx
li |latestnews | moduleclass_sfx
a |latestnews | moduleclass_sfx */
.latestnews-news-sfx{}
table |pollstableborder |
See" forms.css
input-submit |NA |button
.search {}
/* last 2 for search class's are in com_search but added here*/
/* results if not search google */
ul.menu {
background-color: #686868;
list-style: none;
}
.menu a{
color: White;
display: block;
}
.menu a:hover{
color: #F0FFFF;
background-color: #627DAA;
display: block;
}
/* end of Level 1 */
/* Level 2 Grey */
.menu ul {
color:white;
background-color: transparent;
list-style: none;
padding: 0px;
}
.menu ul a{
color:white;
background-color: #D8D5DC;
display: block;
text-indent: 1em;
}
.menu ul li a:hover{
color:white;
background-color: #A4B9CE;
}
/* End of Level 2 */
/* */
.menu ul ul a {
color:white;
background-color: Black;
display: block;
text-indent: 2em;}
/* Level 4 Green */
.menu ul li ul li ul li {
list-style: none;
color: White;
background-color: transparent;
}
.menu ul li ul li ul li a{
color: White;
background-color: #B1CD32;
display: block;
text-indent: 3em;
}
.menu ul li ul li ul li a:hover{
color: White;
background-color: #677620;
}
/* End of Level 4 */
/* Level 5 Maroon */
.menu ul li ul li ul li ul li{
list-style: none;
color: White;
background-color: transparent;
}
.menu ul li ul li ul li ul li a{
color: White;
background-color: #660000;
display: block;
text-indent: 4em;
}
.menu ul li ul li ul li ul li a:hover{
color: White;
background-color: #990000;
}
/* End of Level 5 Maroon */
#current {
/* list-style: disc url(../images/mw_readon.png);*/
/* image issue with the rollover need to be add to others href link */
}
/* */
/* Legacy
Mainlevel menu */
.mainlevel {}
a.mainlevel {}
a.mainlevel:hover {}
/* End Mainlevel menu */
/* Sub Menu */
.sublevel{}
Bingung yach melihat penggalan script diatas? Kalo emang bingung, sama seperti saya waktu belajar CSS
template joomla. Tapi untungnya, ada layout CSS template joomla yang sangat membantu saya dalam
mempelajari script diatas. Untuk layout CSS template joomla, bisa dilihat pada file html yang saya sertakan satu
paket dengan ebook.
Setelah mempelajari materi diatas, lalu bagaimana sebenarnya dalam mendesign template joomla? Materi ini
memang lebih mengarah ke pengetahuan tentang file yang dibutuhkan dalam mendesign template joomla dan
Style Sheet pada joomla. Untuk materi tentang bagaimana cara membuat template joomla dari awal, akan saya
bahas pada kesempatan lain dan jika memang ada permintaan dari anda juga. Jika memang saya merasa dengan
materi ini anda sekali sudah dapat membuat template joomla sendiri dan tidak ada permintaan untuk ebook
membuat template joomla dari awal, ada kemungkinan ebook tentang template joomla ini sampai disini.
Harapan saya, dengan materi yang saya buat ini dapat membatu anda yang sedang belajar membuat template
joomla seperti saya. Sekali lagi, saya juga masih newbie dan masih perlu banyak belajar juga.
Heri Siswanto – kelahiran Magetan tahun 1985 dan bertempat tinggal di banyuwangi. Tahun
2004 lulus dari SMKN 1 Banyuwangi kejuruan Tehnik Informatika. Setalah lulu mencoba
belajar bekerja di jember sebagai teknisi pada sebuah delaer komputer selama dua tahun.
Pertengahan tahun 2006 mencoba belajar sebagai editing video pada sebuah perusahaan
kecil di banyuwangi. Awal tahun 2007 mencoba merantau ke Denpasa – Bali. Dan sempat
bekerja sebagai teknisi pada sebuah dealer komputer. Berawal dari dealer komputer
tersebut, di akhir tahun 2008 mulai tertarik belajar joomla dan bergabung dengan forum
joomla indonesia ( http://id-joomla.com ). Hasilnya dalam 1 bulan dapat membuat website
berbasis joomla dan virtuemart untuk dealer tempat bekerja. dan sekarang, kembali ke
banyuwangi dan bekerja sebagai operator warnet di banyuwangi. Penulis dapat dihubungi di
siswanto.heri.09@gmail.com . website berbasis joomla yang sudah di buat adalah http://alumnismkn1bwi.co.cc
dan http://artikelheri09.co.cc .