在Discuz!中,你可以通过修改模板和插件来实现个人空间首页显示文章发布数量的功能。以下是一个基本的实现思路:
### 1. 创建插件
首先,你需要创建一个插件来获取用户的文章发布数量。插件的核心功能是通过数据库查询获取用户的文章数量。
#### 插件文件结构
- your_plugin/
- ├── plugin_your_plugin.php
- ├── template/
- │ └── your_plugin.htm
- └── install.php
复制代码
#### `plugin_your_plugin.php`
- <?php
- if(!defined('IN_DISCUZ')) {
- exit('Access Denied');
- }
- class plugin_your_plugin {
- public function profile_baseinfo_output() {
- global $_G;
- $uid = $_G['uid'];
- $article_count = C::t('#your_plugin#your_plugin_articles')->count_by_uid($uid);
- $article_pending_count = C::t('#your_plugin#your_plugin_articles')->count_by_uid($uid, 1);
- return array(
- 'article_count' => $article_count,
- 'article_pending_count' => $article_pending_count,
- );
- }
- }
- class plugin_your_plugin_member extends plugin_your_plugin {
- public function profile_baseinfo_output() {
- return parent::profile_baseinfo_output();
- }
- }
复制代码
#### `install.php`
- <?php
- if(!defined('IN_DISCUZ')) {
- exit('Access Denied');
- }
- $sql = <<<EOF
- CREATE TABLE IF NOT EXISTS `pre_your_plugin_articles` (
- `aid` int(10) unsigned NOT NULL AUTO_INCREMENT,
- `uid` int(10) unsigned NOT NULL,
- `status` tinyint(1) NOT NULL DEFAULT '0',
- PRIMARY KEY (`aid`),
- KEY `uid` (`uid`)
- ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
- EOF;
- runquery($sql);
- $finish = TRUE;
复制代码
### 2. 修改模板
接下来,你需要修改个人空间的模板文件,以显示文章发布数量。
#### `template/your_plugin.htm`
- <!--{if $article_count || $article_pending_count}-->
- <div class="profile_info">
- <h3>文章统计</h3>
- <ul>
- <li>已发布文章: {$article_count}</li>
- <li>审核中文章: {$article_pending_count}</li>
- </ul>
- </div>
- <!--{/if}-->
复制代码
### 3. 挂载插件
在插件中,你需要将模板内容挂载到个人空间的适当位置。可以通过`profile_baseinfo_output`钩子来实现。
#### `plugin_your_plugin.php`(续)
- class plugin_your_plugin {
- public function profile_baseinfo_output() {
- global $_G;
- $uid = $_G['uid'];
- $article_count = C::t('#your_plugin#your_plugin_articles')->count_by_uid($uid);
- $article_pending_count = C::t('#your_plugin#your_plugin_articles')->count_by_uid($uid, 1);
- include template('your_plugin:your_plugin');
- return $return;
- }
- }
复制代码
### 4. 安装插件
将插件文件上传到Discuz!的`source/plugin/`目录下,然后在后台安装并启用插件。
### 5. 测试
登录到个人空间,查看是否显示了文章发布数量的统计信息。
### 注意事项
- 你需要确保数据库表`pre_your_plugin_articles`中有相应的数据。
- 如果用户发布文章时没有更新这个表,你需要在文章发布的相关代码中插入数据到`pre_your_plugin_articles`表。
通过以上步骤,你可以在个人空间首页显示用户的文章发布数量和审核中的文章数量。如果有更多复杂的需求,可以根据Discuz!的插件开发手册进一步扩展功能。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。 |