返回值
变量 | 类型 | 集合内容 | 说明
--- | --- | --- | ---
topicRelated_editTopic_collection | Map<String,Object> | 键参数：availableTag 值内容说明：话题编辑器允许使用标签(配合KindEditor编辑器使用) 值类型：JSON格式List<String> | 修改话题界面显示返回值
键参数：captchaKey 值内容说明：验证码编号 (根据'全站设置 - 基本设置 - 发表话题每分钟提交超过'参数计算是否含有值) 值类型：String
键参数：allowTopic 值内容说明：是否允许提交话题 值类型：boolean
键参数：userGradeList 值内容说明：用户等级集合 值类型：JSON格式List<UserGrade>
键参数：topic 值内容说明：话题 值类型：List<Topic>
键参数：fileSystem 值内容说明：文件系统 0.本地 10.SeaweedFS 20.MinIO 30.阿里云OSS 值类型：int
键参数：supportEditor 值内容说明：支持编辑器 10.仅富文本编辑器 20.仅Markdown编辑器 30.富文本编辑器优先 40.Markdown编辑器优先 值类型：int

提交表单 - 默认方式
请求路径 | user/control/topic/edit.htm
请求方式 | POST
请求参数 | 参数表
提交成功返回 | 默认跳转到jump模板页显示提交成功信息；跳转路径参数jumpUrl有值时按参数值路径跳转
提交失败返回 | 错误值 | 变量：error 类型：Map<String,String>
话题 | 变量：topic 类型：Topic

提交表单 - AJAX方式
请求路径 | user/control/topic/edit.htm
请求方式 | POST
自定义请求头 | 协议头：X-Requested-With 值：XMLHttpRequest
请求参数 | 参数表
提交返回 | JSON格式值 类型:Map<String,Object> | 键参数：success 值内容说明：成功返回true 失败返回false 值类型：String
键参数：error 值内容说明：错误值集合 值类型：Map<String,String>
键参数：captchaKey 值内容说明：新验证码编号(当success参数返回false时并且根据'全站设置 - 基本设置 - 发表话题每分钟提交超过'参数计算是否含有值) 值类型：String

提交表单 - 上传文件
请求路径 | user/control/topic/upload.htm
请求方式 | POST
参数 | file : 上传文件接收字段 dir : 文件上传类型 分别为image、file、media fileName : 文件名称 预签名时必须有值
提交返回 | JSON格式值 类型:Map<String,Object> | 键参数：error 值内容说明：成功返回0 失败返回1 值类型：Integer
键参数：url 值内容说明：上传图片路径 当error等于0时有值 值类型：String
键参数：message 值内容说明：上传返回信息 当error等于1时有值 值类型：String
键参数：title 值内容说明：旧文件名称 当参数dir等于file时有值 值类型：String

校验验证码
请求路径 | checkCaptcha.htm
请求方式 | GET
返回类型 | JSON
必填参数 | captchaKey : 验证码编号 captchaValue : 验证码值 同一编号验证码每分钟提交次数不能超过60次,超出时验证码图片返回空字符
提交返回 | 字符串格式值 类型:String | 值内容说明：成功返回true 失败返回false 值类型：String

错误值 error
变量 | 类型 | 说明
--- | --- | ---
token | String | 令牌错误
captchaValue | String | 验证码错误
topic | String | 话题错误
title | String | 标题错误
content | String | 话题内容错误

话题 Topic
变量 | 类型 | 说明
--- | --- | ---
tagId | Long | 标签Id
tagName | String | 标签名称
title | String | 标题
content | String | 话题内容
isMarkdown | Boolean | 是否使用Markdown
markdownContent | String | Markdown内容

用户等级 UserGrade
变量 | 类型 | 说明
--- | --- | ---
id | Integer | Id
name | String | 等级名称
needPoint | Long | 需要积分

提交话题参数
参数 | 类型 | 是否必填 | 说明
--- | --- | --- | ---
topicId | Long | 是 | 话题Id
title | String | 是 | 标题
content | String | 按需填写 | 话题内容
isMarkdown | Boolean | 按需填写 | 是否使用Markdown
markdownContent | String | 按需填写 | Markdown内容
token | String | 是 | 令牌
captchaKey | String | 按需填写 | 验证码编号
captchaValue | String | 按需填写 | 验证码值 同一编号验证码每分钟提交次数不能超过60次,超出时验证码图片返回空字符
jumpUrl | String | 否 | '提交表单 - 默认方式'提交成功后跳转路径,不填写默认跳转到表单提交页；参数必须经过encodeBase64URL编码后才能提交。例${encodeBase64URL('/index')}

## 示例

<@function> <#-- 返回Map<String,Object>类型 --> <#assign returnValue = topicRelated_editTopic_collection> <#assign topicValue = returnValue['topic']> <#-- 默认Form方式提交出错时会返回topic对象 --> <#if topic != null && topic??> <#assign topicValue = topic> </#if> <form id="editTopicForm" action="user/control/topic/edit?topicId=${url_topicId}" method="post"> <#-- 提交后跳转参数 参数必须经过encodeBase64URL编码后才能提交 不填写时默认跳转回当前页 --> <input type="hidden" id="jumpUrl" name="jumpUrl" value=""> <textarea class="textarea" onfocus="" id="topicContent" name="content" >${topic.content}</textarea> 内容错误提示：${(error['content'])!} 话题错误提示：${error['topic']} <#-- 获取令牌 --> <input type="hidden" id="token" name="token" value="${token!}"> <#if returnValue['captchaKey'] != ""> <#-- 验证码编号 --> <input type="hidden" name="captchaKey" value="${(returnValue['captchaKey'])!}"> <#-- 验证码值 --> <input name="captchaValue" type="text" value=""/> <#-- 验证码图片 --> <img src="captcha/${(returnValue['captchaKey'])!}.jpg" /> <#-- 验证码错误 --> ${(error['captchaValue'])!} </#if> <#-- 提交表单 - 默认方式 --> <INPUT type="submit" value="提交" /> </form> </@function>