
Tutorial Memasang CKEditor dan KCFinder di CakePHP
Kerjaan kantor saya saat ini berhubungan dengan framework CakePHP. Versi CakePHP yang dipakai adalah 1.3.6. Ada sebuah modul yang ingin memakai editor WYSIWYG dan pilihan saya jatuh pada CKEditor karena pilihan editornya lumayan lengkap dengan tampilan visual yang ciamik pula. Sayangnya, pada versi free dan open source CKEditor, tidak ada pilihan upload file/gambar dari komputer lokal (komputer sendiri) melainkan dari URL situs. File manager yang bisa dipakai bersama CKEditor adalah CKFinder, namun sayangnya software itu tidak gratis alias perlu membeli lisensi.
Tapi ada cara lain selain memakai CKFinder, yaitu KCFinder. Dengan KCFinder ini Anda bisa mengintegrasikannya dengan CKEditor atau editor lainnya seperti FCKeditor atau TinyMCE.
Berikut segala perlengkapan yang kami pakai pada tutorial kali ini (kayak perang aja..wkwk đ ):
- CakePHP 1.3.6
- CKEditor 4.3.2
- KCFinder 2.51
Cara Instal dan Mengintegrasikan CKEditor ke CakePHP
1. Download CKEditor di www.ckeditor.com.
2. Ekstrak dan copy folder ke dalam folder âwebroot/js/ckeditor/â.
3. Pada view dimana Anda ingin menampilkan editornya, copy dan paste kode di bawah ini pada bagian atas halaman (atau dimanapun, tapi sebelum textarea yang ingin menampilkan editor):Â
<?php echo $this->Html->script('ckeditor/ckeditor');?>
Kode di atas akan memasukkan file âwebroot/js/ckeditor.jsâ ke dalam view.
4. Buat textarea dan berikan class bernama âckeditorâ, misalkan seperti ini:
<?php echo $this->Form->textarea('content',array('class'=>'ckeditor'))?>
Voila! Selamat, sekarang editor sudah tampil bersama dengan textarea.
Cara Instal dan Mengintegrasikan KCFinder ke CakePHP
1. Download KCFinder di kcfinder.sunhunter.com.
2. Ekstrak dan copy file ke dalam folder âwebroot/js/kcfinder/â.
3. Buka file âwebroot/js/kcfinder/config.phpâ. Di file ini Anda bisa mengatur beberapa konfigurasi, tapi kita hanya akan fokus pada 1 hal terpenting agar file manager bisa berjalan normal.
Secara default, KCFinder di-disable. Jika Anda ingin semua user bisa memakai file manager ini di dalam situs Anda (tidak ada batasan), ubah nilai âdisabledâ menjadi âfalseâ.
Tapi memberikan akses ke semua user untuk mengelola file di server bukanlah ide yang bagus. Oleh karena itu Anda bisa mengaktifkan manajemen file hanya kepada variabel session tertentu. Nama variabel session berada di bagian bawah config.php:
'_sessionVar' => &$_SESSION['KCEDITOR'],
Berikut yang perlu Anda lakukan untuk membuat file manager bisa dipakai oleh user yang sudah login.
- Ubah âdisabledâ menjadi âtrueâ.
- Di controller yang dipakai untuk memvalidasi login user, setelah user berhasil login, masukkan kode ini untuk meniban settingan disabled true di atas tadi menjadi false:Â
$_SESSION['KCEDITOR']['disabled']=false;
Jangan lupa untuk menghapus variabel session ini setelah user logout.
- Pada bagian atas file âwebroot/js/kcfinder/core/autoload.phpâ, masukkan kode berikut:
session_name('CAKEPHP');
4. Masih di file âconfig.phpâ. Sekarang kita akan menentukan folder yang dijadikan tempat untuk menyimpan hasil upload gambar dll. Secara default, KCFinder menentukannya di folder âuploadâ KCFinder sendiri.
Jika Anda sedang membuat aplikasi di localhost dan âwebrootâ-nya ada di âhttp://localhost/â dan Anda ingin menyimpan hasil upload di âwebroot/uploadâ, pada konfigurasi âuploadURLâ, setting seperti ini:
'uploadURL' => "/app/webroot/upload",
Tapi jika aplikasi Anda ada di âhttp://localhost/my_app/â maka konfigurasinya akan seperti ini:
'uploadURL' => "/my_app/app/webroot/upload",
Untuk mengetes KCFinder ini sudah berjalan baik, silahkan buka URL berikut:
http://path_to_your_app/js/kcfinder/browse.php
Ganti âpath_to_your_appâ dengan lokasi aplikasi Anda.
Cara Mengintegrasikan KCFinder ke dalam CKEditor pada CakePHP
Buka file âwebroot/js/ckeditor/config.js” dan ubah config-nya seperti ini:
CKEDITOR.editorConfig = function( config ) { config.filebrowserBrowseUrl = '/js/kcfinder/browse.php?type=files'; config.filebrowserImageBrowseUrl = '/js/kcfinder/browse.php?type=images'; config.filebrowserFlashBrowseUrl = '/js/kcfinder/browse.php?type=flash'; config.filebrowserUploadUrl = '/js/kcfinder/upload.php?type=files'; config.filebrowserImageUploadUrl = '/js/kcfinder/upload.php?type=images'; config.filebrowserFlashUploadUrl = '/js/kcfinder/upload.php?type=flash'; };
Tapi jika aplikasi Anda berada di http://localhost/my_app/ maka config-nya akan seperti ini:
CKEDITOR.editorConfig = function( config ) { config.filebrowserBrowseUrl = â/my_app/js/kcfinder/browse.php?type=files'; config.filebrowserImageBrowseUrl = '/my_app/js/kcfinder/browse.php?type=images'; config.filebrowserFlashBrowseUrl = '/my_app/js/kcfinder/browse.php?type=flash'; config.filebrowserUploadUrl = '/my_app/js/kcfinder/upload.php?type=files'; config.filebrowserImageUploadUrl = '/my_app/js/kcfinder/upload.php?type=images'; config.filebrowserFlashUploadUrl = '/my_app/js/kcfinder/upload.php?type=flash'; };
Setelah mengatur konfigurasi di atas, Anda bisa melihat tombol âBrowseâ di pilihan Insert Image/Link/Flash.
Selesai, semoga bermanfaat dan selamat mencoba. đ
Happy coding!
2 Comments
itu confignya bisa di perjelas lagi? itu aplikasi maksudnya aplikasi apa? kalau saya punya folder di localhost bernama “1” dan di dalamnya terdapat “admin9” di dalamnya lagi ada “ckeditor” dan didalam ck editor saya terdapat folder “kcfinder” konfigurasinya gimana? makasih
@igna: itu aplikasi dgn framework CakePHP sebagai contohnya, karena berkaitan dengan kerjaan kantor saya đ