67 lines
1.5 KiB
PHP
67 lines
1.5 KiB
PHP
<?php
|
|
namespace nur\v\bs3\plugins;
|
|
|
|
use nur\b\params\IParametrable;
|
|
use nur\b\params\Tparametrable1;
|
|
use nur\v\BasePlugin;
|
|
use nur\v\js;
|
|
|
|
class easymdePlugin extends BasePlugin implements IParametrable {
|
|
use Tparametrable1;
|
|
|
|
const CSS = [
|
|
"nur-v-bs3/highlightjs/styles/default.min.css",
|
|
"nur-v-bs3/easymde/easymde.min.css",
|
|
];
|
|
|
|
const JS = [
|
|
"nur-v-bs3/highlightjs/highlight.min.js",
|
|
"nur-v-bs3/easymde/easymde.min.js",
|
|
];
|
|
|
|
const SELECTOR = null;
|
|
const CONFIG = [
|
|
"spellChecker" => false,
|
|
"hideIcons" => ["image"],
|
|
];
|
|
|
|
const PARAMETRABLE_PARAMS_SCHEMA = [
|
|
"selector" => ["string", "textarea:first", "sélecteur pour les controles"],
|
|
"config" => ["?array", null, "configuration de l'objet"],
|
|
];
|
|
|
|
function __construct(?array $params=null) {
|
|
self::set_parametrable_params_defaults($params, [
|
|
"selector" => static::SELECTOR,
|
|
"config" => static::CONFIG,
|
|
]);
|
|
$this->initParametrableParams($params);
|
|
}
|
|
|
|
protected $ppSelector;
|
|
|
|
protected $ppConfig;
|
|
|
|
const HAVE_JQUERY = true;
|
|
|
|
function printJquery(): void {
|
|
?>
|
|
<script type="text/javascript">
|
|
jQuery.noConflict()(function($) {
|
|
let config = <?=js::qo($this->ppConfig)?>;
|
|
let selector = <?=js::qv($this->ppSelector)?>;
|
|
if (selector !== "") {
|
|
let $elements = $(selector);
|
|
if ($elements.length > 0) {
|
|
$elements.each(function () {
|
|
config.element = this;
|
|
new EasyMDE(config);
|
|
});
|
|
}
|
|
}
|
|
});
|
|
</script>
|
|
<?php
|
|
}
|
|
}
|