Membangun CMS dengan PHP [Bag.2]

October 21st, 2008

Di artikel sebelumnya, kita sudah membahas tentang sistem module dan plugin yang bekerja di CMS yang akan kita bangun. Sekarang, kita masih akan membahas tentang sistem module dan plugin serta beberapa function yang akan dibuat.
Kali ini, kita akan menggunakan PHP5rc2 dan database MySQL

Classes
Untuk memudahkan pekerjaan kita, ada baiknya kita siapkan beberapa class yang kira-kira akan banyak digunakan nantinya.
1. Class untuk SQL
“your_site_dir/inc/sql.inc.php”

< ?PHP
class sql{

public $qcount; //menghitung banyaknya query yang kita buat

function sql(){

$this->qcount=0; //diberi nilai 0 karena kita belum memiliki satu query pun $db=@mysql_connect($host,$user,$pass,$dbname); //membuat string yang siap menerima parameter yang dibutuhkan untuk koneksi ke database

if($db){ // memeriksa koneksi yang dibuat
return $db; //koneksi valid
}else{
die(”Gagal:
“.mysql_error() ); //Koneksi tidak valid, dan tampilkan pesan kesalahan
}
}

function pilih_db($dbname){
return mysql_select_db($dbname); //memilih database yang akan digunakan
}

function perintah($query){
$this->qcount++; //menambah jumlah query pada $qcount tiap kali function perintah dipanggil
return mysql_query($query); //mengeksekusi query ke database
}

function _fetch_row($id){
return mysql_fetch_row($id); //mengambil 1 baris data, hasil dari pemanggilan function perintah
}

function _fetch_array($id){
return mysql_fetch_array($id); //function hampir sama dengan _fetch_row. perbedaannya hanya terletak pada data yang ditampilkan
}

function _insert_id(){
return mysql_insert_id(); //mengembalikan nilai ID yang dibuat untuk kolom AUTO_INCREMENT dari perintah INSERT
}

function _affected_rows($id){
return mysql_affected_rows($id); //memperlihatkan banyak baris yang berubah akibat perintah INSERT, UPDATE atau DELETE yang dilakukan.
}

function _num_rows($id){
return mysql_num_rows($id); //menghitung jumlah baris, hasil dari perintah SELECT
}

function _fetch_object($id){
return mysql_fetch_object($id); //hampir sama seperti _fetch_array
}

function _mysql_error(){
return mysql_error();
}

}
?>

Simpan class diatas pada “direktori_website_anda/inc/” dengan nama “sql.inc.php”.

2. Class konfigurasi

< ?PHP
class config {

public $hostname;
public $user;
public $pass;
public $namadb;

function config(){
$this->hostname=”localhost”;
$this->user=”root”; //username yang digunakan pada host
$this->pass=””;
$this->namadb=”CMS”;
}
}

?>

Kemudian simpan di “direktori_website_anda/inc/” dengan nama “config.inc.php”

3. Site Class

Sekarang kita akan membuat class yang akan mendapatkan semua informasi tentang website yang akan dibangun. Dari koding dibawah kita akan melihat adanya function parse_url() yang berguna untuk medefinisikan URL dari website kemudian akan memecahnya ke dalam array. Berikut daftar elemen-elemen yang dapat ditanganinya:
* scheme - e.g. http
* host
* port
* user
* pass
* path
* query – setelah tanda tanya (?)
* fragment – setelah tanda pagar (#)

Dibawah ini adalah koding dari class site : simpan di “direktori_website_anda/inc/” dengan nama “site.inc.php”:

< ?PHP
class site{

public $site; // berguna untuk mengatur informasi situs yang akan digunakan pada class

function site(){
global $sql; //memanggil class $sql sebagai variabel global $purl=parse_url(’http://’.$_SERVER[’HTTP_HOST’]); //berfungsi untuk mengatur elemen URL
$purl=$purl[’host’]; //mengubah nilai $purl menjadi “host”
$host=explode(”.”,$purl); //$purl dipecah menjadi array dan dibatasi dengan titik
if($host[0]==’www’){ //cek nilai dari hostname
$this->site[’host’]=$host[1]; //jika elemen pertama hostname adalah www, maka $site[‘host’] akan di set menjadi elemen kedua dari hostname
}else{
$this->site[’host’]=$host[0]; //jika bukan www, maka variabel $site[‘host’] akan di set menjadi elemen pertama dari hostname
}
$site_info=$sql->_fetch_row($sql->_query(”SELECT `sites`.`site_ID`,`sites`.`site_name`FROM`sites`WHERE(`sites`.`site_host` = ‘{$this->site[’host’]}’) LIMIT 1″)); //memilih informasi tentang website dari database
$this->site[’ID’] = $site_info[0]; //ID website dari $site variable
$this->site[’name’] = $site_info[1]; //set nama website dari $site variable
$this->page(); // memanggil function page()
}

function page(){
if(isset($_REQUEST[’page’])){
$this->site[’page’]=$_REQUEST[’page’];
}else{
$this->site[’page’]=”main”;
}
}
}
?>

Class diatas akan menghasilkan array objek seperti dibawah ini:

$site->site[’host’] – akan “menghilangkan” www dan .com/.net/.org pada URL.cth : www.rumahweb.com akan menjadi rumahweb

$site->site[’ID’] – ID website yang terdapat pada database

$site->site[’name’] – Nama website

$site->site[’page’] – Halaman yang di request (www.url.com?page=thispage)

4. Class plugin

< ?PHP

class plugins{

public $pcount; //akan menyatakan banyak plugin yang akan di load
public $plugin_list; //memberikan informasi daftar plugin dalam array
public $plugin_error; //melihat kesalahan2 apa saja yang dibuat sewaktu me-load plugin
public $lcount; //jumlah plugin pada daftar plugin

function plugins($site_id=””){
global $sql,$site; //memanggil $sql dan $site sebagai variabel global
$this->pcount=0; //0 menyatakan bahwa belum ada plugin yang di load
$this->lcount=0; //0 menyatakan belum ada satupun plugin pada daftar plugin
if($site_id==””){ //melihat apakah admin menolak id website pada daftar plugin untuk beberapa website lain
$site_id = $site->site[’ID’]; //jika id website diperbolehkan dilihat dari site id
}
$plugins_list=$sql->_query(”SELECT
plugins.plugin_ID,
plugins.plugin_name,
plugins.plugin_dir,
plugins.plugin_file
FROM
plugin_status,
plugins
WHERE
plugins.plugin_ID = plugin_status.plugin_ID AND
plugin_status.site_ID = ‘$site_id’ AND
plugin_status.plugin_status = ‘initialized’
ORDER BY
plugins.plugin_priority DESC”);
while($plugin=$sql->_fetch_object($plugins_list)){
$this->lcount++; // menambah nilai lcount pada setiap plugin yang di tambahkan
$this->plugin_list[’plug_ID’][]=$plugin->plugin_ID; //menambahkan ID plugin pada daftar
$this->plugin_list[’plug_name’][]=$plugin->plugin_name; //menambah nama plugin pada daftar
$this->plugin_list[’plug_dir’][]=$plugin->plugin_dir; //menambah direktori plugin pada daftar
$this->plugin_list[’plug_file’][]=$plugin->plugin_file; //menambah file plugin pada daftar
}
if($this->pcount==0){ //melihat apakah ada plugin yang telah di load
$this->load(); //jika tidak ada, maka function load() akan dipanggil untuk me-load plugin
}
}

function load(){ //me-load plugin dari daftar plugin
if(is_array($this->plugin_list)){ //memastikan bahwa daftar plugin tersedia dalam array, untuk menghindari kesalahan
for($i=0;$i< $this->lcount;$i++){
if(file_exists(”{$this->plugin_list[’plug_dir’][$i]}/{$this->plugin_list[’plug_file’][$i]}/main.plug.php”)){ //memastikan file plugin benar-benar ada
@include(”{$this->plugin_list[’plug_dir’][$i]}/{$this->plugin_list[’plug_file’][$i]}/main.plug.php”);
$this->pcount++; //menambah nilai pcount untuk setiap plugin yang telah di-load
}else{
$this->plugin_error[]=”The plug-in file: /{$this->plugin_list[’plug_dir’][$i]}/{$this->plugin_list[’plug_file’][$i]}/main.plug.php Does not exist”; //jika plugin tidak dapat di load, maka pesan kesalahan akan ditambahkan pada daftar error
}
}
}
}
}
?>

Simpan ke dalam “direktori_website_anda/inc” dengan nama “plugins.inc.php”.

5. Class modules

< ?PHP
class modules{

public $lcount; //akan menyatakan banyak module yang akan di-load ke dalam daftar module
public $mcount; //akan menyatakan banyak module yang akan di load ke website
public $module_list; //akan memberikan informasi ttg module dalam array
public $module_error; //akan melihat kesalahan ketika module di load
public $module_load; //akan memberikan informasi nama2 module yang telah diload

function modules($site_id=””){
global $sql, $site, $plugins; //memanggil class $sql, $site dan $plugin sebagai variabel global
$this->lcount=0;
$this->mcount=0;
if($site_id==””){
$site_id = $site->site[’ID’];
}
$modules_list=$sql->_query(”SELECT
DISTINCT
modules.mod_ID,
modules.mod_name,
modules.mod_dir,
modules.mod_file,
modules.plugin_ID
FROM
module_status,
plugin_status,
modules
WHERE
modules.mod_ID = module_status.mod_ID AND
modules.plugin_ID = plugin_status.plugin_ID AND
module_status.mod_status = ‘initialized’ AND
plugin_status.plugin_status = ‘initialized’ AND
module_status.site_ID = ‘$site_id’”);
while($module=$sql->_fetch_object($modules_list)){
$this->module_list[’mod_ID’][]=$module->mod_ID; //memambah ID module ke daftar plugin
$this->module_list[’mod_name’][]=$module->mod_name; //menambah nama module ke dalam daftar plugin
$this->module_list[’mod_dir’][]=$module->mod_dir; //menambah direktori module ke dalam daftar plugin
$this->module_list[’mod_file’][]=$module->mod_file; //menambah nama file dari module ke dalam daftar plugin
$plug_key=array_keys($plugins->plugin_list[’plug_ID’],$module->plugin_ID); //memilih plugin ID dari daftar plugin dengan menggunakan function array_keys() dan module “plugin_id” sebagai parameter pencarian
$this->module_list[’plug_dir’][]=$plugins->plugin_list[’plug_dir’][$plug_key[0]];
$this->module_list[’plug_file’][]=$plugins->plugin_list[’plug_file’][$plug_key[0]];
$this->lcount++;
}
if($this->mcount==0){
$this->load();
}
}

function load(){
if(is_array($this->module_list)){
for($i=0;$i< $this->mcount;$i++){
if(file_exists(”/{$this->module_list[’plug_dir’][$i]}/{$this->module_list[’plug_file’][$i]}/{$this->module_list[’mod_dir’][$i]}/{$this->module_list[’mod_file’][$i]}.mod.php”)){
include(”/{$this->module_list[’plug_dir’][$i]}/{$this->module_list[’plug_file’][$i]}/{$this->module_list[’mod_dir’][$i]}/{$this->module_list[’mod_file’][$i]}.mod.php”);
$this->module_load[]=$this->module_list[’mod_name’][$i]; //add the modules name to list of loaded modules
$this->mcount++;
}else{
$this->module_error[]=”The module file: /{$this->module_list[’plug_dir’][$i]}/{$this->module_list[’plug_file’][$i]}/{$this->module_list[’mod_dir’][$i]}/{$this->module_list[’mod_file’][$i]}.mod.php Does not exist”;
}
}
}
}

}
?>

Simpan ke “direktori_website_anda/inc” dengan nama “modules.inc.php”. Bentuk dari class module tidak terlalu berbeda dengan class plugin.
Coba perhatikan baris dibawah ini:

$plug_key=array_keys($plugins->plugin_list[’plug_ID’],$module->plugin_ID);

Baris diatas memperlihatkan kelebihan dari function array_keys(). Pencarian module dapat dilakukan dari daftar plugin kemudian melihat module apa saja yang didukung oleh plugin tersebut

6. Class core

< ?PHP

@include(’inc/config.inc.php’);
$config = new config();

@include(’inc/sql.inc.php’);
$sql = new sql($config->dbhost,$config->dbuser,$config->dbpass);
$sql->_select_db($config->dbname);

@include(’inc/site.inc.php’);
$site = new site();

@include(’inc/plugins.inc.php’);
$plugins = new plugins(”1″);

@include(’inc/modules.inc.php’);
$modules = new modules(”1″);

?>
Merupakan class terakhir yang kita butuhkan. Berfungsi untuk menyatukan semua class yang ada pada CMS yang kita bangun.
Simpan pada “direktori_website_anda/inc” dengan nama “core.inc.php”

Selanjutnya kita akan membuat halaman index.php.

< ?PHP
function getmicrotime()
{ $temparray=split(” “,microtime());
$returntime=$temparray[0]+$temparray[1];
return $returntime;
}
$stime=getmicrotime();

@include(’inc/core.inc.php’);

$etime=getmicrotime();
$ftime=round($etime-$stime,6);
?>

Simpan di “direktori_website_anda/” dengan nama “index.php”

Selesai deh dibagian kedua. Pada bagian ketiga, kita akan membahas tentang authentikasi dan block system.

Sampai jumpa pada bagian ke 3!!

WPAU : Fungsi exec()

October 21st, 2008

Wordpress Automatic Plugin adalah salah satu plugin Wordpress yang cukup digemari saat ini karena menawarkan kemudahan untuk melakukan upgrade Wordpress ke versi terbaru secara otomatis.

Namun, plugin ini menggunakan fungsi exec() supaya dapat berjalan dengan baik. Dan sayangnya lagi, ketika berada pada shared hosting, fungsi exec() masuk ke dalam daftar disable_function php. Sehingga plugin tidak dapat berjalan dengan baik.

Apabila fungsi exec() di-disable pada server yang Anda gunakan, silahkan melakukan perubahan pada plugin WPAU tersebut. Berikut langkah-langkah nya :

  • Edit variabel $permission (function runFTPPrelimChecks) pada file wpau_prelimcheck.class.php
  • Sebelum dilakukan pengubahan :

    PHP:

    1. $permissionexec(“ls -l $theFile |awk ‘{print $1}’”, $output, $error);
    2. if($error == 0) {
    3. //get the perms
    4. $thePerms = $this->chmodnum(substr($permission, 1));
    5. //if its 644 or 744 we cannot run man
    6. //tell our wpau guy out there we need to change perms
    7. //we only can write files when they are 766 or 666 lets see
    8. $this->userPermission = $thePerms[0];
    9. if($thePerms[2] <6) {
    10. $canRun = false;
    11. }
    12. }
    13. else {
    14. $canRun = false;
    15. }

    Diubah menjadi :

    PHP:

    1. $permission = is_writable($theFile);
    2. if($permission == false){
    3. $canRun = false;
    4. } else {
    5. $canRun = true;
    6. }
  • Edit fungsi zip_backup (perintah pengubahan permission), pada file wpau_db_backup.class.php
    Sebelum dilakukan pengubahan :

    PHP:

    1. exec(“chmod 755 $archiveName”);

    Diubah menjadi :

    PHP:

    1. chmod($archiveName, 0755);

    Pengubahan seperti diatas telah kami coba untuk melakukan upgrade otomatis dari Wordpress versi 2.3.3 ke Wordpress versi 2.5.1.

    Selamat mencoba!

Disable Klik Kanan

October 21st, 2008

Mungkin Anda sering membuka situs seperti detik.com yang tidak bisa melakukan operasi klik kanan. Manfaat yang bisa di ambil dari mendisable klik kanan adalah user tidak bisa atau meminimalisasi pembajakan content. Susah payah kita membuat content yang bagus, tapi dengan mudahnya di klik kanan terus di copy paste ke situs lain. Berikut adalah kode javascript yang berfungsi untuk mendisable penggunaan klik kanan.

JavaScript:

  1. &lt;script language=JavaScript&gt;
  2. &lt;!–
  3. //Disable right click script III- By Renigade (renigade@mediaone.net)
  4. //For full source code, visit http://www.dynamicdrive.com
  5. var message=“”;
  6. ///////////////////////////////////
  7. function clickIE() {if (document.all) {(message);return false;}}
  8. function clickNS(e) {if
  9. (document.layers||(document.getElementById&amp;&amp;!document.all)) {
  10. if (e.which==2||e.which==3) {(message);return false;}}}
  11. if (document.layers)
  12. {document.captureEvents(Event.MOUSEDOWN);document.onmousedown=clickNS;}
  13. else{document.onmouseup=clickNS;document.oncontextmenu=clickIE;}
  14. document.oncontextmenu=new Function(“return false”)
  15. // –&gt;
  16. &lt;/script&gt;

Script tersebut disimpan pada area header, yaitu antara tag [head] dan sebelum tag [/head]. Selamat mencoba untk mengamankan content situs Anda yang berharga.

Kode Kesalahan pada HTTP

October 21st, 2008

Apakah Anda pernah menemukan halaman seperti ini ?
Error 500

Gambar diatas merupakan salah satu dari kode kesalahan yang dikirimkan oleh protokol HTTP. Ketika Anda (sebagai client, dalam prinsip client-server) mengakses ke sebuah website, webserver akan melayani, melakukan pengecekan dan mengirimkan kembali hasil dari permintaan tersebut kepada browser. Apabila hasil tidak ditemukan atau ada kesalahan konfigurasi pada server, maka hasil yang akan dikirimkan ke browser adalah kode dari kesalahan tersebut.

Lalu bagaimana jika kesalahan tersebut terjadi pada account hosting Anda ?
Berikut daftar kode kesalahan HTTP yang paling sering dijumpai dan hal yang harus dilakukan ketika Anda (sebagai pemilik website) menemukan kode kesalahan tersebut:

  • Error 401 : Unauthorized
    Status ini menyatakan bahwa pengunjung website tidak memiliki hak akses untuk folder yang diproteksi oleh password. Apabila Anda merasa ada kesalahan pada pengaturan proteksi folder, silahkan coba dicek kembali melalui menu Password Protect Directories di CPanel.
  • Error 403 : Forbidden
    Pada status 403, pengunjung sama sekali tidak dapat mengakses ke folder tujuan. Status 403 muncul disebabkan oleh kesalahan pengaturan hak akses pada folder.
    Yang harus dilakukan :
    Cek kembali hak akses dari folder tujuan. Ingat, hak akses yang normal untuk folder adalah 755 (rwxr-xr-x).
  • Error 404 : Not Found
    Status 404 menyatakan bahwa file / folder yang diminta, tidak ditemukan.
    Yang harus dilakukan :
    Pastikan file / folder sudah di-upload ke account hosting, dan pastikan nama file / folder tersebut sudah sesuai dengan nama file / folder yang akan diakses (terutama pada penggunaan huruf besar dan kecil / case-sensitive).
  • Error 406 : Not Acceptable
    Status 406 menyatakan bahwa permintaan dari browser tidak dapat dipenuhi oleh server. Anda dapat menghubungi kami apabila menemukan error ini pada account hosting yang Anda miliki.
  • Error 500 : Internal Server Error
    Status 500 menyatakan bahwa ada kesalahan konfigurasi pada account hosting.
    Yang harus dilakukan :
    Cek kembali file .htaccess pada account hosting Anda, dan pastikan setiap barisnya sudah tertulis dengan benar.
  • Error 509 : Bandwidth Limit Exceeded
    Status ini bukan status resmi dari HTTP. Menyatakan bahwa penggunaan bandwidth pada account hosting sudah melebihi quota yang ditetapkan untuk account hosting Anda. Silahkan hubungi kami untuk informasi selengkapnya.

Halaman yang menampilkan kode kesalahan diatas dapat diubah sesuai keinginan Anda. Cara pengubahan halaman tersebut dapat Anda simak pada artikel Customize Error Pages

Membuat Database di Account Hosting

October 21st, 2008

Terkait dengan tampilan cPanel 11 X3 theme yang bagi sebagian masih sedikit membingungkan, kali ini kami membahas cara membuat database di server. Langkah pertama tentunya adalah masuk ke cPanel dulu, silahkan login dengan username dan password yang telah kami berikan sebelumnya. Pilih menu atau icon MySQL Database seperti yang terlihat di bawah.

Anda akan diarahkan ke halaman baru, yaitu halaman MySQL Database. Silahkan Anda membuat database pada form Create New Database, misalnya anda membuat database “blog”. Setelah itu silahkan buat user untuk database pada form Add New User, masukan user database yang diinginkan, misalnya “root” dan password “root01″. Karena layanan hosting yang Anda gunakan adalah shared hosting yang artinya dalam satu server digunakan secara bersama-sama dengan user lain, maka untuk membedakan antara user satu dengan yang lainnya, nama database dan user yang telah dibuat akan diawali dengan user cPanel misalnya nama database menjadi “dhyar_blog” dan untuk databasenya menjadi “dhyar_root”.

Setelah membuat database dan user database, langkah selanjutnya adalah menghubungkan antara database dan usernya. Silahkan scrol kebawah lagi cpanel Anda. Anda akan menemukan bagian Add User to Database, disana terdapat menu dropdown nama database dan user database. Silahkan Anda pilih “dhyar_blog” dan dibagian user pilih “dhyar_root” lalu klik tombol submit.

Anda akan diarahkan ke halaman berikutnya, yaitu Manage User Privilage(hak akses untuk user yang dihubungkan). Yang perlu Anda lakukan adalah mencentang checkbox All Privilage(semua centang) Lalu Klik Make Change

setelah itu klik Go Back. Database Anda telah terbuat :).

Spam Assasin Memprotect Email dari Spam

October 21st, 2008

SpamAssasin adalah salah satu fasilitas hosting yang ditawarkan oleh Rumahweb. Dengan menggunakan metode dan algoritma tertentu, SpamAssasin menyaring e-mail masuk sehingga e-mail account milik pelanggan web hosting terlindungi dari SPAM. SpamAssasin dapat memberikan tanda dengan mengubah subject e-mail atau langsung menghapus e-mail SPAM yang masuk.

Fitur Utama SpamAssassin:

  • Pengecekan Header Email
  • Pengecekan isi email
  • Pengelompokan Email address secara otomatis/manual menjadi whitelist ataupun blacklist
  • DNS blocklist

Setting SpamAssassin

  • Login ke cPanel, Pilih SpamAssassin
  • Klik Tombol Enable SpamAssasin

    Anda akan diarahkan ke halaman selanjutnya. Abaikan halaman ini, lalu klik link Go Back
  • Langkah selanjutnya di bagian filter ada dua bagian, yaitu Auto Delete atau Disable Auto Delete

    Pilih autodelete untuk lebih memudahkan
  • Kemudian klik Tombol Configure SpamAssassin

    Anda akan diarahkan kembali ke halaman baru. Masukan email address yang dianggap whitelist dan
    blacklist

    . Klik Tombol save lalu kembali ke halaman spamassassin dengan klik link Go Back.

Pengaktifan spamassassin telah selesai. Silahkan Lakukan langkah selanjutnya ke filtering email di menu Mail.

File Index Web

October 21st, 2008

Ketika pertama kali mengakses nama domain Anda yang baru di aktivasi, Anda akan menemukan isi website Anda adalah halaman Underconstructions. Secara default kami menyisipkan file home.htm pada account baru, sehingga akan menampilkan underconstruction pada saat pertama kali account anda diaktifkan. Hal ini kami lakukan supaya account Anda tidak menampilkan list file/folder yang jika dibiarkan akan sangat riskan terhadap keamanan. Kenapa? Karena orang yang mengakses bisa membaca dan melihat struktur account domain Anda. Itulah kenapa File Index ini sangat penting.

Secara default urutan index file server di rumahweb adalah sebagai berikut : index.html index.php index.htm. Namun Anda bisa menentukan index file sendiri pada setiap folder sesuai dengan keinginan Anda. Cara mengubah index file bisa dilakukan dengan mengedit file .htaccess di folder public_htm, silahkan tambahkan script berikut:

PHP:

  1. DirectoryIndex best_design.weirdext

Silahkan ganti best_design.weirdext dengan file yang Anda kehendaki, misalnya namaperusahaan.htm. Jadi ketika anda mengakses domain anda atau directory, file yang pertama kali diakses adalah namaperusahaan.htm dan bukannya index.html.

Selamat mencoba:)

Upload dengan File Manager di cPanel X3 Theme

October 21st, 2008

Berikut adalah panduan untuk mengupload file melalui File Manager di cPanel 11 X3 themes.

Loginlah ke cpanel dengan username dan password yang telah kami berikan ketika aktivasi account, tampilan cPanel 11 X3 theme adalah sebagai berikut:

Klik icon File Manager, akan muncul popup windows seperti dibawah.

  • Home Directory : adalah directory root account Anda
  • Web Root(public_html/www): adalah document root account Anda, Silahkan pilih radio button ini untuk mengupload file-file web ke server
  • Public FTP Root: Folder FTP
  • Show Hidden Files: akan menampilkan file-file yang tersembuny
  • Skip this question, and always… : akan melompati popup windows ini pada login berikutnya(tidak kami sarankan)

Pilihlah settingan seperti yang terlihat pada gambar diatas, yaitu pilih radio button web root(public_html/root) dan centang checkbook Show Hidden File(dotfiles) maka Anda akan diarahkan pada halaman baru File Manager. Tampilan halaman File Manager adalah seperti terlihat di bawah:

Secara garis besar, pada halaman File Manager ini terbagi menjadi 3bagian utama. Yaitu shortcut yang ada di bagian atas, navigasi directori pada bagian kiri dan posisi directory pada bagian kanan. Fungsi dari shortcut bagian atas sama dengan fungsi dari File Manager yang lama, hanya saja ada beberapa tambahan shortcut, yaitu:

  • Download : shortcut download akan aktif jika Anda klik nama file, Anda bisa download file tersebut ke komputer lokal Anda.
  • Code Editor : Untuk memudahkan Anda mengedit script menggunakan code editor.
  • HTML Editor : Fungsinya hampir sama dengan code editor
  • Compress : Fasilitas baru di File Manager untuk mengkompres File/Folder menjadi .zip

Untuk memudahkan navigasi ke suatu direktori/folder, Anda bisa menggunakan area sebelah kiri dengan membuka tree atau tanda (+) di samping folder. Atau Anda juga bisa double klik pada area sebelah kanan untuk menuju/masuk ke suatu folder/direktori. Untuk melakukan suatu opersai secara bersama pada beberapa file/folder (misalnya menghapus atau mengkompress) Anda bisa centang checkbok disamping icon folder atau file. Fasilitas baru dan yang lebih memudahkan Anda dalam melakukan operasi pada File Manager juga bisa dengan cara klik kanan pada baris nama file/folder di sebelah kanan, seperti terlihat pada gambar dibawah.

Untuk upload, Anda tinggal klik icon upload yang ada di bar atas, dan Anda akan menuju halaman baru seperti terlihat pada gambar di bawah.

Perlu diperhatikan disini adalah jika Anda mengupload file yang sudah ada sebelumnya(mereplace file lama dengan file baru dengan nama yang sama), pastikan bahwa checkbook overwrite Exixting File di centang sebelum Anda klik browse untuk mencari file yang akan diupload.

Ok, selamat mengeksplore dan mengupload file-file website Anda. :)

Tutorial: Upload File dengan Legacy File Manager di cPanel 11

October 21st, 2008

Seperti disebutkan sebelumnya bahwa di cPanel 11 Themes X3 ada fasilitas baru, yaitu Legacy File Manager. Fungsi dari Legacy File Manager adalah untuk mengupload file ke server. Kabar gembira bagi Anda yang telah terbiasa dengan tampilan File Manager cpanel lama, Legacy File Manager ini mirip sekali dengan File Manager di cpanel lama.

1. Login ke cpanel dan pilih Legacy File Manager. Nanti akan ada popup windows seperti dibawah, silahkan samakan settingannya.

  • Home Directory : adalah directory root account Anda
  • Web Root(public_html/www): adalah document root account Anda, Silahkan pilih radio button ini untuk mengupload file-file web ke server
  • Public FTP Root: Folder FTP
  • Show Hidden Files: akan menampilkan file-file yang tersembuny
  • Skip this question, and always… : akan melompati popup windows ini pada login berikutnya(tidak kami sarankan)

2. Setelah klik Go, anda akan menuju halaman Legacy File Manager pada jendiela baru seperti gambar dibawah.

Ada dua area pada halaman Legacy File Manager, sebelah kiri dan sebelah kanan. Pada sebelah kanan ada 3 menu utama, yaitu:

  • Upload Files: Untuk upload File
  • Create New Folder: Untuk membuat folder baru
  • Create New File: Untuk membuat file baru

Sedangkan pada area kanan, keadaanya akan selalu berubah sesuai operasi yang sedang dilakukan di sebelah kiri. Pada defaultnya jika Anda klik sebuah file, area
sebelah kanan akan menampilkan beberapa menu, yaitu:

  • Show File Content
  • Extract File Content: Pilihan ini akan muncul jika Anda klik file kompresi(.zip) di area sebelah kiri
  • Delete File: Untuk delete file/folder
  • Edit File With Code Editor: Untuk edit file dengan code editor, sehingga lebih memudahkan anda untuk menelusuri alur sebuah script
  • Edit File: Untuk edit file seperti notepad(tidak ada no baris dan warna)
  • Change Permission: mengubah permission suatu file/folder
  • Rename File: Mengubah nama suatu file/folder
  • Copy File: Menyalin File/Folder
  • Move File: Memindahkan File/Folder
  • Download File: download file yang dipilih
  • Url: ini akan menunjukan preview suatu file di browser

3. Untuk upload file, silahkan klik link Upload Files, nanti Anda akan diarahkan pada jendela baru seperti dibawah,

Jika Anda akan mengupload ke suatu directory, silahkan klik terlebih dahulu icon folder(bukan teksnya), lalu klik Link upload File di menu atas. Untuk upload file yang sudah ada sebelumnya, silahkan Anda centang checkbook Overwrite Exixting Files terlebih dahulu.

Perubahan Themes cPanel Menjadi X3

October 21st, 2008

Sejak cPanel 11 di release dan mulai digunakan pada server-server hosting Rumahweb, Theme X3 dipilih menjadi theme default. Theme atau tampilan baru ini memiliki beberapa fitur dan keunggulan dibandingkan dengan theme versi sebelumnya(X dan X2). Fitur dan keunggulannya antara lain:

  • Tampilan lebih cantik dan ringan.
  • Menggunakan ajax sehingga memiliki efek visual yang lebih mengesankan.
  • Dilengkapi dengan video tutorial sehingga semakin mempermudah user dalam mengoperasikannya.
  • Memiliki beberapa fasilitas tambahan seperti Legacy File Manager, Backup, Restore dan lain-lain.

Namun nampaknya beberapa pelanggan yang terlanjur sudah familiar dengan themes cpanel yang lama harus menyesuaikan diri kembali Utamanya dengan Fasilitas File Manager.