Open/close tags, support for language-based tags in non-WYSIWYG.

Some plugins might want to hook into the non-WYSIWYG editor and
create buttons which do use different "tags" for open/close or
not create HTML markup at all. This makes it possible for them
to do so.

References #122
References #114
This commit is contained in:
Matthias Mees 2014-04-18 16:23:40 +02:00
parent fa500b947c
commit ed1fb3c8a3
2 changed files with 17 additions and 11 deletions

View File

@ -20,11 +20,11 @@
{if NOT $entry_vars.wysiwyg}
<div id="tools_entry" class="editor_toolbar">
{if $iso2br}
<button class="wrap_selection" type="button" name="insX" data-tag="nl" data-tarea="serendipity[body]">NoBR</button>
<button class="wrap_selection lang-html" type="button" name="insX" data-tag-open="nl" data-tag-close="nl" data-tarea="serendipity[body]">NoBR</button>
{/if}
<button class="hilite_i wrap_selection" type="button" name="insI" data-tag="em" data-tarea="serendipity[body]">i</button>
<button class="hilite_b wrap_selection" type="button" name="insB" data-tag="strong" data-tarea="serendipity[body]">b</button>
<button class="wrap_selection" type="button" name="insQ" data-tag="blockquote" data-tarea="serendipity[body]">{$CONST.QUOTE}</button>
<button class="hilite_i wrap_selection lang-html" type="button" name="insI" data-tag-open="em" data-tag-close="em" data-tarea="serendipity[body]">i</button>
<button class="hilite_b wrap_selection lang-html" type="button" name="insB" data-tag-open="strong" data-tag-close="strong" data-tarea="serendipity[body]">b</button>
<button class="wrap_selection lang-html" type="button" name="insQ" data-tag-open="blockquote" data-tag-close="blockquote" data-tarea="serendipity[body]">{$CONST.QUOTE}</button>
<button class="wrap_insimg" type="button" name="insJ" data-tarea="serendipity[body]">img</button>
<button class="wrap_insmedia" type="button" name="insImage" data-tarea="serendipity[body]">{$CONST.MEDIA}</button>
<button class="wrap_insurl" type="button" name="insURL" data-tarea="serendipity[body]">URL</button>
@ -52,11 +52,11 @@
{if NOT $entry_vars.wysiwyg}
<div id="tools_extended" class="editor_toolbar">
{if $iso2br}
<button class="wrap_selection" type="button" name="insX" data-tag="nl" data-tarea="serendipity[extended]">NoBR</button>
<button class="wrap_selection" type="button" name="insX" data-tag-open="nl" data-tag-close="nl" data-tarea="serendipity[extended]">NoBR</button>
{/if}
<button class="hilite_i wrap_selection" type="button" name="insI" data-tag="em" data-tarea="serendipity[extended]">i</button>
<button class="hilite_b wrap_selection" type="button" name="insB" data-tag="strong" data-tarea="serendipity[extended]">b</button>
<button class="wrap_selection" type="button" name="insQ" data-tag="blockquote" data-tarea="serendipity[extended]">{$CONST.QUOTE}</button>
<button class="hilite_i wrap_selection" type="button" name="insI" data-tag-open="em" data-tag-close="em" data-tarea="serendipity[extended]">i</button>
<button class="hilite_b wrap_selection" type="button" name="insB" data-tag-open="strong" data-tag-close="strong" data-tarea="serendipity[extended]">b</button>
<button class="wrap_selection" type="button" name="insQ" data-tag-open="blockquote" data-tag-close="blockquote" data-tarea="serendipity[extended]">{$CONST.QUOTE}</button>
<button class="wrap_insimg" type="button" name="insJ" data-tarea="serendipity[extended]">img</button>
<button class="wrap_insmedia" type="button" name="insImage" data-tarea="serendipity[extended]">{$CONST.MEDIA}</button>
<button class="wrap_insurl" type="button" name="insURL" data-tarea="serendipity[extended]">URL</button>

View File

@ -905,11 +905,17 @@ $(function() {
// Editor tools
$('.wrap_selection').click(function() {
var $el = $(this);
var $tag = $el.attr('data-tag');
var $tagOpen = $el.attr('data-tag-open');
var $tagClose = $el.attr('data-tag-close');
//var target = document.forms['serendipityEntry']['serendipity[' + $el.attr('data-tarea') + ']'];
var target = $('#'+serendipity.escapeBrackets($el.attr('data-tarea')));
var open = '<' + $tag + '>';
var close = '</' + $tag + '>';
if ($el.hasClass('lang-html')) {
var open = '<' + $tagOpen + '>';
var close = '</' + $tagClose + '>';
} else {
var open = $tagOpen;
var close = $tagClose;
}
serendipity.wrapSelection(target, open, close);
});