如果你需要对富文本编辑器进行全局设置,可以在 app\Admin\bootstrap.php
加上以下代码
<?php use Dcat\Admin\Form\Field\Editor;
Editor::resolving(function (Editor $editor) {
// 设置默认配置
$editor->options([
'plugins' => [ # 自定义插件
'print', 'preview', 'searchreplace', 'autolink', 'directionality', 'visualblocks', 'visualchars', 'fullscreen', 'image', 'link', 'media', 'template', 'code', 'codesample',
'table', 'charmap', 'hr', 'pagebreak', 'nonbreaking', 'anchor', 'insertdatetime', 'advlist', 'lists', 'wordcount', 'imagetools', 'textpattern', 'help', 'emoticons',
'autosave', 'bdmap', 'indent2em', 'autoresize', 'formatpainter', 'axupimgs', 'importword',
],
'toolbar' => [ # 自定义工具栏
'code undo redo restoredraft | cut copy paste pastetext | forecolor backcolor bold italic underline strikethrough link anchor | alignleft aligncenter alignright
alignjustify outdent indent | styleselect formatselect fontselect fontsizeselect | bullist numlist | blockquote subscript superscript removeformat | \
table image media charmap emoticons hr pagebreak insertdatetime print preview | fullscreen | bdmap indent2em lineheight formatpainter axupimgs importword',
],
'min_height' => 400,
'save_enablewhendirty' => true,
'convert_urls' => false,
]);
// 设置编辑器图片默认上传到七牛云
$editor->disk('qiniu');
});
对于想添加Dcat Admin项目中tingmce 没有的插件的,可以前往官方下载覆盖 public/vendor/dcat-admin/dcat/plugins/tinymce
目录即可。
如我们可以将自己自定义的tinymce项目创建文件夹放到public目录下,每次dcat admin 发布前端资源时运行脚本,覆盖dcat admin 的tinymce 目录:
app/Console/Commands/MigrateTinymce.php
<?php namespace App\Console\Commands;
use Illuminate\Console\Command;
class MigrateTinymce extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'MigrateTinymce';
/**
* The console command description.
*
* @var string
*/
protected $description = 'dcat admin 安装时迁移覆盖 tinymce 项目文件';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return void
*/
public function handle()
{
$vendorTinyMce = dirname(__FILE__) . '/../../../public/vendor/dcat-admin/dcat/plugins/tinymce';
if (is_dir($vendorTinyMce)) {
self::rmdir_recursive($vendorTinyMce);
}
self::copydir(dirname(__FILE__) . '/../../../public/tinymce', $vendorTinyMce);
}
/**
* 递归删除非空目录
* DateTime: 2021/5/7 上午10:49
* @param $dir
*/
public static function rmdir_recursive($dir)
{
foreach (scandir($dir) as $file) {
if ('.' === $file || '..' === $file) continue;
if (is_dir("$dir/$file")) {
self::rmdir_recursive("$dir/$file");
} else {
unlink("$dir/$file");
}
}
rmdir($dir);
}
/**
* 复制目录
* DateTime: 2021/5/7 上午10:50
* @param $dirsrc string 要复制的目录
* @param $dirto string 要覆盖的目录
*/
public static function copydir($dirsrc, $dirto)
{
//如果原来的文件存在, 是不是一个目录
if (file_exists($dirto)) {
if (!is_dir($dirto)) {
echo '目标不是一个目录, 不能copy进去';
exit;
}
} else {
mkdir($dirto);
}
$dir = opendir($dirsrc);
while ($filename = readdir($dir)) {
if ($filename != "." && $filename != "..") {
$srcfile = $dirsrc . "/" . $filename; //原文件
$tofile = $dirto . "/" . $filename; //目标文件
if (is_dir($srcfile)) {
self::copydir($srcfile, $tofile); //递归处理所有子目录
} else {
copy($srcfile, $tofile);
}
}
}
}
}
执行命令 php artisan MigrateTinymce
即可覆盖