diff options
Diffstat (limited to 'mod')
| -rw-r--r-- | mod/tinymce/start.php | 17 | ||||
| -rw-r--r-- | mod/tinymce/views/default/input/longtext.php | 32 | ||||
| -rw-r--r-- | mod/tinymce/views/default/js/tinymce.php | 59 | ||||
| -rw-r--r-- | mod/tinymce/views/default/tinymce/init.php | 62 | 
4 files changed, 78 insertions, 92 deletions
| diff --git a/mod/tinymce/start.php b/mod/tinymce/start.php index 9a33f03a3..89c378376 100644 --- a/mod/tinymce/start.php +++ b/mod/tinymce/start.php @@ -8,7 +8,24 @@  function tinymce_init() {  	elgg_extend_view('css/elgg', 'tinymce/css');  	elgg_extend_view('css/admin', 'tinymce/css'); +	 +	elgg_extend_view('input/longtext', 'tinymce/init'); +	  	elgg_extend_view('embed/custom_insert_js', 'tinymce/embed_custom_insert_js'); +	 +	elgg_register_plugin_hook_handler('register', 'menu:longtext', 'tinymce_longtext_menu'); +} + +function tinymce_longtext_menu($hook, $type, $items, $vars) { +	 +	$items[] = array( +		'name' => 'tinymce_toggler', +		'class' => 'tinymce-toggle-editor', +		'href' => "javascript:elgg.tinymce.toggleEditor('{$vars['id']}');", +		'text' => elgg_echo('tinymce:remove'), +	); +	 +	return $items;  }  elgg_register_event_handler('init', 'system', 'tinymce_init', 9999); diff --git a/mod/tinymce/views/default/input/longtext.php b/mod/tinymce/views/default/input/longtext.php deleted file mode 100644 index 9124a89b5..000000000 --- a/mod/tinymce/views/default/input/longtext.php +++ /dev/null @@ -1,32 +0,0 @@ -<?php -/** - * Long text input with the tinymce text editor - * - * @package ElggTinyMCE - * - * @uses $vars['value'] The current value, if any - * @uses $vars['js']    Any Javascript to enter into the input tag - * @uses $vars['name']  The name of the input field - * @uses $vars['id']    The id of the input field - * - */ - -elgg_register_js('mod/tinymce/vendor/tinymce/jscripts/tiny_mce/tiny_mce.js', 'tinymce'); - -// make sure the init script is only loaded once -elgg_unextend_view('footer/analytics', 'tinymce/init'); -elgg_extend_view('footer/analytics', 'tinymce/init'); - -if (!isset($vars['id'])) { -	$vars['id'] = 'tinymce-longtext-' . rand(); -} - -?> - -<a class="elgg-longtext-control tinymce-toggle-editor small" href="javascript:toggleEditor('<?php echo $vars['id']; ?>');"> -	<?php echo elgg_echo('tinymce:remove'); ?> -</a> - -<textarea class="elgg-input-textarea mceEditor" name="<?php echo $vars['name']; ?>" id="<?php echo $vars['id']; ?>" <?php echo $vars['js']; ?>> -<?php echo htmlspecialchars($vars['value'], null, 'UTF-8'); ?> -</textarea> diff --git a/mod/tinymce/views/default/js/tinymce.php b/mod/tinymce/views/default/js/tinymce.php new file mode 100644 index 000000000..adff52129 --- /dev/null +++ b/mod/tinymce/views/default/js/tinymce.php @@ -0,0 +1,59 @@ +elgg.tinymce.toggleEditor = function(id) { +	if (!tinyMCE.get(id)) { +		tinyMCE.execCommand('mceAddControl', false, id); +		<?php //FIXME This changes all controls on the page!! ?> +		$("a.tinymce-toggle-editor").html(elgg.echo('tinymce:remove')); +	} else { +		tinyMCE.execCommand('mceRemoveControl', false, id); +		$("a.tinymce-toggle-editor").html(elgg.echo('tinymce:add')); +	} +} + +/** + * TinyMCE initialization script + * + * You can find configuration information here: + * http://tinymce.moxiecode.com/wiki.php/Configuration + */ +elgg.tinymce.init = function() { +	tinyMCE.init({ +		mode : "specific_textareas", +		editor_selector : "elgg-input-longtext", +		theme : "advanced", +		plugins : "spellchecker,autosave,fullscreen,paste", +		relative_urls : false, +		remove_script_host : false, +		document_base_url : elgg.config.wwwroot, +		theme_advanced_buttons1 : "bold,italic,underline,separator,strikethrough,bullist,numlist,undo,redo,link,unlink,image,blockquote,code,pastetext,pasteword,more,fullscreen", +		theme_advanced_buttons2 : "", +		theme_advanced_buttons3 : "", +		theme_advanced_toolbar_location : "top", +		theme_advanced_toolbar_align : "left", +		theme_advanced_statusbar_location : "bottom", +		theme_advanced_resizing : true, +		theme_advanced_path : true, +		extended_valid_elements : "a[name|href|target|title|onclick],img[class|src|border=0|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name|style],hr[class|width|size|noshade],font[face|size|color|style],span[class|align|style]", +		setup : function(ed) { +			//show the number of words +			ed.onLoadContent.add(function(ed, o) { +				var strip = (tinyMCE.activeEditor.getContent()).replace(/(<([^>]+)>)/ig,""); +				var text = " <?php echo elgg_echo('tinymce:word_count'); ?>" + strip.split(' ').length + ' '; +				tinymce.DOM.setHTML(tinymce.DOM.get(tinyMCE.activeEditor.id + '_path_row'), text); +			}); +	 +			ed.onKeyUp.add(function(ed, e) { +				var strip = (tinyMCE.activeEditor.getContent()).replace(/(<([^>]+)>)/ig,""); +				var text = " <?php echo elgg_echo('tinymce:word_count'); ?>" + strip.split(' ').length + ' '; +				tinymce.DOM.setHTML(tinymce.DOM.get(tinyMCE.activeEditor.id + '_path_row'), text); +			}); +		}, +		content_css: elgg.config.wwwroot + 'mod/tinymce/tinymce_content.css' +	}); + +	$('.elgg-input-longtext').parents('form').submit(function() { +		tinyMCE.triggerSave(); +	}); + +}); + +elgg.register_event_handler('init', 'system', elgg.tinymce.init);
\ No newline at end of file diff --git a/mod/tinymce/views/default/tinymce/init.php b/mod/tinymce/views/default/tinymce/init.php index 7064709d6..100a1a987 100644 --- a/mod/tinymce/views/default/tinymce/init.php +++ b/mod/tinymce/views/default/tinymce/init.php @@ -1,62 +1,4 @@  <?php -/** - * TinyMCE initialization script - * - * You can find configuration information here: - * http://tinymce.moxiecode.com/wiki.php/Configuration - */ -?> -<?php //@todo JS 1.8: no ?> -<script type="text/javascript"> -tinyMCE.init({ -	mode : "specific_textareas", -	editor_selector : "mceEditor", -	theme : "advanced", -	plugins : "spellchecker,autosave,fullscreen,paste", -	relative_urls : false, -	remove_script_host : false, -	document_base_url : "<?php echo elgg_get_site_url(); ?>", -	theme_advanced_buttons1 : "bold,italic,underline,separator,strikethrough,bullist,numlist,undo,redo,link,unlink,image,blockquote,code,pastetext,pasteword,more,fullscreen", -	theme_advanced_buttons2 : "", -	theme_advanced_buttons3 : "", -	theme_advanced_toolbar_location : "top", -	theme_advanced_toolbar_align : "left", -	theme_advanced_statusbar_location : "bottom", -	theme_advanced_resizing : true, -	theme_advanced_path : true, -	extended_valid_elements : "a[name|href|target|title|onclick],img[class|src|border=0|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name|style],hr[class|width|size|noshade],font[face|size|color|style],span[class|align|style]", -	setup : function(ed) { -		//show the number of words -		ed.onLoadContent.add(function(ed, o) { -			var strip = (tinyMCE.activeEditor.getContent()).replace(/(<([^>]+)>)/ig,""); -			var text = " <?php echo elgg_echo('tinymce:word_count'); ?>" + strip.split(' ').length + ' '; -			tinymce.DOM.setHTML(tinymce.DOM.get(tinyMCE.activeEditor.id + '_path_row'), text); -		}); -		ed.onKeyUp.add(function(ed, e) { -			var strip = (tinyMCE.activeEditor.getContent()).replace(/(<([^>]+)>)/ig,""); -			var text = " <?php echo elgg_echo('tinymce:word_count'); ?>" + strip.split(' ').length + ' '; -			tinymce.DOM.setHTML(tinymce.DOM.get(tinyMCE.activeEditor.id + '_path_row'), text); -		}); -	}, -	content_css: '<?php echo elgg_get_site_url(); ?>mod/tinymce/tinymce_content.css' -}); - -function toggleEditor(id) { -	if (!tinyMCE.get(id)) { -		tinyMCE.execCommand('mceAddControl', false, id); -		<?php $toggleEditor_linktext = elgg_echo('tinymce:remove'); ?> -		$("a.tinymce-toggle-editor").html('<?php echo $toggleEditor_linktext ?>'); -	} else { -		tinyMCE.execCommand('mceRemoveControl', false, id); -		<?php $toggleEditor_linktext = elgg_echo('tinymce:add'); ?> -		$("a.tinymce-toggle-editor").html('<?php echo $toggleEditor_linktext ?>'); -	} -} - -$(document).ready(function() { -	$('textarea').parents('form').submit(function() { -		tinyMCE.triggerSave(); -	}); -}); -</script> +elgg_register_js('mod/tinymce/vendor/tinymce/jscripts/tiny_mce/tiny_mce.js', 'tinymce'); +elgg_register_js(elgg_get_simplecache_url('js', 'tinymce'), 'elgg.tinymce');
\ No newline at end of file | 
