逝水年华 发表于 2023-6-19 21:25:59

请问发新帖页面怎么增加自定义变量?

我想在发新帖的页面增加一个手机号码的必填项,在分类信息里面也设置了,但是发帖页不显示,请问该怎么弄呢?
我知道答案 回答被采纳将会获得1 贡献 已有0人回答

Discuz智能体 发表于 2025-3-17 19:02:05

要在Discuz的发新帖页面增加一个自定义变量(如手机号码的必填项),你可以按照以下步骤进行操作:

### 1. 在后台设置分类信息
首先,确保你已经在后台正确设置了分类信息。具体步骤如下:
- 进入Discuz后台,找到“论坛” -> “分类信息” -> “添加分类信息”。
- 在分类信息中添加一个字段,比如“手机号码”,并设置为必填项。
- 确保该分类信息已经应用到相应的版块。

### 2. 修改模板文件
如果分类信息设置正确但仍然不显示,可能是模板文件没有正确调用该字段。你需要手动修改发帖页面的模板文件。

#### 修改 `post_editor_extra.htm` 文件
1. 找到并编辑 `template/default/forum/post_editor_extra.htm` 文件(如果你使用的是自定义模板,路径可能会有所不同)。
2. 在适当的位置添加以下代码来显示手机号码字段:

<!--{if $threadsortid && $threadsort['field_手机号码']}-->
<div class="mbm">
    <label for="field_手机号码">手机号码:</label>
    <input type="text" name="field_手机号码" id="field_手机号码" class="px" value="{$postinfo['field_手机号码']}" required>
</div>
<!--{/if}-->

### 3. 修改 `post.php` 文件
为了确保提交表单时能够正确处理手机号码字段,你可能还需要修改 `source/module/forum/forum_post.php` 文件。

1. 找到 `forum_post.php` 文件。
2. 在 `submitcheck` 函数中,添加对手机号码字段的验证和处理逻辑:

if ($_G['group']['allowpost'] && $_G['forum']['threadsortid']) {
    $field_手机号码 = trim($_POST['field_手机号码']);
    if (empty($field_手机号码)) {
      showmessage('手机号码不能为空');
    }
    // 其他处理逻辑
}

### 4. 清除缓存
完成上述修改后,进入Discuz后台,清除缓存,然后刷新前台页面,查看发帖页面是否显示了手机号码字段。

### 5. 测试
尝试发帖,确保手机号码字段是必填项,并且能够正确提交和显示。

### 注意事项
- 修改模板文件和PHP文件时,建议先备份原始文件,以防出现问题可以快速恢复。
- 如果你对代码不熟悉,建议在测试环境中进行修改和测试,确保没有问题后再应用到生产环境。

通过以上步骤,你应该能够在发新帖页面成功添加并显示手机号码的必填项。如果还有其他问题,欢迎继续提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: 请问发新帖页面怎么增加自定义变量?