อันที่จริงในเว็บ TinyMCE เองเขาก็มีตัวอัปโหลดรูปภาพอยู่แต่เขาขาย ตัวTinmyMCEทำมาแจกให้ใช้กันฟรีๆ ไปหารายได้ด้วยการขายปลักอินติดตั้งเพิ่มแทน แต่ก็มีคนทำปลักอินจัดการอัปโหลดภาพมาให้ใช้ฟรีๆอยู่ ตัวที่ผมใช้และชอบมาจากเว็บ phpletter.com

หน้าตาตัวอย่าง
tinymce-image-manager-01

ดาวน์โหลดปลักอินอัปโหลดรูปภาพ TinyMCE AJAX File and Image Manager แตกซิปออกมาเอาเฉพาะโฟลเดอร์ ajaxfilemanager มันจะเก็บอยู่ใน ajaxfilemanagerv_tinymce1.1\jscripts\tiny_mce\plugins เรื่องของเรื่องที่เอาเฉพาะโฟลเดอร์นี้เพราะต้องการเอาเฉพาะปลักอิน TinyMCE AJAX File and Image Manager เท่านั้น ตัว TinyMCE ดาวน์โหลดมาจากเว็บหลักเขาดีกว่า จะได้เวอร์ชั่นใหม่ล่าสุด เอาโฟลเดอร์ ajaxfilemanager ไปรวมกับตัว TinyMCE ของเรา โยนมันไปใส่ไว้ในโฟลเดอร์ plugins

จากนั้นเขียนโค้ด

<script type="text/javascript">
	tinyMCE.init({
		// General options
		mode : "exact",
                elements : "blogentry_body,blogentry_body_en",
		theme : "advanced",
		plugins : "autolink,lists,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,wordcount,advlist,autosave",
 
		// Theme options
		theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect",
		theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,|,forecolor,backcolor",
		theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
		theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak,restoredraft",
		theme_advanced_toolbar_location : "top",
		theme_advanced_toolbar_align : "left",
		theme_advanced_statusbar_location : "bottom",
		theme_advanced_resizing : true,
                file_browser_callback : "ajaxfilemanager",
 
		// Drop lists for link/image/media/template dialogs
		template_external_list_url : "lists/template_list.js",
		external_link_list_url : "lists/link_list.js",
		external_image_list_url : "lists/image_list.js",
		media_external_list_url : "lists/media_list.js"
	});
 
        function ajaxfilemanager(field_name, url, type, win) {
                var ajaxfilemanagerurl = "./include/tiny_mce/plugins/ajaxfilemanager/ajaxfilemanager.php";
                var view = 'detail';
                switch (type) {
                        case "image":
                        view = 'thumbnail';
                                break;
                        case "media":
                                break;
                        case "flash": 
                                break;
                        case "file":
                                break;
                        default:
                                return false;
                }
                tinyMCE.activeEditor.windowManager.open({
                    url: "./include/tiny_mce/plugins/ajaxfilemanager/ajaxfilemanager.php?view=" + view,
                    width: 782,
                    height: 440,
                    inline : "yes",
                    close_previous : "no"
                },{
                    window : win,
                    input : field_name
                });         
        }
</script>

สิ่งที่เพิ่มเติมเข้าไปในโค้ด TinyMCE เพื่อติดตั้งปลักอินตัวนี้คือ

file_browser_callback : "ajaxfilemanager"
function ajaxfilemanager(field_name, url, type, win) {
	var ajaxfilemanagerurl = "./include/tiny_mce/plugins/ajaxfilemanager/ajaxfilemanager.php";
	var view = 'detail';
	switch (type) {
			case "image":
			view = 'thumbnail';
					break;
			case "media":
					break;
			case "flash": 
					break;
			case "file":
					break;
			default:
					return false;
	}
	tinyMCE.activeEditor.windowManager.open({
		url: "./include/tiny_mce/plugins/ajaxfilemanager/ajaxfilemanager.php?view=" + view,
		width: 782,
		height: 440,
		inline : "yes",
		close_previous : "no"
	},{
		window : win,
		input : field_name
	});         
}

เปิดไฟล์ plugins\ajaxfilemanager\inc\config.base.php แก้ตำแหน่งสำหรับจัดเก็บรูปภาพให้เป็นตำแหน่งที่ต้องการ

define('CONFIG_SYS_DEFAULT_PATH', '../../../../uploaded/'); //accept relative path only
define('CONFIG_SYS_ROOT_PATH', '../../../../uploaded/');	//accept relative path only

บอกตามตรงว่าบทความนี้ ท่านจะต้องเป็นคนที่เคยใช้ TinyMCE แล้วจึงจะเข้าใจ สำหรับมือใหม่ที่งงๆ ก็อย่าไปคิดไรมาก วันหน้าบทความนี้จะมีประโยชน์แก่ท่านแน่นอน