diff options
| -rw-r--r-- | mod/embed/README.txt | 16 | ||||
| -rw-r--r-- | mod/embed/views/default/embed/addcontentjs.php | 7 | ||||
| -rw-r--r-- | mod/embed/views/default/embed/js.php | 13 | ||||
| -rw-r--r-- | mod/tinymce/start.php | 2 | 
4 files changed, 34 insertions, 4 deletions
| diff --git a/mod/embed/README.txt b/mod/embed/README.txt index f81d5b14a..9cc21d949 100644 --- a/mod/embed/README.txt +++ b/mod/embed/README.txt @@ -6,4 +6,18 @@ http://www.gnu.org/licenses/old-licenses/gpl-2.0.html  The embed plugin requires Elgg 1.5 (or prior to the Elgg 1.5  release, Elgg revision 2634 or above) and the file plugin. -To insert into the active editor, use elggEmbedInsert(html).
\ No newline at end of file +To insert into the active editor, use elggEmbedInsert(html, textAreaName). + +The default behavior searches for all textareas with name textAreaName and  +inserts the content into them. + +If you need to use special embed code to insert content into a custom textarea +(like tinyMce, FCK, etc), extend (nb: EXTEND, not override) the embed/custom_insert_js +view with your custom JS.  The vars available to you are: +	str content The content to insert. +	str textAreaName The name of the textarea to receive the content. +	 +It is important to correctly extend this view for compatibility across  +multiple plugins and textarea states.  Your custom JS should run without +error no matter plugin order or rich text editor status.  See TinyMCE as +an example of how to losely extend this function.
\ No newline at end of file diff --git a/mod/embed/views/default/embed/addcontentjs.php b/mod/embed/views/default/embed/addcontentjs.php index f5533c22e..c32d90871 100644 --- a/mod/embed/views/default/embed/addcontentjs.php +++ b/mod/embed/views/default/embed/addcontentjs.php @@ -1,2 +1,5 @@ -	var entity; -	$('textarea[name=' + textAreaName + ']').val($('textarea[name=' + textAreaName + ']').val() + ' ' + content);
\ No newline at end of file +<?php  +/** + * Blank for compatibility. + */ +?>
\ No newline at end of file diff --git a/mod/embed/views/default/embed/js.php b/mod/embed/views/default/embed/js.php index c98fe63da..c8fe3bc53 100644 --- a/mod/embed/views/default/embed/js.php +++ b/mod/embed/views/default/embed/js.php @@ -6,14 +6,27 @@  ?>  function elggEmbedInsertContent(content, textAreaName) {  	content = ' ' + content + ' '; +	 +	// default input. +	// if this doesn't match anything it won't add anything. +	$('textarea[name=' + textAreaName + ']').val($('textarea[name=' + textAreaName + ']').val() + ' ' + content); +	  	<?php  		// This view includes the guts of the function to do the inserting.  		// Anything that overrides input/longtext with its own editor  		// needs to supply its own function here that inserts  		// content into textAreaName.  		// See TinyMCE as an example. +		 +		// for compatibility +		// the old on that was overriden.  		echo elgg_view('embed/addcontentjs'); +		 +		// the one you should extend. +		echo elgg_view('embed/custom_insert_js');  	?> +	 +	  	$.facebox.close();  } diff --git a/mod/tinymce/start.php b/mod/tinymce/start.php index 47bb627a6..6a79524d7 100644 --- a/mod/tinymce/start.php +++ b/mod/tinymce/start.php @@ -13,7 +13,7 @@ function tinymce_init() {  	global $CONFIG;  	elgg_extend_view('css', 'tinymce/css'); -	//set_view_location('embed/addcontentjs', $CONFIG->pluginspath . 'tinymce/views/'); +	elgg_extend_view('embed/custom_insert_js', 'tinymce/embed_custom_insert_js');  }  register_elgg_event_handler('init', 'system', 'tinymce_init', 9999); | 
