| Server IP : 213.186.33.4 / Your IP : 216.73.216.193 Web Server : Apache System : Linux webm006.cluster103.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64 User : awebpaca ( 35430) PHP Version : 8.5.0 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/awebpaca/blog/plugins/editors/codemirror/layouts/editors/codemirror/ |
Upload File : |
<?php
/**
* @package Joomla.Plugin
* @subpackage Editors.codemirror
*
* @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
// No direct access
defined('_JEXEC') or die;
$params = $displayData->params;
$basePath = $params->get('basePath', 'media/editors/codemirror/');
$modePath = $params->get('modePath', 'media/editors/codemirror/mode/%N/%N');
$extJS = JDEBUG ? '.js' : '.min.js';
$extCSS = JDEBUG ? '.css' : '.min.css';
JHtml::_('script', $basePath . 'lib/codemirror' . $extJS, array('version' => 'auto'));
JHtml::_('script', $basePath . 'lib/addons' . $extJS, array('version' => 'auto'));
JHtml::_('stylesheet', $basePath . 'lib/codemirror' . $extCSS, array('version' => 'auto'));
JHtml::_('stylesheet', $basePath . 'lib/addons' . $extCSS, array('version' => 'auto'));
$fskeys = $params->get('fullScreenMod', array());
$fskeys[] = $params->get('fullScreen', 'F10');
$fullScreenCombo = implode('-', $fskeys);
$fsCombo = json_encode($fullScreenCombo);
$modPath = json_encode(JUri::root(true) . '/' . $modePath . $extJS);
JFactory::getDocument()->addScriptDeclaration(
<<<JS
;(function (cm, $) {
cm.keyMap.default["Ctrl-Q"] = toggleFullScreen;
cm.keyMap.default[$fsCombo] = toggleFullScreen;
cm.keyMap.default["Esc"] = closeFullScreen;
// For mode autoloading.
cm.modeURL = $modPath;
// Fire this function any time an editor is created.
cm.defineInitHook(function (editor)
{
// Try to set up the mode
var mode = cm.findModeByName(editor.options.mode || '');
if (mode)
{
cm.autoLoadMode(editor, mode.mode);
editor.setOption('mode', mode.mime);
}
else
{
cm.autoLoadMode(editor, editor.options.mode);
}
// Handle gutter clicks (place or remove a marker).
editor.on("gutterClick", function (ed, n, gutter) {
if (gutter != "CodeMirror-markergutter") { return; }
var info = ed.lineInfo(n),
hasMarker = !!info.gutterMarkers && !!info.gutterMarkers["CodeMirror-markergutter"];
ed.setGutterMarker(n, "CodeMirror-markergutter", hasMarker ? null : makeMarker());
});
// jQuery's ready function.
$(function () {
// Some browsers do something weird with the fieldset which doesn't work well with CodeMirror. Fix it.
$(editor.getTextArea()).parent('fieldset').css('min-width', 0);
// Listen for Bootstrap's 'shown' event. If this editor was in a hidden element when created, it may need to be refreshed.
$(document.body).on("shown shown.bs.tab shown.bs.modal", function () { editor.refresh(); });
});
});
function toggleFullScreen(cm)
{
cm.setOption("fullScreen", !cm.getOption("fullScreen"));
}
function closeFullScreen(cm)
{
cm.getOption("fullScreen") && cm.setOption("fullScreen", false);
}
function makeMarker()
{
var marker = document.createElement("div");
marker.className = "CodeMirror-markergutter-mark";
return marker;
}
}(CodeMirror, jQuery));
JS
);