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
 | 
						|
  }
 | 
						|
}
 |