Membangun CMS dengan PHP [Bag. 1]

Content Management System (CMS) merupakan sekumpulan script dan sebuah database yang dapat dijalankan pada banyak website yang sama sekali berbeda walaupun berjalan secara bersamaan. Atau dengan kata lain, menggunakan kode yang sama, tapi terpisah antara satu dengan yang lain. CMS sangat memudahkan seseorang untuk mengatur situsnya. Ada banyak CMS yang dikembangkan oleh para developer, baik yang berlisensi GPL ataupun yang bersifat komersial. Detail mengenai beberapa CMS yang berlisensi GPL, dapat dilihat www.opensourcecms.com.
Kali ini kita akan mencoba membangun sebuah CMS, dengan menggunakan bahasa pemrograman PHP dan database MySQL.

Artikel ini akan dibagi kedalam 5 bagian, dan di bagian pertama kita akan membahas dasar dari sebuah CMS secara umum, dan persiapan-persiapan apa saja yang akan dibutuhkan.

Permulaan

Langkah pertama yang harus dilakukan adalah menulis. Coding? Oh, tentu saja bukan. Ingat, dalam projet apapun, perencanaan adalah sebuah hal yang mutlak dilakukan. Makanya sekarang kita tidak akan memulai dengan coding, tapi kita akan mulai dengan selembar kertas dan pensil untuk menggambarkan diagram yang kira2 akan menjadi dasar untuk coding kita nantinya.

Kira2 yang akan dibutuhkan adalah sbb:

  • Database
  • Halaman index
  • Plugin
  • Module
  • Blok Content

ehe… bagus bukan gambar diatas? Itu merupakan gambaran dari sistem yang akan kita buat. Hmm, kalau dijelaskan, maka kurang lebih akan seperti ini: Halaman index akan melakukan koneksi ke database, komudian akan memilih plugin yang digunakan, lalu plugin akan memilih modul yang digunakan pada tiap2 plugin, lalu modul akan memilih blok content yang akan digunakan (dengan beberapa syarat, antara lain: tingkat autentikasi). Terakhir, semuanya akan dikembalikan ke halaman index yang akan membentuk sebuah website.

Plugin memegang peranan penting pada sebuah CMS. Begitu juga dengan yang akan kita buat, jika sebuah plugin tidak digunakan, maka mudol yang mengisi plugin tersebut juga tidak akan digunakan. Dan pada akhirnya, blok content yang mengisi modul juga tidak akan di-load.

Authentikasi

Authentikasi sangat menentukan boleh tidaknya seorang user memasuki halaman tertentu. Logikanya, seorang user biasa tentu tidak akan dapat (dan tidak diperkenankan) memasuki admin area dari sebuah situs, bukan? Yang berhak, tentu saja sang administrator dari situs tersebut.
Lalu bagaimana cara menentukan apakah user tersebut administrator atau bukan?

Authentikasi yang kita buat, akan menggunakan sebuah plugin yang akan mencocokkan username dan password -dari user yang melakukan login- dengan yang ada di database. Dan jika cocok, maka plugin akan memilih no ID, dan Group ID dimana user tersebut terdaftar.
Data yang didapat dari plugin tsb kemudian akan disimpan kedalam sebuah multi-dimensional array (cari pengertian di net) yang siap digunakan dibagian mana saja dari website
Setelah semua proses login selesai, username akan di simpan kedalam sebuah cookie bersamaan password yang telah dienkripsi dengan menggunakan MD5
Dan bagaimana jika username dan password yang dimasukkan salah?
Plugin akan tetap membuat array yang berisi informasi user dan dianggap sebagai bad login. Pada akhirnya, user akan tetap dianggap sebagai pengunjung biasa, dan tidak ada cookies yang akan dihasilkan dari proses ini.

Kenapa menggunakan cookie?
Cookie akan diload pada setiap halaman, dan masih ingatkan isi dari cookie kita tadi?Artinya, user tidak perlu melakukan proses login dua kali (atau lebih), kecuali jika user tersebut logout yang berarti akan menghapus informasi username dan passwordnya dari dalam cookie.

Lalu multi-dimensional array yang disimpan akan digunakan untuk apa?
Informasi yang terdapat pada array tersebut akan digunakan untuk memilih blok content yang akan digunakan. Blok content akan dipilih berdasarkan plugin, modul, Id user dan Group dimana user tersebut terdaftar.
Contoh nih:
Seorang admin, tentu akan memiliki blok content yang lebih banyak dari pada user yang terdaftar sebagai member biasa. Dalam hal ini, pemilihan blok dilihat dari group dimana user tersebut terdaftar, admin dan member biasa. Sehingga blok content yang di-load juga akan berbeda.

Template

Template akan mengatur tampilan dari blok content yang telah di-load. Apakah polling akan diletakkan disebelah kiri atau disebelah kanan?atau shoutbox ditaruh dibagian mana?Nah kurang lebih seperti itu masalah yang akan dihadapi jika tidak menggunakan template system untuk CMS yang akan kita bangun.

Template dibuat dengan menggunakan XML yang tujuannya adalah untuk mempercepat waktu parsing. Langkah awal untuk pembuatan template adalah menentukan bagaimana kira2 tampilan website yang diinginkan.Menggunakan 2 kolom atau 3 kolom?

Blok yang akan digunakan kurang lebih dibuat seperti ini:
$blok[1] : semua blok yang terdapat pada kolom 1

$blok[2] : semua blok yang terdapat pada kolom 2

$blok[3] : semua blok yang terdapat pada kolom 3

dst.
Penggunaan array sangat menentukan di kolom berapa sebuah blok akan dimunculkan. Dan jika pada satu kolom terdapat lebih dari stu blok, maka kemungkinan array yang dibuat adalah sbb:

$blok[1][1] : blok pertama pada kolom pertama

$blok[2][3] : blok ketiga pada kolom kedua

$blok[3][1] : blok pertama pada kolom ketiga

Dan bentuk jadinya akan seperti ini,

Admin area
Admin area pada dasarnya akan memudahkan administrator untuk melakukan semua hal yang berkaitan dengan website. Mulai dari tampilan (cth: memilih template), mengatur user, hingga menentukan blok2 apa saja yang akan digunakan.

Ok, segini dulu teori singkatnya.. Nanti kita lanjutkan lagi ke Bag. 2

Be Sociable, Share!

2 Replies to “Membangun CMS dengan PHP [Bag. 1]”

Leave a Reply

Your email address will not be published. Required fields are marked *