Added possibility to customize the xinha editor through a my_custom.js

file. See http://board.s9y.org/viewtopic.php?f=4&t=15286
This commit is contained in:
Garvin Hicking 2009-07-27 08:47:47 +00:00
parent 40fc088581
commit 9ed5ea8a90
3 changed files with 66 additions and 2 deletions

View File

@ -3,6 +3,12 @@
Version 1.5 ()
------------------------------------------------------------------------
* Added ability to specify a custom Xinha config. Either supply
a 'my_custom.js' file inside the template directory, or if
omitted, the default htmlarea/my_custom.js is used. With this
you can overwrite the plugins and buttons of all Xinha instances.
See the mentioned default file for usage. (garvinhicking)
* Upgrade to Smarty 2.6.26
* Removed inline styles of the s9y media insertion, they will now

44
htmlarea/my_custom.js Normal file
View File

@ -0,0 +1,44 @@
// This JavaScript file can be customized.
// It is actually NOT like the my_config.js file of the Xinha Documentation.
// Instead, the JS function 's9y_xinha' is called just before the
// Xinha editor is created. So you are able to OVERWRITE Toolbars,
// plugins etc. with your own versions.
// You can also place a my_custom.js file inside a template directory,
// which will take precedence over the htmlarea/my_custom.js file.
// All of the functionality is currently only a stub, so you need
// to insert/uncomment, what you want it to do.
function s9y_xinha(xinha_editor) {
/* EXAMPLE USAGE ***
xinha_editor.registerPlugin('CharacterMap');
xinha_editor.registerPlugin('ContextMenu');
xinha_editor.config.pageStyleSheets = [ _editor_url + 'custom.css' ];
xinha_editor.config.fontsize = {
'1 (8pt)' : '1',
'2 (10pt)' : '1',
}
// s9y image selection is called: 'image_selector'
// If you use any event plugins that provide custom toolbars, and you are customizing xinha,
// you need to take care of inserting those custom toolbar buttons yourself!
xinha_editor.config.toolbar = [
[ "fontname", "space",
"fontsize", "space",
"formatblock", "space",
"bold", "italic", "underline", "strikethrough", "separator",
"subscript", "superscript", "separator",],
[ "justifyleft", "justifycenter", "justifyright", "justifyfull", "separator",
"orderedlist", "unorderedlist", "outdent", "indent", "separator",
"forecolor", "hilitecolor", "separator",
"inserthorizontalrule", "createlink", "insertimage", "image_selector", "inserttable", "htmlmode", "separator",
"popupeditor", "separator", "showhelp", "about" ]
];
* END OF EXAMPLE USAGE ***/
}

View File

@ -554,6 +554,11 @@ function serendipity_emit_htmlarea_code($item, $jsname, $spawnMulti = false) {
$xinha = false;
}
$xinha_custom = serendipity_getTemplateFile('my_custom.js', 'serendipityHTTPPath');
if (empty($xinha_custom)) {
$xinha_custom = 'htmlarea/my_custom.js';
}
if (!$init) {
?>
<script type="text/javascript">
@ -562,8 +567,12 @@ function serendipity_emit_htmlarea_code($item, $jsname, $spawnMulti = false) {
_editor_skin = "silva";
var editorref = '';
</script>
<?php if ($xinha) { ?><script type="text/javascript" src="htmlarea/XinhaCore.js"></script>
<?php } else { ?><script type="text/javascript" src="htmlarea/htmlarea.js"></script>
<?php if ($xinha) { ?>
<script type="text/javascript" src="htmlarea/XinhaCore.js"></script>
<!-- This file can contain user customizations -->
<script type="text/javascript" src="<?= $xinha_custom; ?>"></script>
<?php } else { ?>
<script type="text/javascript" src="htmlarea/htmlarea.js"></script>
<?php } ?>
<?php
}
@ -732,6 +741,11 @@ function serendipity_emit_htmlarea_code($item, $jsname, $spawnMulti = false) {
} ?>
];
if (typeof('s9y_xinha') != 'undefined') {
s9y_xinha(editor<?php echo $jsname; ?>);
}
// editor<?php echo $jsname; ?>.registerPlugin(SpellChecker); // [SPELLCHECK]
editor<?php echo $jsname; ?>.generate();
editor<?php echo $jsname; ?>._textArea.className = 'serendipity_entry';