aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mod/embed/README.txt16
-rw-r--r--mod/embed/views/default/embed/addcontentjs.php7
-rw-r--r--mod/embed/views/default/embed/js.php13
-rw-r--r--mod/tinymce/start.php2
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);