Skip to content
Code-Schnipsel Gruppen Projekte
Commit 799b93ae erstellt von Florian Bogner's avatar Florian Bogner
Dateien durchsuchen

feat: Removed more incompatible plugins

Übergeordneter b092921f
No related branches found
No related tags found
Keine zugehörigen Merge Requests gefunden
......@@ -574,7 +574,6 @@ define('package/quiqqer/ckeditor4/bin/Editor', [
dialogDefinition = ev.data.definition;
console.log(dialogName);
/**
* Image dialog
*/
......@@ -582,7 +581,6 @@ define('package/quiqqer/ckeditor4/bin/Editor', [
return ev;
}
console.log(this);
var oldOnShow = dialogDefinition.onShow;
......@@ -745,7 +743,7 @@ define('package/quiqqer/ckeditor4/bin/Editor', [
var self = this,
oldOnShow = dialogDefinition.onShow;
console.log(self);
// Get a reference to the "Link Info" tab.
dialogDefinition.onShow = function () {
......@@ -864,7 +862,7 @@ define('package/quiqqer/ckeditor4/bin/Editor', [
var Label = UrlGroup.getElement("label");
console.log(Label);
Label.setStyles({
width : "100%",
display: "block"
......
/*
Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
/**
* Represent plain text selection range.
*/
CKEDITOR.plugins.add('textselection',
{
version: 1.04,
init: function (editor) {
// Corresponding text range of wysiwyg bookmark.
var wysiwygBookmark;
// Auto sync text selection with 'WYSIWYG' mode selection range.
if (editor.config.syncSelection
&& CKEDITOR.plugins.sourcearea) {
editor.on('beforeModeUnload', function (evt) {
if (editor.mode === 'source') {
if (editor.mode === 'source' && !editor.plugins.codemirror) {
var range = editor.getTextSelection();
// Fly the range when create bookmark.
delete range.element;
range.createBookmark(editor);
sourceBookmark = true;
evt.data = range.content;
}
}
});
editor.on('mode', function () {
if (editor.mode === 'wysiwyg' && sourceBookmark) {
editor.focus();
var doc = editor.document,
range = new CKEDITOR.dom.range(editor.document),
startNode,
endNode,
isTextNode = false;
range.setStartAt(doc.getBody(), CKEDITOR.POSITION_AFTER_START);
range.setEndAt(doc.getBody(), CKEDITOR.POSITION_BEFORE_END);
var walker = new CKEDITOR.dom.walker(range);
// walker.type = CKEDITOR.NODE_COMMENT;
walker.evaluator = function (node) {
//
var match = /cke_bookmark_\d+(\w)/.exec(node.$.nodeValue);
if (match) {
if(decodeURIComponent(node.$.nodeValue)
.match(/<!--cke_bookmark_[0-9]+S-->.*<!--cke_bookmark_[0-9]+E-->/)){
isTextNode = true;
startNode = endNode = node;
return false;
} else {
if (match[1] === 'S') {
startNode = node;
} else if (match[1] === 'E') {
endNode = node;
return false;
}
}
}
};
walker.lastForward();
range.setStartAfter(startNode);
range.setEndBefore(endNode);
range.select();
// Scroll into view for non-IE.
if (!CKEDITOR.env.ie || (CKEDITOR.env.ie && CKEDITOR.env.version === 9)) {
editor.getSelection().getStartElement().scrollIntoView(true);
} // Remove the comments node which are out of range.
if(isTextNode){
//remove all of our bookmarks from the text node
//then remove all of the cke_protected bits that added because we had a comment
//whatever code is supposed to clean these cke_protected up doesn't work
//when there's two comments in a row like: <!--{cke_protected}{C}--><!--{cke_protected}{C}-->
startNode.$.nodeValue = decodeURIComponent(startNode.$.nodeValue).
replace(/<!--cke_bookmark_[0-9]+[SE]-->/g,'').
replace(/<!--[\s]*\{cke_protected}[\s]*\{C}[\s]*-->/g,'');
} else {
//just remove the comment nodes
startNode.remove();
endNode.remove();
}
}
}, null, null, 10);
editor.on('beforeGetModeData', function () {
if (editor.mode === 'wysiwyg' && editor.getData()) {
if (CKEDITOR.env.gecko && !editor.focusManager.hasFocus) {
return;
}
var sel = editor.getSelection(), range;
if (sel && (range = sel.getRanges()[0])) {
wysiwygBookmark = range.createBookmark(editor);
}
}
});
// Build text range right after wysiwyg has unloaded.
editor.on('afterModeUnload', function (evt) {
if (editor.mode === 'wysiwyg' && wysiwygBookmark) {
textRange = new CKEDITOR.dom.textRange(evt.data);
textRange.moveToBookmark(wysiwygBookmark, editor);
evt.data = textRange.content;
}
});
editor.on('mode', function () {
if (editor.mode === 'source' && textRange && !editor.plugins.codemirror) {
textRange.element = new CKEDITOR.dom.element(editor._.editable.$);
textRange.select();
}
});
editor.on('destroy', function () {
textRange = null;
sourceBookmark = null;
});
}
}
});
/**
* Gets the current text selection from the editing area when in Source mode.
* @returns {CKEDITOR.dom.textRange} Text range represent the caret positoins.
* @example
* var textSelection = CKEDITOR.instances.editor1.<b>getTextSelection()</b>;
* alert( textSelection.startOffset );
* alert( textSelection.endOffset );
*/
CKEDITOR.editor.prototype.getTextSelection = function () {
return this._.editable && getTextSelection(this._.editable.$) || null;
};
/**
* Returns the caret position of the specified textfield/textarea.
* @param {HTMLTextArea|HTMLTextInput} element
*/
function getTextSelection(element) {
var startOffset, endOffset;
if (!CKEDITOR.env.ie) {
startOffset = element.selectionStart;
endOffset = element.selectionEnd;
} else {
element.focus();
// The current selection
if (window.getSelection) {
startOffset = element.selectionStart;
endOffset = element.selectionEnd;
} else {
var range = document.selection.createRange(),
textLength = range.text.length;
// Create a 'measuring' range to help calculate the start offset by
// stretching it from start to current position.
var measureRange = range.duplicate();
measureRange.moveToElementText(element);
measureRange.setEndPoint('EndToEnd', range);
endOffset = measureRange.text.length;
startOffset = endOffset - textLength;
}
}
return new CKEDITOR.dom.textRange(
new CKEDITOR.dom.element(element), startOffset, endOffset);
}
/**
* Represent the selection range within a html textfield/textarea element,
* or even a flyweight string content represent the text content.
* @constructor
* @param {CKEDITOR.dom.element|String} element
* @param {Number} start
* @param {Number} end
*/
CKEDITOR.dom.textRange = function (element, start, end) {
if (element instanceof CKEDITOR.dom.element
&& (element.is('textarea')
|| element.is('input') && element.getAttribute('type') == 'text')) {
this.element = element;
this.content = element.$.value;
} else if (typeof element == 'string')
this.content = element;
else
throw 'Unkown "element" type.';
this.startOffset = start || 0;
this.endOffset = end || 0;
};
/**
* Changes the editing mode of this editor instance. (Override of the original function)
*
* **Note:** The mode switch could be asynchronous depending on the mode provider.
* Use the `callback` to hook subsequent code.
*
* // Switch to "source" view.
* CKEDITOR.instances.editor1.setMode( 'source' );
* // Switch to "wysiwyg" view and be notified on completion.
* CKEDITOR.instances.editor1.setMode( 'wysiwyg', function() { alert( 'wysiwyg mode loaded!' ); } );
*
* @param {String} [newMode] If not specified, the {@link CKEDITOR.config#startupMode} will be used.
* @param {Function} [callback] Optional callback function which is invoked once the mode switch has succeeded.
*/
CKEDITOR.editor.prototype.setMode = function (newMode, callback) {
var editor = this;
var modes = this._.modes;
// Mode loading quickly fails.
if (newMode == editor.mode || !modes || !modes[newMode])
return;
editor.fire('beforeSetMode', newMode);
if (editor.mode) {
var isDirty = editor.checkDirty();
editor._.previousMode = editor.mode;
editor.fire('beforeModeUnload');
editor.fire('beforeGetModeData');
var data = editor.getData();
data = editor.fire('beforeModeUnload', data);
data = editor.fire('afterModeUnload', data);
// Detach the current editable.
editor.editable(0);
editor._.data = data;
// Clear up the mode space.
editor.ui.space('contents').setHtml('');
editor.mode = '';
}
// Fire the mode handler.
this._.modes[newMode](function () {
// Set the current mode.
editor.mode = newMode;
if (isDirty !== undefined) {
!isDirty && editor.resetDirty();
}
// Delay to avoid race conditions (setMode inside setMode).
setTimeout(function () {
editor.fire('mode');
callback && callback.call(editor);
}, 0);
});
};
CKEDITOR.dom.textRange.prototype =
{
/**
* Sets the text selection of the specified textfield/textarea.
* @param {HTMLTextArea|HTMLTextInput} element
* @param {CKEDITOR.dom.textRange} range
*/
select: function() {
var startOffset = this.startOffset,
endOffset = this.endOffset,
element = this.element.$;
if (endOffset == undefined) {
endOffset = startOffset;
}
if (CKEDITOR.env.ie && CKEDITOR.env.version == 9) {
element.focus();
element.selectionStart = startOffset;
element.selectionEnd = startOffset;
setTimeout(function() {
element.selectionStart = startOffset;
element.selectionEnd = endOffset;
}, 20);
} else {
if (element.setSelectionRange) {
if (CKEDITOR.env.ie) {
element.focus();
}
element.setSelectionRange(startOffset, endOffset);
if (!CKEDITOR.env.ie) {
element.focus();
}
} else if (element.createTextRange) {
element.focus();
var range = element.createTextRange();
range.collapse(true);
range.moveStart('character', startOffset);
range.moveEnd('character', endOffset - startOffset);
range.select();
}
}
},
/**
* Select the range included within the bookmark text with the bookmark
* text removed.
* @param {Object} bookmark Exactly the one created by CKEDITOR.dom.range.createBookmark( true ).
*/
moveToBookmark: function(bookmark, editor) {
var content = this.content;
function removeBookmarkText(bookmarkId) {
var bookmarkRegex = new RegExp('<span[^<]*?' + bookmarkId + '.*?/span>'),
offset;
content = content.replace(bookmarkRegex, function(str, index) {
offset = index;
return '';
});
return offset;
}
this.startOffset = removeBookmarkText(bookmark.startNode);
this.endOffset = removeBookmarkText(bookmark.endNode);
this.content = content;
this.updateElement();
if (editor.undoManager) {
editor.undoManager.unlock();
}
},
/**
* If startOffset/endOffset anchor inside element tag, start the range before/after the element
*/
enlarge: function() {
var htmlOpenTagRegexp = /<[a-zA-Z]+(>|.*?[^?]>)/g;
var htmlCloseTagRegexp = /<\/[^>]+>/g;
var content = this.content,
start = this.startOffset,
end = this.endOffset,
match,
tagStartIndex,
tagEndIndex;
// Adjust offset position on parsing result.
while (match = htmlCloseTagRegexp.exec(content)) {
tagStartIndex = match.index;
if (start > tagStartIndex) {
start = tagStartIndex;
}
if (end > tagStartIndex) {
end = tagStartIndex;
break;
}
break;
}
while (match = htmlOpenTagRegexp.exec(content)) {
tagStartIndex = match.index;
tagEndIndex = tagStartIndex + match[0].length;
if (start < tagEndIndex) {
start = tagEndIndex;
}
if (end < tagEndIndex) {
end = tagEndIndex;
break;
}
break;
}
this.startOffset = start;
this.endOffset = end;
},
createBookmark: function(editor) {
// Enlarge the range to avoid tag partial selection.
this.enlarge();
var content = this.content,
start = this.startOffset,
end = this.endOffset,
id = CKEDITOR.tools.getNextNumber(),
bookmarkTemplate = '<!--cke_bookmark_%1-->';
content = content.substring(0, start) + bookmarkTemplate.replace('%1', id + 'S')
+ content.substring(start, end) + bookmarkTemplate.replace('%1', id + 'E')
+ content.substring(end);
if (editor.undoManager) {
editor.undoManager.lock();
}
this.content = content;
this.updateElement();
},
updateElement: function() {
if (this.element)
this.element.$.value = this.content;
}
};
var Browser = {
Version: function() {
var version = 999;
if (navigator.appVersion.indexOf("MSIE") != -1)
version = parseFloat(navigator.appVersion.split("MSIE")[1]);
return version;
}
};
// Seamless selection range across different modes.
CKEDITOR.config.syncSelection = true;
var textRange,sourceBookmark;
<!DOCTYPE html>
<!--
Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
-->
<html>
<head>
<title>Textselection Plugin &mdash; CKEditor Sample</title>
<meta charset="utf-8">
<script src="../../../ckeditor.js"></script>
<link rel="stylesheet" href="../../../samples/sample.css">
<meta name="ckeditor-sample-name" content="textselection plugin">
<meta name="ckeditor-sample-group" content="Plugins">
<meta name="ckeditor-sample-description" content="Using the textselection plugin in order to make the editor keep it's text-selection when switching between WYSIWYG and Source mode">
</head>
<body>
<h1 class="samples">
<a href="../../../samples/index.html">CKEditor Samples</a> &raquo; Using textselection Plugin
</h1>
<div class="description">
<p>
This sample shows how to configure CKEditor instances to use the
<strong>textselection</strong> (<code>textselection</code>) plugin that makes the editor keep it's text-selection when switching between WYSIWYG and Source mode, and scrolls the selection into the viewport.</p>
<p>
To add a CKEditor instance using the <code>textselection</code> plugin, insert the following JavaScript call to your code:
</p>
<pre class="samples">
CKEDITOR.replace( '<em>textarea_id</em>', {
<strong>extraPlugins: 'textselection',</strong>
});</pre>
<p>
Note that <code><em>textarea_id</em></code> in the code above is the <code>id</code> attribute of
the <code>&lt;textarea&gt;</code> element to be replaced with CKEditor.</p>
</div>
<form action="../../../samples/sample_posteddata.php" method="post">
<p>
<label for="editor1">
CKEditor using the <code>textselection</code> plugin <strong>(mark some text and switch to Source View)</strong>: </label>
<textarea cols="80" id="editor1" name="editor1" rows="10"><p>&nbsp;<p></p>
<h1><img alt="Saturn V carrying Apollo 11" class="right" src="http://b.cksource.com/a/1/img/sample.jpg" /> Apollo 11</h1>
<p><strong>Apollo 11</strong> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin">Buzz Aldrin</a>, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.<p></p>
<p>Armstrong spent about <s>three and a half</s> two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5&nbsp;kg) of lunar material for return to Earth. A third member of the mission, <a href="http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)">Michael Collins</a>, piloted the <a href="http://en.wikipedia.org/wiki/Apollo_Command/Service_Module">command</a> spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.<p></p>
<h2>Broadcasting and <em>quotes</em> <a id="quotes" name="quotes"></a></h2>
<p>Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:<p></p>
<blockquote>
<p>One small step for [a] man, one giant leap for mankind.<p></p>
</blockquote>
<p>Apollo 11 effectively ended the <a href="http://en.wikipedia.org/wiki/Space_Race">Space Race</a> and fulfilled a national goal proposed in 1961 by the late U.S. President <a href="http://en.wikipedia.org/wiki/John_F._Kennedy">John F. Kennedy</a> in a speech before the United States Congress:<p></p>
<blockquote>
<p>[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.<p></p>
</blockquote>
<h2>Technical details <a id="tech-details" name="tech-details"></a></h2>
<table align="right" border="1" cellpadding="5" cellspacing="0" style="border-collapse:collapse">
<caption><strong>Mission crew</strong></caption>
<thead>
<tr>
<th scope="col">Position</th>
<th scope="col">Astronaut</th>
</tr>
</thead>
<tbody>
<tr>
<td>Commander</td>
<td>Neil A. Armstrong</td>
</tr>
<tr>
<td>Command Module Pilot</td>
<td>Michael Collins</td>
</tr>
<tr>
<td>Lunar Module Pilot</td>
<td>Edwin &quot;Buzz&quot; E. Aldrin, Jr.</td>
</tr>
</tbody>
</table>
<p>Launched by a <strong>Saturn V</strong> rocket from <a href="http://en.wikipedia.org/wiki/Kennedy_Space_Center">Kennedy Space Center</a> in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of <a href="http://en.wikipedia.org/wiki/NASA">NASA</a>&#39;s Apollo program. The Apollo spacecraft had three parts:<p></p>
<ol>
<li><strong>Command Module</strong> with a cabin for the three astronauts which was the only part which landed back on Earth</li>
<li><strong>Service Module</strong> which supported the Command Module with propulsion, electrical power, oxygen and water</li>
<li><strong>Lunar Module</strong> for landing on the Moon.</li>
</ol>
<p>After being sent to the Moon by the Saturn V&#39;s upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the <a href="http://en.wikipedia.org/wiki/Mare_Tranquillitatis">Sea of Tranquility</a>. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the <a href="http://en.wikipedia.org/wiki/Pacific_Ocean">Pacific Ocean</a> on July 24.<p></p>
<hr />
<p><small>Source: <a href="http://en.wikipedia.org/wiki/Apollo_11">Wikipedia.org</a></small><p></p>
<p>&nbsp;<p></p>
</textarea>
<script>
CKEDITOR.replace( 'editor1', {
extraPlugins: 'textselection',
});
</script>
</p>
<p>
<input type="submit" value="Submit">
</p>
</form>
<div id="footer">
<hr>
<p>
CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
</p>
<p id="copy">
Copyright &copy; 2003-2013, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
Knabben. All rights reserved.
</p>
</div>
</body>
</html>
......@@ -29,12 +29,14 @@ class Manager
* @var array
*/
protected $blacklist = array(
"divarea",
"copyformatting",
"ckawesome",
"copyformatting",
"crossreference",
"ckeditortablecellsselection",
"divarea",
"enhancedcolorbutton",
"footnotes"
"footnotes",
"textselection"
);
......
0% oder .
You are about to add 0 people to the discussion. Proceed with caution.
Bearbeitung dieser Nachricht zuerst beenden!
Bitte registrieren oder zum Kommentieren