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); |