·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

能不能在个人空间加入文章相关的信息?

264 2

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
比如在个人空间首页的统计信息里加入文章发布数量。用户在发布文章后可以看到自己发布了多少文章,多少在审核中。
我要说一句 收起回复

评论2

AI智能体Lv.7 发表于 2025-3-19 18:39:15 | 查看全部
在Discuz!中,你可以通过修改模板和插件来实现个人空间首页显示文章发布数量的功能。以下是一个基本的实现思路:

### 1. 创建插件
首先,你需要创建一个插件来获取用户的文章发布数量。插件的核心功能是通过数据库查询获取用户的文章数量。

#### 插件文件结构
  1. your_plugin/
  2. ├── plugin_your_plugin.php
  3. ├── template/
  4. │   └── your_plugin.htm
  5. └── install.php
复制代码


#### `plugin_your_plugin.php`
  1. <?php
  2. if(!defined('IN_DISCUZ')) {
  3.     exit('Access Denied');
  4. }

  5. class plugin_your_plugin {
  6.     public function profile_baseinfo_output() {
  7.         global $_G;
  8.         $uid = $_G['uid'];
  9.         $article_count = C::t('#your_plugin#your_plugin_articles')->count_by_uid($uid);
  10.         $article_pending_count = C::t('#your_plugin#your_plugin_articles')->count_by_uid($uid, 1);

  11.         return array(
  12.             'article_count' => $article_count,
  13.             'article_pending_count' => $article_pending_count,
  14.         );
  15.     }
  16. }

  17. class plugin_your_plugin_member extends plugin_your_plugin {
  18.     public function profile_baseinfo_output() {
  19.         return parent::profile_baseinfo_output();
  20.     }
  21. }
复制代码


#### `install.php`
  1. <?php
  2. if(!defined('IN_DISCUZ')) {
  3.     exit('Access Denied');
  4. }

  5. $sql = <<<EOF
  6. CREATE TABLE IF NOT EXISTS `pre_your_plugin_articles` (
  7.   `aid` int(10) unsigned NOT NULL AUTO_INCREMENT,
  8.   `uid` int(10) unsigned NOT NULL,
  9.   `status` tinyint(1) NOT NULL DEFAULT '0',
  10.   PRIMARY KEY (`aid`),
  11.   KEY `uid` (`uid`)
  12. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
  13. EOF;

  14. runquery($sql);

  15. $finish = TRUE;
复制代码


### 2. 修改模板
接下来,你需要修改个人空间的模板文件,以显示文章发布数量。

#### `template/your_plugin.htm`
  1. <!--{if $article_count || $article_pending_count}-->
  2. <div class="profile_info">
  3.     <h3>文章统计</h3>
  4.     <ul>
  5.         <li>已发布文章: {$article_count}</li>
  6.         <li>审核中文章: {$article_pending_count}</li>
  7.     </ul>
  8. </div>
  9. <!--{/if}-->
复制代码


### 3. 挂载插件
在插件中,你需要将模板内容挂载到个人空间的适当位置。可以通过`profile_baseinfo_output`钩子来实现。

#### `plugin_your_plugin.php`(续)
  1. class plugin_your_plugin {
  2.     public function profile_baseinfo_output() {
  3.         global $_G;
  4.         $uid = $_G['uid'];
  5.         $article_count = C::t('#your_plugin#your_plugin_articles')->count_by_uid($uid);
  6.         $article_pending_count = C::t('#your_plugin#your_plugin_articles')->count_by_uid($uid, 1);

  7.         include template('your_plugin:your_plugin');
  8.         return $return;
  9.     }
  10. }
复制代码


### 4. 安装插件
将插件文件上传到Discuz!的`source/plugin/`目录下,然后在后台安装并启用插件。

### 5. 测试
登录到个人空间,查看是否显示了文章发布数量的统计信息。

### 注意事项
- 你需要确保数据库表`pre_your_plugin_articles`中有相应的数据。
- 如果用户发布文章时没有更新这个表,你需要在文章发布的相关代码中插入数据到`pre_your_plugin_articles`表。

通过以上步骤,你可以在个人空间首页显示用户的文章发布数量和审核中的文章数量。如果有更多复杂的需求,可以根据Discuz!的插件开发手册进一步扩展功能。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-22 07:38:16 | 查看全部
当然可以!在Discuz的个人空间中显示用户的文章发布数量以及审核中的文章数量是一个常见的需求。你可以通过修改模板和添加自定义代码来实现这个功能。

### 实现步骤:

1. **修改模板文件**:
   - 打开个人空间的模板文件,通常位于 `template/default/space/space_profile.htm` 或 `template/你的模板目录/space/space_profile.htm`。
   - 找到你想要显示文章统计信息的位置,比如在“统计信息”部分。

2. **获取文章数量**:
   - 你需要通过SQL查询获取用户的文章数量和审核中的文章数量。可以在模板中嵌入PHP代码来实现这一点。

3. **显示文章统计信息**:
   - 在模板文件中添加以下代码来显示文章数量和审核中的文章数量:

  1. <?php
  2. // 获取当前用户的UID
  3. $uid = $_G['uid'];

  4. // 查询已发布的文章数量
  5. $published_count = DB::result_first("SELECT COUNT(*) FROM ".DB::table('portal_article')." WHERE uid='$uid' AND status='0'");

  6. // 查询审核中的文章数量
  7. $pending_count = DB::result_first("SELECT COUNT(*) FROM ".DB::table('portal_article')." WHERE uid='$uid' AND status='1'");

  8. // 显示文章统计信息
  9. echo "<li>文章发布数量: $published_count</li>";
  10. echo "<li>审核中的文章数量: $pending_count</li>";
  11. ?>
复制代码


4. **保存并更新缓存**:
   - 保存模板文件后,进入Discuz后台,更新模板缓存,确保修改生效。

### 注意事项:
- 如果你使用的是自定义模板,请确保在正确的模板文件中进行修改。
- 如果你对Discuz的模板和PHP代码不熟悉,建议在修改前备份相关文件,以免出现错误。

### 进一步优化:
- 你可以将这段代码封装成一个插件,以便更方便地管理和扩展功能。
- 如果你希望在前端显示更美观的样式,可以通过CSS对统计信息进行美化。

通过以上步骤,你就可以在个人空间的统计信息中显示用户的文章发布数量和审核中的文章数量了。如果你有更多问题或需要进一步的帮助,请随时提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

图文热点
关闭

站长推荐上一条 /1 下一条

最新热评 加载中...
AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:216.73.216.212,GMT+8, 2025-6-15 00:01 , Processed in 1.312775 second(s), 82 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表