TinyMCE : Cara Menambah Fasilitas Upload Image
30 Januari 2010 11 Komentar
Bagi anda yang terbiasa tanpa CMS develop web sendiri, beberapa tahun yang lalu pasti pernah mengalami kendala dalam menentukan text editor WYSIWYG (what you see is what you get). Itulah masa lalu. Sekarang sudah banyak bermunculan text editor WYSIWYG yang bagus dan gratis. Salah satu text editor berbasis JavaScript yang enak digunakan adalah TinyMCE. Plugin-nya banyak, support-nya pun banyak karena cukup luas digunakan (termasuk di beberapa CMS, contohnya Joomla).
Sekarang TinyMCE sudah mencapai versi 3.3b1. Saya sendiri masih menggunakan versi 3_0. Secara default TinyMCE sudah lebih dari cukup untuk dijadikan text editor berbasis web. Walau begitu, modul untuk memfasilitasi upload dan insert image (gambar) tidak disediakan secara default. Nah, kebetulan beberapa waktu ini saya ketiban proyek pembuatan web. Tentu saja harus ada fasilitas halaman admin. Pilihan pun jatuh pada text editor ini. Namun ternyata cukup ribet agar bisa ‘mengaktifkan’ fasilitas upload gambar.
Saya asumsikan anda sudah memasang tinyMCE.init({….}) dan telah juga meng-include-kan “../jscripts/tiny_mce/tiny_mce.js“. Okey langsung saja ini langkah-langkahnya :
1) Tuliskan kode di bawah ini sebelum meng-include-kan file tiny_mce.js (Perhatian : sesuaikan dengan path anda masing-masing)
<script src="/tinymce/jscripts/tiny_mce/tiny_mce_popup.js"></script>
2) Tambahkan file_browser_callback : ‘myFileBrowser’ di dalam tinyMCE.ini({…})
tinyMCE.init({
...
file_browser_callback : 'myFileBrowser', // <----PERHATIKAN INI !
...
})
3) Buat file dengan nama upload.php. File ini nantinya akan dijadikan pop-up yang berfungsi untuk menyimpan dan memasukkan images yang diinginkan. File ini akan digunakan di function myFileBrowser. (download di sini)
4) (sebenarnya ini masalah selera sih) Buatlah file upload-act.php untuk melakukan proses upload terhadap image yang kita pilih. (download di sini)
5) Tambahkan function myFileBrowser di dalam tag <script>…</script>
<script type='text/javascript'/>
...
function myFileBrowser (field_name, url, type, win) {
//url='upload.php';
//alert("Field_Name: " + field_name + "\nURL: " + url + "\nType: " + type + "\nWin: " + win); // debug/testing
/* If you work with sessions in PHP and your client doesn't accept cookies you might need to carry
the session name and session ID in the request string (can look like this: "?PHPSESSID=88p0n70s9dsknra96qhuk6etm5").
These lines of code extract the necessary parameters and add them back to the filebrowser URL again. */
var cmsURL = 'upload.php' ; // <-------- PERHATIKAN INI !
if (cmsURL.indexOf("?") < 0) {
//add the type as the only query parameter
cmsURL = cmsURL + "?type=" + type;
}
else {
//add the type as an additional query parameter
// (PHP session ID is now included if there is one at all)
cmsURL = cmsURL + "&type=" + type;
}
tinyMCE.activeEditor.windowManager.open({
file : cmsURL,
title : 'My File Browser',
width : 420, // Your dimensions may differ - toy around with them!
height : 400,
resizable : "yes",
inline : "yes", // This parameter only has an effect if you use the inlinepopups plugin!
close_previous : "no"
}, {
window : win,
input : field_name
});
return false;
}
...
</script>
6) Selesai. Selamat Mencoba
***
Referensi :
- http://wiki.moxiecode.com/index.php/TinyMCE:Custom_filebrowser
- http://www.reconn.us/content/view/30/51/
- http://hadi.toekang.net/2008/04/13/tinymce-image-browser-seharian-baru-ketemuweh/
- http://php.net/manual/en/function.readdir.php

Tulisan ini dibuat dengan tujuan mengenang 