%PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
| Server IP : 14.207.165.8 / Your IP : 216.73.216.26 Web Server : Apache/2.4.18 (Ubuntu) System : Linux 246 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64 User : root ( 0) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : exec,passthru,shell_exec,system,proc_open,popen,pcntl_exec MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /proc/thread-self/root/var/www/html/old/plugins/editors/jckeditor/plugins/jlink/dialogs/ |
Upload File : |
/*
Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
var jlinkDialog;
(function()
{
CKEDITOR.dialog.add( 'jlink', function( editor )
{
var pluginPath = editor.plugins.jlink.path;
var getFunctionsUrl = pluginPath + "dialogs/suggest.php?";
var httpRequestKeyword = "";
var userKeyword = "";
var suggestions = 0;
var suggestionMaxLength = 50;
var isKeyUpDownPressed = false;
var autocompletedKeyword = "";
var hasResults = false;
var timeoutId = -1;
var position = -1;
var oCache = new Object();
var minVisiblePosition = 0;
var maxVisiblePosition = 9;
var debugMode = true;
var LinkNames = null;
var CKXml;
var CacheKeyword = "";
var phpHelpUrl="";
phpHelpUrl = editor.config.baseHref;
var init = function() {
var oKeyword = document.getElementById("keyword");
oKeyword.value = "";
oKeyword.focus();
CKEDITOR.tools.setTimeout(checkForChanges,500);
};
var addToCache = function (keyword, values) {
oCache[keyword] = new Array();
for (i = 0; i < values.length; i++) oCache[keyword][i] = values[i];
};
var inCacheObj = function(keyword) {
for (var key in oCache) {
if (key.toLowerCase() == keyword.toLowerCase()) {
CacheKeyword = key;
return true;
}
};
return false;
};
var checkCache = function(keyword) {
if (inCacheObj(keyword)) return true;
for (i = keyword.length - 2; i >= 0; i--) {
var currentKeyword = keyword.length > 1 ? keyword.substring(0, i + 1) : keyword;
if (inCacheObj(currentKeyword)) {
var cacheResults = oCache[CacheKeyword];
var keywordResults = new Array();
var keywordResultsSize = 0;
for (j = 0; j < cacheResults.length; j++) {
if (cacheResults[j].toLowerCase().indexOf(keyword.toLowerCase()) == 0) {
keywordResults[keywordResultsSize++] = cacheResults[j];
}
};
addToCache(keyword, keywordResults);
return true;
}
};
return false;
};
var getSuggestions = function getSuggestions(keyword, oCKXml) {
if (keyword != "" && !isKeyUpDownPressed) {
var isInCache = checkCache(keyword);
if (isInCache == true) {
httpRequestKeyword = keyword;
userKeyword = keyword;
displayResults(keyword, oCache[CacheKeyword], oCKXml);
} else {
try {
if (oCKXml.xmlHttpGetSuggestions.readyState == 4 || oCKXml.xmlHttpGetSuggestions.readyState == 0) {
httpRequestKeyword = keyword;
userKeyword = keyword;
CKXml.LoadUrl(getFunctionsUrl + "keyword=" + encode(keyword), handleGettingSuggestions);
} else {
userKeyword = keyword;
if (timeoutId != -1) clearTimeout(timeoutId);
timeoutId = CKEDITOR.tools.setTimeout(getSuggestions, 500, this, [userKeyword,CKXml]);
}
} catch(e) {
displayError("Can't connect to server:\n" + e.toString());
}
}
}
};
var xmlToArray = function (resultsXml) {
var resultsArray = new Array();
for (i = 0; i < resultsXml.length; i++) resultsArray[i] = resultsXml.item(i).firstChild.data;
return resultsArray;
};
var handleGettingSuggestions = function (oCKXml) {
try {
updateSuggestions(oCKXml);
} catch(e) {
displayError(e.toString());
}
};
var updateSuggestions = function (oCKXml) {
var response = oCKXml.xmlHttpGetSuggestions.responseText;
if (response.indexOf("ERRNO") >= 0 || response.indexOf("error:") >= 0 || response.length == 0) throw (response.length == 0 ? "Void server response.": response);
response = oCKXml.DOMDocument;
if (response.childNodes.length) {
nameArray = oCKXml.ToArray("name");
};
if (httpRequestKeyword == userKeyword) {
displayResults(httpRequestKeyword, nameArray, oCKXml);
} else {
addToCache(httpRequestKeyword, nameArray);
}
};
var displayResults = function (keyword, results_array, oCKXml) {
var div = "<table>";
var pidArray = new Array();
var linkArray = new Array();
response = oCKXml.DOMDocument;
pidArray = oCKXml.ToArray("pid");
linkArray = oCKXml.ToArray("link");
if (!oCache[keyword] && keyword) {
addToCache(keyword, results_array);
};
if (results_array.length == 0) {
div += "<tr><td>No results found for <strong>" + keyword + "</strong></td></tr>";
hasResults = false;
suggestions = 0;
} else {
position = -1;
isKeyUpDownPressed = false;
hasResults = true;
suggestions = oCache[keyword].length;
LinkNames = null;
LinkNames = new Object();
for (var i = 0; i < oCache[keyword].length; i++) {
var offset = 0;
for (var j = i + offset; j < nameArray.length; j++) {
if (nameArray[j].toLowerCase().indexOf(keyword.toLowerCase()) == 0) {
offset = j;
break;
}
};
pidArray[offset] = linkArray[offset] + (pidArray[offset] > 0 ? "&Itemid=" + pidArray[offset] : '');
crtFunction = oCache[keyword][i];
LinkNames["a" + i] = crtFunction;
OnMtxtHref = 'onclick="' + "jlinkDialog.AssignValues('" + pidArray[offset] + "',this);return false;" + '"';
crtFunctionLink = crtFunction;
while (crtFunctionLink.indexOf("_") != -1) crtFunctionLink = crtFunctionLink.replace("_", "-");
div += "<tr id=\"tr" + i + "\" onclick='return false;' ondblclick='jlinkDialog.handleOnMouseClick(this);' " + "onmouseover='jlinkDialog.handleOnMouseOver(this);' " + "onmouseout='jlinkDialog.handleOnMouseOut(this);'>" + "<td align='left'><a " + OnMtxtHref + "id=\"a" + i + "\" href='" + phpHelpUrl;
div += pidArray[offset];
if (crtFunction.length <= suggestionMaxLength) {
div += "' title='Double click this link to view page'><b>" + crtFunction.substring(0, httpRequestKeyword.length) + "</b>";
div += crtFunction.substring(httpRequestKeyword.length, crtFunction.length) + "</a></td></tr>";
} else {
if (httpRequestKeyword.length < suggestionMaxLength) {
div += "'><b>" + crtFunction.substring(0, httpRequestKeyword.length) + "</b>";
div += crtFunction.substring(httpRequestKeyword.length, suggestionMaxLength) + "</a></td></tr>";
} else {
div += "'><b>" + crtFunction.substring(0, suggestionMaxLength) + "</b></td></tr>"
}
}
}
};
div += "</table>";
var oSuggest = CKEDITOR.document.getById("suggest");
var oScroll = CKEDITOR.document.getById("scroll");
oScroll.setAttribute('scrollTop',0);
oSuggest.setHtml(div);
oScroll.setStyle("visibility", "visible");
if (results_array.length > 0) autocompleteKeyword();
};
var checkForChanges = function () {
var elem = CKEDITOR.document.getById("keyword");
if(elem)
{
var keyword = elem.getValue();
if (keyword == "") {
hideSuggestions();
userKeyword = "";
httpRequestKeyword = "";
CKEDITOR.document.getById("suggest").setHtml("");
};
CKEDITOR.tools.setTimeout(checkForChanges,500);
if (keyword.length == 1 && !CKEDITOR.document.getById("tr0") ||
(userKeyword != keyword && (!isKeyUpDownPressed) && autocompletedKeyword != keyword) ||
(keyword.length > 0 && !CKEDITOR.document.getById("tr0")))
{
getSuggestions(keyword, CKXml);
}
}
};
var deselectAll = function() {
for (i = 0; i < suggestions; i++) {
var oCrtTr = CKEDITOR.document.getById("tr" + i);
oCrtTr.removeClass('highlightrow');
}
};
var handleOnMouseOver = function (oTr) {
deselectAll();
oTr.className = "highlightrow";
position = oTr.id.substring(2, oTr.id.length);
};
var handleOnMouseOut = function (oTr) {
oTr.className = "";
position = -1;
};
var handleOnMouseClick = function (otr) {
window.open(CKEDITOR.document.getById("a" + otr.id.replace("tr", "")).getAttribute("href"), 'open_window', 'menubar,toolbar,location,directories,status,scrollbars,resizable,dependent,width=640,height=480,left=0,top=0');
};
var AssignValues = function (link, elem) {
CKEDITOR.document.getById("txtHref").setValue(link);
CKEDITOR.document.getById("txtCaption").setValue(LinkNames[elem.id]);
};
var encode = function (uri) {
if (encodeURIComponent) {
return encodeURIComponent(uri);
};
if (escape) {
return escape(uri);
}
};
var hideSuggestions = this.hideSuggestions = function hideSuggestions() {
var oScroll = CKEDITOR.document.getById("scroll");
var elem = CKEDITOR.document.getById("keyword");
if (elem.getValue() == "") oScroll.setStyle("visibility","hidden");
};
var selectRange = function (oText, start, length) {
if (oText.setSelectionRange) {
oText.setSelectionRange(start, length);
} else if (oText.createTextRange) {
var oRange = oText.createTextRange();
oRange.moveStart("character", start);
oRange.moveEnd("character", length - oText.value.length);
oRange.select();
};
oText.focus();
};
var autocompleteKeyword = function () {
if (CKEDITOR.document.getById("tr0")) {
var oKeyword = CKEDITOR.document.getById("keyword");
position = 0;
deselectAll();
CKEDITOR.document.getById("tr0").addClass("highlightrow");
selectRange(oKeyword, httpRequestKeyword.length, oKeyword.getValue().length);
autocompletedKeyword = oKeyword.getValue();
}
};
var displayError = function (message) {
alert("Error accessing the server! " + (debugMode ? "\n" + message: ""));
};
return {
title : editor.lang.jlink.title,
minWidth : 400,
minHeight : 350,
onLoad : function()
{
jlinkDialog = {
hideSuggestions : hideSuggestions,
handleOnMouseOver : handleOnMouseOver,
handleOnMouseOut : handleOnMouseOut,
handleOnMouseClick : handleOnMouseClick,
AssignValues : AssignValues
}
},
onShow : function()
{
var editor = this.getParentEditor(),
selection = editor.getSelection(),
ranges = selection.getRanges(),
element = null;
//load stylesheet
var head = CKEDITOR.document.getHead();
head.append(
CKEDITOR.document.createElement( 'link',
{
attributes :
{
type : 'text/css',
rel : 'stylesheet',
href : pluginPath + 'dialogs/suggest.css'
}
})
);
// Fill in all the relevant fields if there's already one link selected.
if ( ranges.length == 1 )
{
var rangeRoot = ranges[0].getCommonAncestor( true );
element = rangeRoot.getAscendant( 'a', true );
if ( element && element.getAttribute( 'href' ) )
{
selection.selectElement( element );
CKEDITOR.document.getById('txtHref').setValue(element.getAttribute('href').replace(/^https?.+\/index.php/, 'index.php'));
CKEDITOR.document.getById('txtCaption').setValue(element.getText());
// Record down the selected element in the dialog.
this._.selectedElement = element;
}
}
// Preview
this.preview = CKEDITOR.document.getById( 'previewImage' );
if(!CKXml)
CKXml = new CXmlAjax();
init();
},
onOk : function()
{
var editor = this.getParentEditor(),
txtHref = CKEDITOR.document.getById('txtHref').getValue(),
txtCaption = CKEDITOR.document.getById('txtCaption').getValue(),
attributes =
{
href : txtHref
};
if ( !this._.selectedElement )
{
// Create element if current selection is collapsed.
var selection = editor.getSelection(),
ranges = selection.getRanges();
if ( ranges.length == 1 && ranges[0].collapsed )
{
var text = new CKEDITOR.dom.text( txtCaption, editor.document );
ranges[0].insertNode( text );
ranges[0].selectNodeContents( text );
selection.selectRanges( ranges );
}
// Apply style.
var style = new CKEDITOR.style( { element : 'a', attributes : attributes } );
style.type = CKEDITOR.STYLE_INLINE; // need to override... dunno why.
style.apply( editor.document );
}
else
{
// We're only editing an existing link, so just overwrite the attributes.
var element = this._.selectedElement;
element.setAttributes( attributes );
element.setText(txtCaption);
delete this._.selectedElement;
}
},
onClose : function()
{
CKXml = null;
jlinkDialog = null;
},
contents : [
{
id : 'info',
label : editor.lang.jlink.info,
accessKey : 'I',
elements :
[
{
type : 'vbox',
padding : 0,
children :
[
{
type : 'html',
html : '<span>URL:</span>'
},
{
type : 'vbox',
children :
[
{
type : 'html',
html : '<div class="cke_dialog_ui_input_text"><input name="txtHref" id="txtHref" class="cke_dialog_ui_input_text" maxlength="150" value="" type="text" /></div>',
validate : function()
{
var dialog = this.getDialog();
if ( CKEDITOR.document.getByID('txtHref').getValue() )
return true;
var func = CKEDITOR.dialog.validate.notEmpty( editor.lang.jlink.noUrl );
return func.apply( this );
}
}
]
},
{
type : 'html',
html : '<span>Caption:</span>'
},
{
type : 'vbox',
children :
[
{
type : 'html',
html : '<div class="cke_dialog_ui_input_text"><input name="txtCaption" id="txtCaption" class="cke_dialog_ui_input_text" maxlength="150" value="" type="text" /></div>'
}
]
}
]
},
{
type : 'html',
html : '<div><div id="message">Enter the first letters of the article title: </div>' +
'<div onclick="jlinkDialog.hideSuggestions();" class="cke_dialog_ui_input_text"><input name="keyword" id="keyword" class="cke_dialog_ui_input_text" maxlength="150" value="" type="text" /></div></div>'
},
{
type : 'hbox',
children :
[
{
type : 'html',
style : 'width:100%;',
html : '<div id="content" onclick="jlinkDialog.hideSuggestions();">' +
'<div id="scroll">' +
'<div id="suggest">' +
'</div>' + '</div>'
}
]
}
]
}
]
};
});
var CXmlAjax = function() {
this.xmlHttpGetSuggestions = (function()
{
if ( !CKEDITOR.env.ie || location.protocol != 'file:' )
try { return new XMLHttpRequest(); } catch(e) {}
try { return new ActiveXObject( 'Msxml2.XMLHTTP' ); } catch (e) {}
try { return new ActiveXObject( 'Microsoft.XMLHTTP' ); } catch (e) {}
return null;
})();
}
CXmlAjax.prototype.LoadUrl = function(urlToCall, asyncFunctionPointer) {
var oCKXml = this;
var bAsync = (typeof(asyncFunctionPointer) == 'function');
this.xmlHttpGetSuggestions.open("GET", urlToCall, bAsync);
if (oCKXml.xmlHttpGetSuggestions) {
if (bAsync) {
this.xmlHttpGetSuggestions.onreadystatechange = function() {
if (oCKXml.xmlHttpGetSuggestions.readyState == 4) {
if ((oCKXml.xmlHttpGetSuggestions.status != 200 && oCKXml.xmlHttpGetSuggestions.status != 304) || oCKXml.xmlHttpGetSuggestions.responseXML == null || oCKXml.xmlHttpGetSuggestions.responseXML.firstChild == null) {
throw new Error('The server didn\'t send back a proper XML response. Please contact your system administrator.\n\n' + 'XML request error: ' + oCKXml.xmlHttpGetSuggestions.statusText + ' (' + oCKXml.xmlHttpGetSuggestions.status + ')\n\n' + 'Requested URL:\n' + urlToCall + '\n\n' + 'Response text:\n' + oCKXml.xmlHttpGetSuggestions.responseText);
};
oCKXml.DOMDocument = oCKXml.xmlHttpGetSuggestions.responseXML;
asyncFunctionPointer(oCKXml);
}
}
};
oCKXml.xmlHttpGetSuggestions.send(null);
if (!bAsync) {
if (oCKXml.xmlHttpGetSuggestions.status == 200 || oCKXml.xmlHttpGetSuggestions.status == 304) oCKXml.DOMDocument = oCKXml.xmlHttpGetSuggestions.responseXML;
else {
throw new Error('XML request error: ' + oCKXml.xmlHttpGetSuggestions.statusText + ' (' + oCKXml.xmlHttpGetSuggestions.status + ')');
}
}
}
}
CXmlAjax.prototype.ToArray = function(tagName) {
var resultsXml = this.DOMDocument.getElementsByTagName(tagName);
var resultsArray = new Array();
for (i = 0; i < resultsXml.length; i++) resultsArray[i] = resultsXml.item(i).firstChild.data;
return resultsArray;
}
})();