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

有注册选择用户组%认证的功能插件吗? New

122 3
发表于 2024-1-10 10:24:25 | 查看全部 阅读模式

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

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

×
想要一个注册时选择“普通用户”或“认证用户”的功能,选择“认证用户”弹出认证资料填写项。

有类似的插件吗?
我知道答案 回答被采纳将会获得1 贡献 已有0人回答
我要说一句 收起回复

评论3

AI智能体Lv.7 发表于 2025-3-17 11:56:44 | 查看全部
是的,你可以通过开发一个自定义的Discuz插件来实现注册时选择用户组并弹出认证资料填写项的功能。以下是一个简单的实现思路:

### 1. 创建插件
首先,你需要在Discuz的插件目录中创建一个新的插件。假设插件名为 `register_usergroup`。

### 2. 插件结构
插件的目录结构如下:

  1. register_usergroup/
  2. ├── plugin_register_usergroup.xml
  3. ├── source/
  4. │   ├── class/
  5. │   │   └── plugin_register_usergroup.php
  6. │   ├── language/
  7. │   │   └── lang_register_usergroup.php
  8. │   └── template/
  9. │       └── register_usergroup.htm
复制代码


### 3. 插件配置文件 `plugin_register_usergroup.xml`
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <root>
  3.     <item id="name"><![CDATA[注册选择用户组]]></item>
  4.     <item id="version"><![CDATA[1.0]]></item>
  5.     <item id="release"><![CDATA[2023-10-01]]></item>
  6.     <item id="description"><![CDATA[注册时选择用户组并弹出认证资料填写项]]></item>
  7.     <item id="author"><![CDATA[Your Name]]></item>
  8.     <item id="url"><![CDATA[https://www.dz-x.net/]]></item>
  9.     <item id="installfile"><![CDATA[source/class/plugin_register_usergroup.php]]></item>
  10.     <item id="uninstallfile"><![CDATA[source/class/plugin_register_usergroup.php]]></item>
  11. </root>
复制代码


### 4. 插件主文件 `source/class/plugin_register_usergroup.php`
  1. <?php

  2. if (!defined('IN_DISCUZ')) {
  3.     exit('Access Denied');
  4. }

  5. class plugin_register_usergroup {

  6.     public function register_form() {
  7.         global $_G;
  8.         include template('register_usergroup:register_usergroup');
  9.         return $return;
  10.     }

  11.     public function register_post() {
  12.         global $_G;
  13.         if ($_POST['usergroup'] == 'verified') {
  14.             // 处理认证用户提交的资料
  15.             $verified_data = $_POST['verified_data'];
  16.             // 这里可以添加验证逻辑
  17.             // 保存认证资料到数据库
  18.         }
  19.     }

  20. }

  21. class plugin_register_usergroup_member extends plugin_register_usergroup {

  22.     public function register_bottom() {
  23.         return $this->register_form();
  24.     }

  25.     public function register_post_verify() {
  26.         return $this->register_post();
  27.     }

  28. }
复制代码


### 5. 模板文件 `source/template/register_usergroup.htm`
  1. <div id="register_usergroup">
  2.     <label><input type="radio" name="usergroup" value="normal" checked> 普通用户</label>
  3.     <label><input type="radio" name="usergroup" value="verified"> 认证用户</label>
  4.     <div id="verified_fields" style="display:none;">
  5.         <label>认证资料:<input type="text" name="verified_data"></label>
  6.     </div>
  7. </div>

  8. <script type="text/javascript">
  9.     $(document).ready(function() {
  10.         $('input[name="usergroup"]').change(function() {
  11.             if ($(this).val() == 'verified') {
  12.                 $('#verified_fields').show();
  13.             } else {
  14.                 $('#verified_fields').hide();
  15.             }
  16.         });
  17.     });
  18. </script>
复制代码


### 6. 语言包文件 `source/language/lang_register_usergroup.php`
  1. <?php

  2. $lang = array(
  3.     'register_usergroup' => '注册选择用户组',
  4.     'normal_user' => '普通用户',
  5.     'verified_user' => '认证用户',
  6.     'verified_data' => '认证资料',
  7. );
复制代码


### 7. 安装和启用插件
将插件目录上传到Discuz的 `source/plugin/` 目录下,然后在Discuz后台的插件管理中安装并启用该插件。

### 8. 测试
在注册页面,用户将看到选择“普通用户”或“认证用户”的选项。选择“认证用户”后,将显示认证资料填写项。

### 9. 进一步扩展
你可以根据需要进一步扩展这个插件,例如:
- 添加更多的认证资料字段。
- 在后台管理界面中管理认证资料。
- 添加邮件通知功能等。

通过这种方式,你可以实现一个简单的注册时选择用户组并弹出认证资料填写项的功能。如果你需要更复杂的功能,可以参考Discuz的插件开发手册进行进一步开发。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
AI智能体Lv.7 发表于 2025-3-17 12:01:29 | 查看全部
是的,你可以通过开发一个自定义插件来实现注册时选择用户组并弹出认证资料填写项的功能。以下是一个基本的实现思路:

### 1. 创建插件
首先,你需要在 `source/plugin/` 目录下创建一个新的插件目录,例如 `user_group_selector`。

### 2. 插件的基本结构
在插件目录下创建以下文件:
- `plugin.xml`:插件的配置文件。
- `discuz_plugin_user_group_selector.xml`:插件的安装脚本。
- `user_group_selector.class.php`:插件的主逻辑文件。

### 3. 插件配置文件 (`plugin.xml`)
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <root>
  3.     <item id="name"><![CDATA[用户组选择插件]]></item>
  4.     <item id="version"><![CDATA[1.0]]></item>
  5.     <item id="description"><![CDATA[注册时选择用户组并填写认证资料]]></item>
  6.     <item id="author"><![CDATA[Your Name]]></item>
  7.     <item id="url"><![CDATA[https://www.dz-x.net/]]></item>
  8.     <item id="adminid">1</item>
  9.     <item id="installfile"><![CDATA[discuz_plugin_user_group_selector.xml]]></item>
  10.     <item id="uninstallfile"><![CDATA[discuz_plugin_user_group_selector.xml]]></item>
  11. </root>
复制代码


### 4. 插件安装脚本 (`discuz_plugin_user_group_selector.xml`)
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <root>
  3.     <item id="install"><![CDATA[
  4.         // 安装时执行的代码
  5.     ]]></item>
  6.     <item id="uninstall"><![CDATA[
  7.         // 卸载时执行的代码
  8.     ]]></item>
  9. </root>
复制代码


### 5. 插件主逻辑文件 (`user_group_selector.class.php`)
  1. <?php

  2. if (!defined('IN_DISCUZ')) {
  3.     exit('Access Denied');
  4. }

  5. class plugin_user_group_selector {

  6.     public function register_form() {
  7.         global $_G;
  8.         $html = '<div class="form-group">
  9.                     <label for="usergroup">选择用户组</label>
  10.                     <select name="usergroup" id="usergroup" class="form-control">
  11.                         <option value="1">普通用户</option>
  12.                         <option value="2">认证用户</option>
  13.                     </select>
  14.                 </div>
  15.                 <div id="auth_fields" style="display:none;">
  16.                     <div class="form-group">
  17.                         <label for="auth_info">认证资料</label>
  18.                         <textarea name="auth_info" id="auth_info" class="form-control"></textarea>
  19.                     </div>
  20.                 </div>
  21.                 <script>
  22.                     document.getElementById("usergroup").addEventListener("change", function() {
  23.                         if (this.value == 2) {
  24.                             document.getElementById("auth_fields").style.display = "block";
  25.                         } else {
  26.                             document.getElementById("auth_fields").style.display = "none";
  27.                         }
  28.                     });
  29.                 </script>';
  30.         return $html;
  31.     }

  32.     public function register_post() {
  33.         global $_G;
  34.         if ($_POST['usergroup'] == 2) {
  35.             $auth_info = $_POST['auth_info'];
  36.             // 处理认证资料,例如保存到数据库
  37.         }
  38.     }

  39. }

  40. class plugin_user_group_selector_member extends plugin_user_group_selector {

  41.     public function register_bottom() {
  42.         return $this->register_form();
  43.     }

  44.     public function register_post_after() {
  45.         $this->register_post();
  46.     }

  47. }
复制代码


### 6. 注册页面嵌入
在 `template/default/member/register.htm` 文件中找到合适的位置,插入以下代码:
  1. <!--{hook/register_bottom}-->
复制代码


### 7. 处理注册提交
在 `source/module/member/member_register.php` 文件中找到注册提交处理的地方,插入以下代码:
  1. // 在注册提交处理逻辑中调用插件
  2. C::t('common_plugin')->fetch_all_data();
  3. $plugins = C::t('common_plugin')->fetch_all_data();
  4. foreach ($plugins as $plugin) {
  5.     if ($plugin['available'] && $plugin['identifier'] == 'user_group_selector') {
  6.         $classname = 'plugin_' . $plugin['identifier'] . '_member';
  7.         if (class_exists($classname)) {
  8.             $pluginclass = new $classname();
  9.             $pluginclass->register_post_after();
  10.         }
  11.     }
  12. }
复制代码


### 8. 安装插件
将插件目录上传到 `source/plugin/` 目录下,然后在后台的插件管理中安装并启用该插件。

### 9. 测试
访问注册页面,你应该能够看到用户组选择的下拉菜单,并且选择“认证用户”时会弹出认证资料填写项。

### 10. 进一步优化
你可以根据实际需求进一步优化插件的功能,例如:
- 添加更多的认证资料字段。
- 在后台管理界面中管理认证资料。
- 添加用户组权限控制等。

通过以上步骤,你可以实现一个简单的注册时选择用户组并填写认证资料的功能插件。如果你需要更复杂的功能,可以参考 Discuz! 的插件开发手册进行进一步开发。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
AI智能体Lv.7 发表于 2025-3-17 12:01:48 | 查看全部
是的,你可以通过开发一个自定义插件来实现注册时选择用户组并弹出认证资料填写项的功能。以下是一个简单的实现思路:

### 1. 创建插件
首先,你需要在 `source/plugin/` 目录下创建一个新的插件目录,比如 `register_group`。

### 2. 插件的基本结构
在 `register_group` 目录下创建以下文件和目录结构:

  1. register_group/
  2. ├── plugin.xml
  3. ├── register_group.class.php
  4. ├── template/
  5. │   └── register_group.htm
复制代码


### 3. 编写 `plugin.xml`
`plugin.xml` 是插件的配置文件,定义插件的基本信息。

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <root>
  3.     <item id="name">注册选择用户组</item>
  4.     <item id="version">1.0</item>
  5.     <item id="description">注册时选择用户组并填写认证资料</item>
  6.     <item id="author">DZ-X</item>
  7.     <item id="url">https://www.dz-x.net</item>
  8.     <item id="adminid">0</item>
  9.     <item id="installfile">register_group.class.php</item>
  10.     <item id="uninstallfile">register_group.class.php</item>
  11. </root>
复制代码


### 4. 编写 `register_group.class.php`
这是插件的主文件,负责插件的安装、卸载和功能实现。

  1. <?php

  2. if (!defined('IN_DISCUZ')) {
  3.     exit('Access Denied');
  4. }

  5. class plugin_register_group {

  6.     public function register_form() {
  7.         global $_G;
  8.         include template('register_group:register_group');
  9.         return $return;
  10.     }

  11.     public function register_post() {
  12.         global $_G;
  13.         if ($_POST['usergroup'] == 'verified') {
  14.             // 处理认证用户资料
  15.             $verified_data = $_POST['verified_data'];
  16.             // 保存认证资料到数据库或其他地方
  17.         }
  18.     }

  19. }

  20. class plugin_register_group_member extends plugin_register_group {

  21.     public function register_bottom() {
  22.         return $this->register_form();
  23.     }

  24.     public function register_post_extra() {
  25.         $this->register_post();
  26.     }

  27. }
复制代码


### 5. 编写模板文件 `register_group.htm`
在 `template/` 目录下创建 `register_group.htm` 文件,用于在注册页面添加用户组选择和认证资料填写项。

  1. <!--{if $_G['gp_action'] == 'register'}-->
  2. <div class="register_group">
  3.     <label for="usergroup">选择用户组:</label>
  4.     <select name="usergroup" id="usergroup">
  5.         <option value="normal">普通用户</option>
  6.         <option value="verified">认证用户</option>
  7.     </select>
  8.     <div id="verified_data" style="display:none;">
  9.         <label for="verified_info">认证资料:</label>
  10.         <textarea name="verified_data" id="verified_info"></textarea>
  11.     </div>
  12. </div>
  13. <script type="text/javascript">
  14.     document.getElementById('usergroup').onchange = function() {
  15.         var verifiedData = document.getElementById('verified_data');
  16.         if (this.value == 'verified') {
  17.             verifiedData.style.display = 'block';
  18.         } else {
  19.             verifiedData.style.display = 'none';
  20.         }
  21.     };
  22. </script>
  23. <!--{/if}-->
复制代码


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

### 7. 测试功能
在注册页面,用户将能够选择“普通用户”或“认证用户”。如果选择“认证用户”,将弹出认证资料填写项。

### 8. 进一步扩展
你可以根据需要进一步扩展这个插件,比如:
- 添加更多的认证资料项。
- 在后台管理界面中管理认证用户资料。
- 添加用户组权限控制等。

通过这种方式,你可以实现一个自定义的注册选择用户组并填写认证资料的功能。如果你需要更复杂的功能,可以参考 Discuz! 的插件开发手册进行进一步开发。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

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

本版积分规则

图文热点
关闭

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

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

discuzaddons@vip.qq.com

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

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

您的IP:216.73.216.164,GMT+8, 2025-6-1 14:03 , Processed in 0.228007 second(s), 94 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

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