mirror of
https://github.com/icecoder/ICEcoder.git
synced 2026-02-27 21:34:01 +01:00
CodeMirror instances now on z-index of 1, above body Body by default now shows server & user details if logged in and no docs loaded
164 lines
8.6 KiB
PHP
164 lines
8.6 KiB
PHP
<!DOCTYPE html>
|
|
|
|
<html style="margin: 0">
|
|
<head>
|
|
<title>CodeMirror 2: ICE Coders Editor of Choice</title>
|
|
<?php include("lib/settings.php");?>
|
|
<link rel="stylesheet" href="<?php echo $codeMirrorDir; ?>/lib/codemirror.css">
|
|
<script src="<?php echo $codeMirrorDir; ?>/lib/codemirror.js"></script>
|
|
<script src="<?php echo $codeMirrorDir; ?>/mode/clike/clike.js"></script>
|
|
<script src="<?php echo $codeMirrorDir; ?>/mode/css/css.js"></script>
|
|
<script src="<?php echo $codeMirrorDir; ?>/mode/javascript/javascript.js"></script>
|
|
<script src="<?php echo $codeMirrorDir; ?>/mode/xml/xml.js"></script>
|
|
<script src="<?php echo $codeMirrorDir; ?>/mode/coffeescript/coffeescript.js"></script>
|
|
<script src="<?php echo $codeMirrorDir; ?>/mode/php/php.js"></script>
|
|
<script src="<?php echo $codeMirrorDir; ?>/mode/ruby/ruby.js"></script>
|
|
<script src="<?php echo $codeMirrorDir; ?>/lib/util/searchcursor.js"></script>
|
|
<script src="<?php echo $codeMirrorDir; ?>/lib/util/match-highlighter.js"></script>
|
|
<script src="<?php echo $codeMirrorDir; ?>/lib/util/foldcode.js"></script>
|
|
<?php
|
|
if ($theme=="default") {
|
|
echo '<link rel="stylesheet" href="lib/editor.css">';
|
|
} else {
|
|
echo '<link rel="stylesheet" href="'.$codeMirrorDir.'/theme/'.$theme.'.css">';
|
|
}
|
|
?>
|
|
<style type="text/css">
|
|
.CodeMirror {position: absolute; width: 0; background-color: #fff; top: 0px; z-index: 1}
|
|
.CodeMirror-scroll {width: 100px; height: 100px;}
|
|
.cm-s-visible {display: block; top: 0}
|
|
.cm-s-hidden {display: none; top: 4000px}
|
|
.cm-s-activeLine {background: #002 !important;}
|
|
// Make sure this next one remains the 5th item, updated with JS
|
|
.cm-tab:after {position: relative; display: inline-block; width: 0; left: -1.4em; overflow: visible; color: #aaa; content: "<?php if ($visibleTabs) {?>\21e5<?;};?>";}
|
|
span.CodeMirror-matchhighlight {background: #555}
|
|
.CodeMirror-focused span.CodeMirror-matchhighlight {color: #000; background: #555; !important}
|
|
</style>
|
|
</head>
|
|
|
|
<body style="color: #fff; margin: 0" onKeyDown="return top.ICEcoder.interceptKeys('content', event);" onKeyUp="top.ICEcoder.resetKeys(event);">
|
|
|
|
<div style="margin: 35px 43px; font-family: arial; font-size: 10px; color: #dddddd">
|
|
<?php if($_SESSION['userLevel'] == 10) {
|
|
echo '<span style="color:#888">Server name:</span><br>'.PHP_EOL;
|
|
echo $_SERVER['SERVER_NAME'].'<br><br>'.PHP_EOL;
|
|
echo '<span style="color:#888">Server OS:</span><br>'.PHP_EOL;
|
|
echo $_SERVER['SERVER_SOFTWARE'].'<br><br>'.PHP_EOL;
|
|
echo '<span style="color:#888">Server IP:</span><br>'.PHP_EOL;
|
|
echo $_SERVER['SERVER_ADDR'].'<br><br>'.PHP_EOL;
|
|
echo '<span style="color:#888">Root:</span><br>'.PHP_EOL;
|
|
echo $_SERVER['DOCUMENT_ROOT'].'<br><br>'.PHP_EOL;
|
|
echo '<span style="color:#888">PHP version:</span><br>'.PHP_EOL;
|
|
echo phpversion().'<br><br><br>'.PHP_EOL;
|
|
|
|
echo '<span style="color:#888">Browser:</span><br>'.PHP_EOL;
|
|
echo $_SERVER['HTTP_USER_AGENT'].'<br><br>'.PHP_EOL;
|
|
echo '<span style="color:#888">Your IP:</span><br>'.PHP_EOL;
|
|
echo $_SERVER['REMOTE_ADDR'].'<br><br><br>'.PHP_EOL;
|
|
|
|
echo '<span style="color:#888">Date & time:</span><br>'.PHP_EOL;
|
|
echo date("D jS M Y g:i:sa").'<br><br>'.PHP_EOL;
|
|
}; ?>
|
|
</div>
|
|
|
|
<script>
|
|
function createNewCMInstance(num) {
|
|
var fileName = top.ICEcoder.openFiles[top.ICEcoder.selectedTab-1];
|
|
var codeFold = CodeMirror.newFoldFunction(CodeMirror.tagRangeFinder,'<span style=\"display: inline-block; width: 13px; height: 13px; background-color: #b00; color: #fff; text-align: center; cursor: pointer\"><span style="position: relative; top: -1px">+</span></span> %N%');
|
|
var codeFold_JS_Coffee_PHP_Ruby = CodeMirror.newFoldFunction(CodeMirror.braceRangeFinder,'<span style=\"display: inline-block; width: 13px; height: 13px; background-color: #b00; color: #fff; text-align: center; cursor: pointer\"><span style="position: relative; top: -1px">+</span></span> %N%');
|
|
|
|
window['cM'+num] = CodeMirror(document.body, {
|
|
mode: "application/x-httpd-php",
|
|
lineNumbers: true,
|
|
lineWrapping: true,
|
|
indentUnit: 4,
|
|
tabSize: 4,
|
|
indentWithTabs: true,
|
|
electricChars: false,
|
|
onCursorActivity: function() {
|
|
top.ICEcoder.getCaretPosition();
|
|
top.ICEcoder.updateCharDisplay();
|
|
window['cM'+top.ICEcoder.cMInstances[top.ICEcoder.selectedTab-1]].setLineClass(top.ICEcoder['cMActiveLine'+top.ICEcoder.selectedTab], null);
|
|
if(!window['cM'+top.ICEcoder.cMInstances[top.ICEcoder.selectedTab-1]].somethingSelected()) {
|
|
top.ICEcoder['cMActiveLine'+top.ICEcoder.selectedTab] = window['cM'+top.ICEcoder.cMInstances[top.ICEcoder.selectedTab-1]].setLineClass(window['cM'+top.ICEcoder.cMInstances[top.ICEcoder.selectedTab-1]].getCursor().line, "cm-s-activeLine");
|
|
}
|
|
window['cM'+top.ICEcoder.cMInstances[top.ICEcoder.selectedTab-1]].matchHighlight("CodeMirror-matchhighlight");
|
|
top.ICEcoder.cssColorPreview();
|
|
},
|
|
onChange: function() {
|
|
// If we're not loading the file, it's a change, so update tab
|
|
if (!top.ICEcoder.loadingFile) {
|
|
top.ICEcoder.changedContent[top.ICEcoder.selectedTab-1] = 1;
|
|
top.ICEcoder.redoTabHighlight(top.ICEcoder.selectedTab);
|
|
}
|
|
top.ICEcoder.getCaretPosition();
|
|
top.ICEcoder.dontUpdateNest = false;
|
|
top.ICEcoder.updateCharDisplay();
|
|
top.ICEcoder.updateNestingIndicator();
|
|
if (top.ICEcoder.findMode) {
|
|
top.ICEcoder.results.splice(top.ICEcoder.findResult,1);
|
|
top.document.getElementById('results').innerHTML = top.ICEcoder.results.length + " results";
|
|
top.ICEcoder.findMode = false;
|
|
}
|
|
},
|
|
onKeyEvent: function(instance, e) {
|
|
top.ICEcoder.redoChangedContent(e);
|
|
top.ICEcoder.findReplace('find',true,false);
|
|
top.ICEcoder.getCaretPosition();
|
|
top.ICEcoder.updateCharDisplay();
|
|
tok = window['cM'+top.ICEcoder.cMInstances[top.ICEcoder.selectedTab-1]].getTokenAt(window['cM'+top.ICEcoder.cMInstances[top.ICEcoder.selectedTab-1]].getCursor());
|
|
if (tok.string!=">") {lastString=tok.string};
|
|
if (e.type=="keyup"&&e.keyCode=="16"&&lastKeyCode=="190") {
|
|
canDoEndTag=true;
|
|
for (i=0;i<top.ICEcoder.tagNestExceptions.length;i++) {
|
|
if(top.ICEcoder.tagString!="script" && top.ICEcoder.tagString==top.ICEcoder.tagNestExceptions[i]) {
|
|
canDoEndTag=false;
|
|
}
|
|
}
|
|
if(top.ICEcoder.tagString.slice(0,1)=="/"||top.ICEcoder.tagString.slice(0,1)=="?") {
|
|
canDoEndTag=false;
|
|
}
|
|
if (!top.ICEcoder.codeAssist||fileName.indexOf(".js")>0||fileName.indexOf(".css")>0) {
|
|
canDoEndTag=false;
|
|
}
|
|
contentType = top.ICEcoder.caretLocType;
|
|
if (canDoEndTag && (contentType!="JavaScript"||(contentType=="JavaScript"&&top.ICEcoder.tagString=="script"))) {
|
|
numTabs = top.ICEcoder.htmlTagArray.length;
|
|
if (top.ICEcoder.htmlTagArray[0]=="html") {numTabs--};
|
|
tabs = "";
|
|
for (i=0;i<numTabs-1;i++) {
|
|
tabs += "\t";
|
|
}
|
|
//endTag = "</" + top.ICEcoder.htmlTagArray[top.ICEcoder.htmlTagArray.length-1] + ">";
|
|
endTag = "</" + top.ICEcoder.tagString + ">";
|
|
if (top.ICEcoder.tagString=="script") {endTag="</"+"script>"};
|
|
if(top.ICEcoder.tagString=="title"||top.ICEcoder.tagString=="a"||top.ICEcoder.tagString=="li"||top.ICEcoder.tagString=="span"||(top.ICEcoder.tagString.slice(0,1)=="h"&&parseInt(top.ICEcoder.tagString.slice(1,2),10)>=1&&parseInt(top.ICEcoder.tagString.slice(1,2),10)<=7)) {
|
|
window['cM'+top.ICEcoder.cMInstances[top.ICEcoder.selectedTab-1]].replaceSelection(endTag);
|
|
window['cM'+top.ICEcoder.cMInstances[top.ICEcoder.selectedTab-1]].setCursor(window['cM'+top.ICEcoder.cMInstances[top.ICEcoder.selectedTab-1]].getCursor().line,window['cM'+top.ICEcoder.cMInstances[top.ICEcoder.selectedTab-1]].getCursor().ch-top.ICEcoder.tagString.length-3);
|
|
} else if(top.ICEcoder.tagString=="html"||top.ICEcoder.tagString=="head") {
|
|
window['cM'+top.ICEcoder.cMInstances[top.ICEcoder.selectedTab-1]].replaceSelection("\n\n"+endTag);
|
|
window['cM'+top.ICEcoder.cMInstances[top.ICEcoder.selectedTab-1]].setCursor(window['cM'+top.ICEcoder.cMInstances[top.ICEcoder.selectedTab-1]].getCursor().line-1,numTabs);
|
|
} else {
|
|
window['cM'+top.ICEcoder.cMInstances[top.ICEcoder.selectedTab-1]].replaceSelection("\n"+tabs+"\t\n"+tabs+endTag);
|
|
window['cM'+top.ICEcoder.cMInstances[top.ICEcoder.selectedTab-1]].setCursor(window['cM'+top.ICEcoder.cMInstances[top.ICEcoder.selectedTab-1]].getCursor().line-1,numTabs);
|
|
}
|
|
}
|
|
};
|
|
lastKeyCode = e.keyCode;
|
|
},
|
|
onGutterClick: !fileName || (fileName && fileName.indexOf(".js") == -1 && fileName.indexOf(".coffee") == -1 && fileName.indexOf(".php") && fileName.indexOf(".rb") == -1) ? codeFold : codeFold_JS_Coffee_PHP_Ruby,
|
|
extraKeys: {
|
|
"Tab": function(cm) {CodeMirror.commands[top.tabsIndent ? "defaultTab" : "insertTab"](cm);},
|
|
"Shift-Tab": "indentLess"
|
|
}
|
|
});
|
|
|
|
// Now create the active line for this CodeMirror object
|
|
top.ICEcoder['cMActiveLine'+top.ICEcoder.selectedTab] = window['cM'+top.ICEcoder.cMInstances[top.ICEcoder.selectedTab-1]].setLineClass(0, "cm-s-activeLine");
|
|
};
|
|
|
|
</script>
|
|
|
|
</body>
|
|
|
|
</html>
|