bludit/bl-plugins/quill/plugin.php

80 lines
2.2 KiB
PHP
Raw Normal View History

<?php
class pluginQuill extends Plugin {
private $loadOnController = array(
'new-content',
'edit-content'
);
public function adminHead()
{
// Load Quill only on the selected controllers to keep perfomance
// For example, in the dashboard is not going to be included the Quill CSS and JS scripts.
if (!in_array($GLOBALS['ADMIN_CONTROLLER'], $this->loadOnController)) {
return false;
}
$html = '<link rel="stylesheet" type="text/css" href="'.$this->htmlPath().'quill/quill.snow.css?version='.BLUDIT_VERSION.'">'.PHP_EOL;
$html .= '<link rel="stylesheet" type="text/css" href="'.$this->htmlPath().'quill/bludit.css?version='.BLUDIT_VERSION.'">'.PHP_EOL;
$html .= '<script charset="utf-8" src="'.$this->htmlPath().'quill/quill.min.js?version='.BLUDIT_VERSION.'"></script>'.PHP_EOL;
return $html;
}
public function adminBodyEnd()
{
2018-05-08 23:25:18 +02:00
// Load Quill only on the selected controllers to keep perfomance
// For example, in the dashboard is not going to be included the Quill CSS and JS scripts.
if (!in_array($GLOBALS['ADMIN_CONTROLLER'], $this->loadOnController)) {
return false;
}
$script = <<<EOF
<script>
var quill;
2018-07-07 12:04:34 +02:00
// Function required for Media Manager
// Insert an image on the editor in the cursor position
2018-05-08 00:15:40 +02:00
function editorInsertMedia(filename) {
2018-05-16 19:42:40 +02:00
quill.focus();
2018-07-07 12:04:34 +02:00
var index = quill.getSelection().index;
quill.insertEmbed(index, 'image', DOMAIN_UPLOADS + filename);
}
2018-05-08 00:15:40 +02:00
// Function required for Autosave function
// Returns the content of the editor
function editorGetContent() {
return quill.container.firstChild.innerHTML;
}
$(document).ready(function() {
2018-07-07 12:04:34 +02:00
var content = $("#jseditor").val();
2018-07-03 23:04:08 +02:00
$("#jseditor").replaceWith("<div id=\"jseditor\">"+content+"</div>");
quill = new Quill("#jseditor", {
modules: {
toolbar: [
2018-07-07 12:04:34 +02:00
[{ 'header': [1, 2, 3, 4, 5, 6, false] }],
['bold', 'italic', 'underline', 'strike'],
['blockquote', 'code-block'],
[{ 'color': [] }, { 'background': [] }],
[{ list: 'ordered' }, { list: 'bullet' }],
['image'],
['clean']
]
},
placeholder: "Content, support Markdown and HTML.",
theme: "snow"
});
// Change button images event handler to open the Media Manager
quill.getModule("toolbar").addHandler("image", openMediaManager);
});
</script>
EOF;
return $script;
}
}