home/wuectly/www/libraries/regularlabs/fields/codeeditor.php000060400000004264152456623410020405 0ustar00 * @link http://www.regularlabs.com * @copyright Copyright © 2021 Regular Labs All Rights Reserved * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ defined('_JEXEC') or die; use Joomla\CMS\Editor\Editor as JEditor; use Joomla\CMS\Factory as JFactory; use Joomla\CMS\Plugin\PluginHelper as JPluginHelper; use RegularLabs\Library\Document as RL_Document; if ( ! is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php')) { return; } require_once JPATH_LIBRARIES . '/regularlabs/autoload.php'; class JFormFieldRL_CodeEditor extends \RegularLabs\Library\Field { public $type = 'CodeEditor'; protected function getInput() { $width = $this->get('width', '100%'); $height = $this->get('height', 400); $syntax = $this->get('syntax', 'html'); $this->value = htmlspecialchars(str_replace('\n', "\n", $this->value), ENT_COMPAT, 'UTF-8'); $editor_plugin = JPluginHelper::getPlugin('editors', 'codemirror'); if (empty($editor_plugin)) { return ''; } RL_Document::script('regularlabs/codemirror.min.js'); RL_Document::stylesheet('regularlabs/codemirror.min.css'); JFactory::getDocument()->addScriptDeclaration(" jQuery(document).ready(function($) { RegularLabsCodeMirror.init('" . $this->id . "'); }); "); JFactory::getDocument()->addStyleDeclaration(" #rl_codemirror_" . $this->id . " .CodeMirror { height: " . $height . "px; min-height: " . min($height, '100') . "px; } "); return '
' . JEditor::getInstance('codemirror')->display( $this->name, $this->value, $width, $height, 80, 10, false, $this->id, null, null, ['markerGutter' => false, 'activeLine' => true, 'syntax' => $syntax, 'class' => 'xxx'] ) . '
'; } }