<?php class pluginsimpleMDE extends Plugin { private $loadWhenController = array( 'new-post', 'new-page', 'edit-post', 'edit-page' ); public function init() { $this->dbFields = array( 'tabSize'=>'2', 'toolbar'=>'"bold", "italic", "heading", "|", "quote", "unordered-list", "|", "link", "image", "code", "horizontal-rule", "|", "preview", "side-by-side", "fullscreen", "guide"' ); } public function form() { global $Language; $html = '<div>'; $html .= '<label>'.$Language->get('Toolbar').'</label>'; $html .= '<input name="toolbar" id="jstoolbar" type="text" value="'.$this->getDbField('toolbar').'">'; $html .= '</div>'; $html .= '<div>'; $html .= '<label>'.$Language->get('Tab size').'</label>'; $html .= '<input name="tabSize" id="jstabSize" type="text" value="'.$this->getDbField('tabSize').'">'; $html .= '</div>'; return $html; } public function adminHead() { global $layout; $html = ''; // Load CSS and JS only on Controllers in array. if(in_array($layout['controller'], $this->loadWhenController)) { // Path plugin. $pluginPath = $this->htmlPath(); // Load CSS $html .= '<link rel="stylesheet" href="'.$pluginPath.'css/simplemde.min.css">'; // Load Javascript $html .= '<script src="'.$pluginPath.'js/simplemde.min.js"></script>'; // Hack for Bludit $html .= '<style> .editor-toolbar::before { margin-bottom: 2px !important } .editor-toolbar::after { margin-top: 2px !important } </style>'; } return $html; } public function adminBodyEnd() { global $layout; $html = ''; // Load CSS and JS only on Controllers in array. if(in_array($layout['controller'], $this->loadWhenController)) { $pluginPath = $this->htmlPath(); $html = '<script>$(document).ready(function() { '; $html .= 'var simplemde = new SimpleMDE({ element: document.getElementById("jscontent"), status: false, toolbarTips: true, toolbarGuideIcon: true, autofocus: false, lineWrapping: true, indentWithTabs: true, tabSize: '.$this->getDbField('tabSize').', spellChecker: false, toolbar: ['.Sanitize::htmlDecode($this->getDbField('toolbar')).'] });'; $html .= '}); </script>'; } return $html; } }