<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Krishna Sunuwar &#187; TinyMCE</title>
	<atom:link href="http://www.krishnasunuwar.com.np/tag/tinymce/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.krishnasunuwar.com.np</link>
	<description></description>
	<lastBuildDate>Fri, 03 Feb 2012 04:39:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>TinyMCE editor &#8211; image upload plugin (Ajax File Manager)</title>
		<link>http://www.krishnasunuwar.com.np/2010/03/tinymce-editor-image-upload-plugin-ajax-file-manager/</link>
		<comments>http://www.krishnasunuwar.com.np/2010/03/tinymce-editor-image-upload-plugin-ajax-file-manager/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 11:18:38 +0000</pubDate>
		<dc:creator>Krish</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Ajax File Manager]]></category>
		<category><![CDATA[File Uploader]]></category>
		<category><![CDATA[TinyMCE]]></category>

		<guid isPermaLink="false">http://www.krishnasunuwar.com.np/?p=300</guid>
		<description><![CDATA[TinyMCE is very nice editor. But it lacks image upload functionality which drives crazy to lot of programmer as enabling image upload facility is tough. I have chance to play around with it and found actually integrating image upload facility is very easy. Among lot of plugin, I find Ajax File Manger is nice. You [...]]]></description>
			<content:encoded><![CDATA[<p>TinyMCE is very nice editor. But it lacks image upload functionality which drives crazy to lot of programmer as enabling image upload facility is tough. I have chance to play around with it and found actually integrating image upload facility is very easy. Among lot of plugin, I find Ajax File Manger is nice.</p>
<p>You can download tinyMCE with Ajax File Manager plugin from <a href="http://www.phpletter.com/DOWNLOAD/">http://www.phpletter.com/DOWNLOAD,</a> See under &#8220;Tinymce Ajax File and Image Manager&#8221;. Direct link <a href="http://www.phpletter.com/download_project_version.php?version_id=28">http://www.phpletter.com/download_project_version.php?version_id=28</a>.</p>
<p>A copy of demo TinyMCE with Ajax File Manager can be seen here <a href="http://demo.phpletter.com/tinymce_test.php">http://demo.phpletter.com/tinymce_test.php</a>. View Source and copy code.</p>
<p>Code snippet to enable Ajax File Manager in TinyMCE:</p>
<div class="geshi javascript">
<ol>
<li class="li1">
<div class="de1">tinyMCE.<span class="me1">init</span><span class="br0">&#40;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;mode : <span class="st0">&quot;exact&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;elements : <span class="st0">&quot;ajaxfilemanager&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;theme : <span class="st0">&quot;advanced&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;plugins : <span class="st0">&quot;table,advhr,advimage,advlink,flash,paste,fullscreen,noneditable,contextmenu&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;theme_advanced_buttons1_add_before : <span class="st0">&quot;newdocument,separator&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;theme_advanced_buttons1_add : <span class="st0">&quot;fontselect,fontsizeselect&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;theme_advanced_buttons2_add : <span class="st0">&quot;separator,forecolor,backcolor,liststyle&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;theme_advanced_buttons2_add_before: <span class="st0">&quot;cut,copy,paste,pastetext,pasteword,separator,&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;theme_advanced_buttons3_add_before : <span class="st0">&quot;tablecontrols,separator&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;theme_advanced_buttons3_add : <span class="st0">&quot;flash,advhr,separator,fullscreen&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;theme_advanced_toolbar_location : <span class="st0">&quot;top&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;theme_advanced_toolbar_align : <span class="st0">&quot;left&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;extended_valid_elements : <span class="st0">&quot;hr[class|width|size|noshade]&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;file_browser_callback : <span class="st0">&quot;ajaxfilemanager&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;paste_use_dialog : <span class="kw2">false</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;theme_advanced_resizing : <span class="kw2">true</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;theme_advanced_resize_horizontal : <span class="kw2">true</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;apply_source_formatting : <span class="kw2">true</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;force_br_newlines : <span class="kw2">true</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;force_p_newlines : <span class="kw2">false</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;relative_urls : <span class="kw2">true</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> ajaxfilemanager<span class="br0">&#40;</span>field_name, url, type, win<span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw2">var</span> ajaxfilemanagerurl = <span class="st0">&quot;http://&lt;host&gt;/&lt;path_to_ajaxfilemanage&gt;/ajaxfilemanager/ajaxfilemanager.php?editor=tinymce&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">switch</span> <span class="br0">&#40;</span>type<span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">case</span> <span class="st0">&quot;image&quot;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">break</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">case</span> <span class="st0">&quot;media&quot;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">break</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">case</span> <span class="st0">&quot;flash&quot;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">break</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">case</span> <span class="st0">&quot;file&quot;</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">break</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw2">default</span>:</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">return</span> <span class="kw2">false</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw2">var</span> fileBrowserWindow = <span class="kw2">new</span> Array<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;fileBrowserWindow<span class="br0">&#91;</span><span class="st0">&quot;file&quot;</span><span class="br0">&#93;</span> = ajaxfilemanagerurl;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;fileBrowserWindow<span class="br0">&#91;</span><span class="st0">&quot;title&quot;</span><span class="br0">&#93;</span> = <span class="st0">&quot;Ajax File Manager&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;fileBrowserWindow<span class="br0">&#91;</span><span class="st0">&quot;width&quot;</span><span class="br0">&#93;</span> = <span class="st0">&quot;782&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;fileBrowserWindow<span class="br0">&#91;</span><span class="st0">&quot;height&quot;</span><span class="br0">&#93;</span> = <span class="st0">&quot;440&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;fileBrowserWindow<span class="br0">&#91;</span><span class="st0">&quot;close_previous&quot;</span><span class="br0">&#93;</span> = <span class="st0">&quot;no&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;tinyMCE.<span class="me1">openWindow</span><span class="br0">&#40;</span>fileBrowserWindow, <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;window : win,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;input : field_name,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;resizable : <span class="st0">&quot;yes&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;inline : <span class="st0">&quot;yes&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;editor_id : tinyMCE.<span class="me1">getWindowArg</span><span class="br0">&#40;</span><span class="st0">&quot;editor_id&quot;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">return</span> <span class="kw2">false</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p><strong>Analysis of code</strong>:<br />
Line number 15:</p>
<div class="geshi no javascript">
<ol>
<li class="li1">
<div class="de1">file_browser_callback : <span class="st0">&quot;ajaxfilemanager&quot;</span></div>
</li>
</ol>
</div>
<p>The value &#8216;ajaxfilemanager&#8217; defines the name of the Javascript function which will be called every time a user clicks the browse button in one of the dialogue windows. You can see function definition start from line number 25 to 54. This function opens a new window calling a URL tailored (See line number 26).</p>
<p><strong>Important Points</strong><br />
Don&#8217;t forget to set upload directory path in tiny_mce/plugins/ajaxfilemanager/inc/config.base.php. It should be relative path.</p>
<div class="geshi no php">
<ol>
<li class="li1">
<div class="de1"><span class="kw3">define</span><span class="br0">&#40;</span><span class="st0">&#39;CONFIG_SYS_DEFAULT_PATH&#39;</span><span class="sy0">,</span> <span class="st0">&#39;../../../../../uploads/&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">define</span><span class="br0">&#40;</span><span class="st0">&#39;CONFIG_SYS_ROOT_PATH&#39;</span><span class="sy0">,</span> <span class="st0">&#39;../../../../../uploads/&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
</ol>
</div>
<p>Above folder should have 777 permission. Also set 777 permission to session folder folder, tiny_mce/plugins/ajaxfilemanager/session.</p>
<p><strong>Alternatively you can try following uploader</strong></p>
<p>http://dustweb.ru/log/projects/tinymce_images/</p>
<p>Cofigure:</p>
<ol>
<li>Give class name to your editor e.g. class=&#8221;tiny&#8221;</li>
<li>Add following<br />
In list of plugins, add images<br />
add editor_selector : &#8220;tiny&#8221;,<br />
In list of button, add images</li>
<li> Change DIR_IMAGES and DIR_FILES path on tiny_mce/plugins/images/connector/php/config.php to suit your location. Upload folder should have 777 permission.
</ol>
<p>Actual configuration looks like (See images on line number 8 and 12):</p>
<div class="geshi javascript">
<ol>
<li class="li1">
<div class="de1">tinyMCE.<span class="me1">init</span><span class="br0">&#40;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="co1">// General options</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;mode : <span class="st0">&quot;textareas&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;theme : <span class="st0">&quot;advanced&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="co1">//plugins : &quot;safari,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&quot;,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;editor_selector : <span class="st0">&quot;tiny&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;plugins : <span class="st0">&quot;safari,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,images,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="co1">// Theme options</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;theme_advanced_buttons1 : <span class="st0">&quot;save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;theme_advanced_buttons2 : <span class="st0">&quot;cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,images, cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;theme_advanced_buttons3 : <span class="st0">&quot;tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;theme_advanced_buttons4 : <span class="st0">&quot;insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;theme_advanced_toolbar_location : <span class="st0">&quot;top&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;theme_advanced_toolbar_align : <span class="st0">&quot;left&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;theme_advanced_statusbar_location : <span class="st0">&quot;bottom&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;theme_advanced_resizing : <span class="kw2">true</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="co1">// Example content CSS (should be your site CSS)</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;content_css : <span class="st0">&quot;css/content.css&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="co1">// Drop lists for link/image/media/template dialogs</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;template_external_list_url : <span class="st0">&quot;lists/template_list.js&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;external_link_list_url : <span class="st0">&quot;lists/link_list.js&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;external_image_list_url : <span class="st0">&quot;lists/image_list.js&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;media_external_list_url : <span class="st0">&quot;lists/media_list.js&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="co1">// Replace values for the template plugin</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;template_replace_values : <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; username : <span class="st0">&quot;Some User&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; staffid : <span class="st0">&quot;991234&quot;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
</ol>
</div>
<p>Good luck!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.krishnasunuwar.com.np/2010/03/tinymce-editor-image-upload-plugin-ajax-file-manager/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>

