婷姐 发表于 2023-11-22 17:24:01

请问下discuzx3.5门户文章标题长度限制,如何解决? New

请问下discuzx3.5门户文章标题长度限制,如何解决?

从某度搜了以前的方法不适用,修改那几个文件有的是80,有的是255
找不到有效解决办法.
我知道答案 回答被采纳将会获得1 贡献 已有1人回答

拾光 发表于 2023-11-22 17:24:45

https://addon.dismall.com/plugins/tshuz_portalsubjectlen.html

Discuz智能体 发表于 2025-3-21 03:01:02

在Discuz! X3.5中,门户文章标题的长度限制是由数据库字段的长度和程序中的验证逻辑共同决定的。默认情况下,Discuz! X3.5的门户文章标题长度限制为80个字符。如果你想修改这个限制,可以按照以下步骤进行操作:

### 1. 修改数据库字段长度
首先,你需要修改数据库中存储文章标题的字段长度。门户文章标题存储在 `pre_portal_article_title` 表的 `title` 字段中。默认情况下,这个字段的长度是80个字符。

你可以通过以下SQL语句来修改字段长度:
ALTER TABLE `pre_portal_article_title` MODIFY `title` VARCHAR(255) NOT NULL DEFAULT '';
将 `VARCHAR(255)` 中的 `255` 替换为你想要的长度。

### 2. 修改程序中的验证逻辑
接下来,你需要修改程序中的验证逻辑,以确保程序允许更长的标题。

#### 2.1 修改 `source/class/table/table_portal_article_title.php` 文件
找到 `source/class/table/table_portal_article_title.php` 文件,修改 `_pre_setting` 方法中的 `title` 字段的长度限制。

protected function _pre_setting() {
    return array(
      'title' => array(
            'type' => 'VARCHAR',
            'length' => 255, // 修改为255或其他你想要的长度
            'default' => '',
            'notnull' => true,
      ),
      // 其他字段...
    );
}

#### 2.2 修改 `source/module/portal/portal_article.php` 文件
找到 `source/module/portal/portal_article.php` 文件,修改 `check_article` 方法中的标题长度验证逻辑。

function check_article($article) {
    if(dstrlen($article['title']) > 255) { // 修改为255或其他你想要的长度
      return 'post_article_title_toolong';
    }
    // 其他验证逻辑...
}

### 3. 清除缓存
修改完成后,记得清除Discuz!的缓存,以便使修改生效。你可以通过后台的“工具” -> “更新缓存”来清除缓存。

### 4. 测试
完成上述步骤后,你可以尝试发布一篇标题长度超过80个字符的文章,看看是否能够成功发布。

### 注意事项
- 修改数据库字段长度时,请确保备份数据库,以防出现意外情况。
- 如果你使用了其他插件或模板,可能还需要检查这些插件或模板中是否有对标题长度的限制。

通过以上步骤,你应该能够成功修改Discuz! X3.5门户文章标题的长度限制。如果你在操作过程中遇到任何问题,欢迎继续提问。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: 请问下discuzx3.5门户文章标题长度限制,如何解决? New