Tugas sekolah dan pekerjaan mulai datang bersamaan dan seperti biasa mereka
pasti main keroyokan. Jam begadang tampaknya harus ditambah lagi,
seperti kata om RSW, ajaran tidur 2 jam per-hari tampaknya harus
diterapkan lagi . Jadinya tak apalah sedikit
kerja keras di semester ini, semester depan bisa ditambahkan sedikit
lagi. Ngomong-ngomong soal pekerjaan, kemarin saya sempat menemui
sedikit masalah pada text editor WYSIWYG CKEditor. Biasanya saya
menggunakan text editor TinyMCE di setiap website yang saya buat,
berhubung CKEditor banyak fitur tambahannya dan jadilah saya mencobanya.
CKEditor ini saya gabungkan dengan KCFinder, sebuah file manager versi
gratis dari CKFinder. CKEditor cukup mudah untuk dipasang, berbeda
dengan KCFinder yang pastinya kita akan dipusingkan dengan konfigurasi path dan security-nya
(saya juga mengalaminya :p). Baca-baca dokumentasi di website
developer-nya ternyata masih kurang. Nah, di postingan kali ini saya
coba untuk memberikan trik sederhana untuk CKEditor dan KCFinder di
CodeIgniter.
1. Silahkan download terlebih dahulu file CKEditor dan KCFinder dari
website resminya. Ekstrak dan copy file-file CKEditor dan KCFinder
dengan susunan seperti di bawah ini.
2. Buka file config.js yang terdapat di dalam folder ckeditor dan ubah konfigurasinya dengan kode seperti di bawah ini :
CKEDITOR.editorConfig = function( config ) { config.filebrowserBrowseUrl = '../asset/kcfinder/browse.php?type=files'; config.filebrowserImageBrowseUrl = '../asset/kcfinder/browse.php?type=images'; config.filebrowserFlashBrowseUrl = '../../asset/kcfinder/browse.php?type=flash'; config.filebrowserUploadUrl = '../../asset/kcfinder/upload.php?type=files'; config.filebrowserImageUploadUrl = '../../asset/kcfinder/upload.php?type=images'; config.filebrowserFlashUploadUrl = '../../asset/kcfinder/upload.php?type=flash'; }; |
class Tes_Kcfinder extends CI_Controller { function __construct() { parent::__construct(); session_start(); } function index() { $this->load->view('tes-kcfinder/login'); } function login() { $usr = $this->input->post('username'); $pass = $this->input->post('password'); if($usr=="admin" || $pass=="admin"){ $_SESSION['ses_admin']="admin"; $_SESSION['ses_kcfinder']=array(); $_SESSION['ses_kcfinder']['disabled'] = false; $_SESSION['ses_kcfinder']['uploadURL'] = "../content_upload"; $this->admin(); } else { $this->index(); } } function admin() { $session=isset($_SESSION['ses_admin']) ? $_SESSION['ses_admin']:''; if($session==""){ $this->login(); } else { $this->load->view('tes-kcfinder/admin'); } } function logout() { session_destroy(); $this->login(); } } |
login.php
<form method="post" action="<?php echo base_url(); ?>tes_kcfinder/login"> <label>Username</label> <input type="text" name="username" /> <label>Password </label> <input type="password" name="password" /> <input type="submit" value="Masuk" /> </form> |
<script type="text/javascript" src="<?php echo base_url(); ?>asset/ckeditor/ckeditor.js"></script> <textarea class="ckeditor" name="editor"></textarea> |
$_CONFIG = array( 'disabled' => true, 'denyZipDownload' => false, 'denyUpdateCheck' => false, 'denyExtensionRename' => false, 'theme' => "oxygen", 'uploadURL' => "upload", 'uploadDir' => "", 'dirPerms' => 0755, 'filePerms' => 0644, 'access' => array( 'files' => array( 'upload' => true, 'delete' => true, 'copy' => true, 'move' => true, 'rename' => true ), 'dirs' => array( 'create' => true, 'delete' => true, 'rename' => true ) ), 'deniedExts' => "exe com msi bat php phps phtml php3 php4 cgi pl", 'types' => array( // CKEditor & FCKEditor types 'files' => "", 'flash' => "swf", 'images' => "*img", // TinyMCE types 'file' => "", 'media' => "swf flv avi mpg mpeg qt mov wmv asf rm", 'image' => "*img", ), 'filenameChangeChars' => array(/* ' ' => "_", ':' => "." */), 'dirnameChangeChars' => array(/* ' ' => "_", ':' => "." */), 'mime_magic' => "", 'maxImageWidth' => 0, 'maxImageHeight' => 0, 'thumbWidth' => 100, 'thumbHeight' => 100, 'thumbsDir' => ".thumbs", 'jpegQuality' => 90, 'cookieDomain' => "", 'cookiePath' => "", 'cookiePrefix' => 'KCFINDER_', // THE FOLLOWING SETTINGS CANNOT BE OVERRIDED WITH SESSION CONFIGURATION '_check4htaccess' => true, //'_tinyMCEPath' => "/tiny_mce", '_sessionVar' => &$_SESSION['ses_kcfinder'], //'_sessionLifetime' => 30, //'_sessionDir' => "/full/directory/path", //'_sessionDomain' => ".mysite.com", //'_sessionPath' => "/my/path", ); |
Satu hal yang perlu diperhatikan dari file manager seperti KCFinder adalah permasalahan security-nya. Seperti kasus blog teman saya yang lupa mengubah konfigurasi dari false menjadi true, jadilah ada orang jahil yang bisa menerobos masuk ke file browse.php dan meng-upload file shell. Akhirnya semua direktori dan file-file yang terdapat di dalam hostingan ludes terhapus . OK deh, sekian dulu postingan saya kali ini. Semoga bermanfaat untuk rekan-rekan yang sedang dibuat pusing oleh CKEditor maupun KCFinder.
Happy Blogging and Keep Coding
Cheerrrss….!!!!
password : azislah.com