nnagornyy / gtd.vueeditor
用于1c-bitrix的内容块编辑器
Requires
- php: >=7.4.0
- ext-json: *
- composer/installers: ~1
- dev-master
- 1.0.0
- 0.38.1
- 0.38.0
- 0.37.1
- 0.37.0
- 0.36.9
- 0.36.5
- 0.36.1
- 0.36.0
- 0.33.1
- 0.33.0
- 0.32.5
- 0.32.3
- 0.32.1
- 0.32.0
- 0.31.1
- 0.31.0
- 0.30.6
- 0.30.5
- 0.30.3
- 0.30.2
- 0.30.1
- 0.30.0
- 0.12.1
- 0.12.0
- 0.11.3
- 0.11.0
- 0.10.5
- 0.10.4
- 0.10.3
- 0.10.2
- 0.10.1
- 0.10.0
- 0.9.0
- 0.8.0
- 0.7.0
- 0.6.0
- 0.5.1
- 0.5.0
- 0.4.0
- 0.3.10
- 0.3.9
- 0.3.2
- 0.3.1
- 0.3.0
- 0.2.0
- dev-dependabot/npm_and_yarn/app/json5-1.0.2
- dev-dependabot/npm_and_yarn/app/express-4.18.2
- dev-dependabot/npm_and_yarn/app/qs-6.5.3
- dev-dependabot/npm_and_yarn/app/decode-uri-component-0.2.2
- dev-dependabot/npm_and_yarn/app/loader-utils-1.4.2
- dev-dependabot/npm_and_yarn/app/minimatch-3.0.8
- dev-dependabot/npm_and_yarn/app/terser-5.14.2
- dev-dependabot/npm_and_yarn/app/node-sass-7.0.0
- dev-dependabot/npm_and_yarn/app/axios-0.21.2
- dev-dependabot/npm_and_yarn/app/buefy-0.7.2
- dev-dependabot/npm_and_yarn/app/path-parse-1.0.7
- dev-dependabot/npm_and_yarn/app/dns-packet-1.3.4
- dev-dependabot/npm_and_yarn/app/hosted-git-info-2.8.9
- dev-table-block
- dev-texteditor-block
- dev-gallery-block
- dev-dev-master
This package is auto-updated.
Last update: 2024-09-25 08:23:53 UTC
README
待办事项
目标 [模块]
- 检查从管理区域安装的节点及其版本
- 从管理区域启动构建并解析数据(是否找到了所有块)
- 从其他地方获取块,例如从 /local/vueeditor/,以分离模块和仅用于项目的块
- 信息块的属性
- 用户字段的属性
- 带编辑器的文本块 - 选择编辑器
块
截至2021年12月22日
- vtext - 带quilljs可视化编辑器的文本块
- vheader - 可选择大小的标题
- vquote - 用于引用的文本字段
- documents - 带名称和描述的文档上传
- gallery - 带名称和描述的图片画廊
- youtubeVideo - 来自youtube的视频(通过链接)
- vtable - 表格
- vimage - 图片上传
注册自己的块
每个块都必须有一个配置文件,名称按 blockName.config.json 的原则
配置示例
{ "name": "Строка", "handler" : "\Gtd\Editor\Handler\String" "conf" : { "foo": "bar", "other": "some", "array": [ "one", "two", "three" ] } }
name - 用于显示块名称的文本表示
handler - 用于处理在输出到公共部分之前的数据的类
conf - 传递到您的块中
链接
应用
这是一个1C-Битри克斯的模块。其中包含
- 使用typescript编写并通过webpack构建的vue编辑器组件(app文件夹)
- 用于将组件连接为信息块类型属性和uf字段的代码
- 某些块的代码,例如保存文件(service文件夹)
安装
composer require nnagornyy/gtd.vueeditor
之后,通过比特里克斯管理区域的“已安装解决方案”安装模块。
安装后应该出现文件夹 /local/vueeditor
在init.php中连接模块 \Bitrix\Main\Loader::includeModule('gtd.vueeditor');
(它将连接编辑器的js和样式)。
添加块
在构建时,将从 /local/vueeditor
复制块到 模块/app/src/ext_block
在开发块时,可以在ext_block本身中进行修改,但之后必须复制到 /local/vueeditor 并提交。
块结构
文件夹 = 块名称的代码,
配置 = .config.json的代码,
组件 = .vue的代码
在组件中,data中必须有一个字段 editorData
,从中获取的信息将作为块的值保存。
作为示例,可以复制vheader并使用自己的名称进行修改。
某些准备好的块中的v前缀只是为了确保它们不会与现有标签冲突。
组件示例
<template> <el-input v-model="editorData" placeholder="Введите заголовок"></el-input> </template> <script> export default { name: "simpleHeader", data(){ return{ editorData: '', } } } </script> <style scoped> </style>
如果手动启动编辑器(例如,作为视图组件使用时),将新块的名称添加到构造函数的allowBlock参数中。
构建
模块内部
cd local/modules/gtd.vueeditor/app
yarn build-prod
或者,可以在外部添加构建命令(例如,对于 /local/package.json
)
"scripts": { "build:editor": "cd modules/gtd.vueeditor/app; yarn; yarn build-prod", "dev:editor": "cd modules/gtd.vueeditor/app; yarn; yarn build-dev" },
构建工件保存到 /local/vueeditor_assets/
如果您提交工件,则需要在重新构建带有新块后手动将文件夹添加到git中。
如果您即时构建,请将其添加到gitignore中。
作为vue组件使用
块编辑器的构造函数作为全局变量存在 document.vueeditor(value, inputName, allowBlock, appId)
。
可以在自己的项目中添加组件包装器,该包装器将初始化编辑器对象。
示例
<template> <div id="editor"></div> </template> <script> export default { name: "editor", props:{ value:{ type: Array, default: function(){ return []; } }, allowBlocks:{ type: Array, default: function(){ return []; } } }, data(){ return {} }, mounted() { const editor = new document.vueeditor(JSON.parse(JSON.stringify(this.value)) , 'someName', this.allowBlocks, 'editor'); editor .onValueChange((value) => { this.$emit('input', JSON.parse(JSON.stringify(value))); }) .initEditor(); } } </script>
在用于块编辑器的组件中添加
<editor v-model="event.contentRaw" :allow-blocks="editorBlocks" ></editor> ... import Editor from 'path2component/editor.vue'; ... components: { Editor }, ... editorBlocks: [ 'vtext', 'documents', 'vquote', 'someNewBlock' ],
作为信息块属性使用
// todo
作为UF字段使用
// todo
添加数据获取处理器
从数据库获取数据时,可以使用块处理器在输出之前处理数据。
重要!块编辑器应直接使用未处理的数据,处理是为了在公开场合显示。
- 使用解析器来获取块的已处理数据
public function getContent(): array { \Bitrix\Main\Loader::includeModule('gtd.vueeditor'); $arr = $this->getContentArrayFromDB(); $editor = new \Gtd\VueEditor\Block\BlockParser($arr, $_SERVER['DOCUMENT_ROOT'].'/local/vueeditor/'); $res = $editor->processingBlock(); return $res; }
第一个参数 - 从块编辑器来的数据库中反序列化的数组。
第二个参数(可选)- 查找自定义块的配置位置(默认查找在模块/app/src/ext_block)。
需要配置路径,如果您提交了工件但未在战斗中启动构建。那么,来自/local/vueeditor 的组件将不会放入模块/app/src/ext_block,并且脚本将无法在默认文件夹中找到配置。
-
添加一个实现接口
\Gtd\VueEditor\Block\Handler
的类 -
在块配置中添加类的路径。
例如,在 myblock.conj.json 中:"handler": "\\My\\Module\\Blocks\\MyBlock"
-
实现方法 setBlock(\Gtd\VueEditor\Block\Block $block) 和 getData()。可以从默认处理器
\Gtd\VueEditor\Block\DefaultHandler
在gtd.vueeditor/lib/block/defaulthandler.php
中复制这些方法。
setBlock 方法接收原始块,在这里可以处理数据或者简单地将它们写入类的变量中,以便在 getData 中使用。
getData 方法应该返回将进入块的字段 content
的数据,并在输出时使用。
预设
// todo