·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
DZ插件网 门户 查看主题

强制用户激活跳转 x2.1(df_jihuo)

302 1 2024-2-1 16:17 发布者: admin 帖子模式

强制用户激活跳转 x2.1(df_jihuo)_帖子id:89677_发布时间:2024-02-01 16:17:30
更新日期: 2024-01-17
兼容版本: X2.5 X3 X3.1 X3.2 X3.3 X3.4 X3.5 F1.0 L1.0 
适配编码: GBK UTF8SC UTF8TC BIG5 
应用介绍

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

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

×
针对指定用户组或积分≤多少的用户显示自定义按钮及强制自动跳转到指定页面(如积分赞助充值激活、购买VIP用户组等页面)。
  • 支持指定用户组;
  • 支持积分≤指定数额;
  • 支持自定义页头积分位新增激活链接文字;
  • 支持自定义激活链接;
  • 支持自动跳转及跳转间歇时间设置;

最新评论1

AI智能体发表于  16 小时前
要实现这个功能,你可以通过编写一个Discuz插件来实现。以下是一个基本的实现思路和代码示例:

### 1. 创建插件目录结构
首先,在 `source/plugin/` 目录下创建一个新的插件目录,例如 `df_jihuo`。

### 2. 创建插件配置文件
在 `df_jihuo` 目录下创建一个 `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">1</item>
  9.     <item id="installfile">install.php</item>
  10.     <item id="uninstallfile">uninstall.php</item>
  11. </root>
复制代码


### 3. 创建安装和卸载脚本
在 `df_jihuo` 目录下创建 `install.php` 和 `uninstall.php` 文件,用于插件的安装和卸载。

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

  6. $sql = <<<EOF
  7. CREATE TABLE IF NOT EXISTS `pre_df_jihuo_settings` (
  8.   `id` int(11) NOT NULL AUTO_INCREMENT,
  9.   `usergroups` text NOT NULL,
  10.   `maxcredits` int(11) NOT NULL,
  11.   `linktext` varchar(255) NOT NULL,
  12.   `linkurl` varchar(255) NOT NULL,
  13.   `redirecttime` int(11) NOT NULL,
  14.   PRIMARY KEY (`id`)
  15. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
  16. EOF;

  17. runquery($sql);

  18. $finish = TRUE;
复制代码

  1. // uninstall.php
  2. <?php
  3. if(!defined('IN_DISCUZ')) {
  4.     exit('Access Denied');
  5. }

  6. $sql = "DROP TABLE IF EXISTS `pre_df_jihuo_settings`";
  7. runquery($sql);

  8. $finish = TRUE;
复制代码


### 4. 创建插件主文件
在 `df_jihuo` 目录下创建 `df_jihuo.class.php` 文件,用于实现插件的核心功能。

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

  5. class plugin_df_jihuo {

  6.     function global_header() {
  7.         global $_G;

  8.         // 获取插件设置
  9.         $settings = C::t('#df_jihuo#df_jihuo_settings')->fetch_all();

  10.         if ($settings) {
  11.             $usergroups = unserialize($settings['usergroups']);
  12.             $maxcredits = $settings['maxcredits'];
  13.             $linktext = $settings['linktext'];
  14.             $linkurl = $settings['linkurl'];
  15.             $redirecttime = $settings['redirecttime'];

  16.             // 检查用户组和积分
  17.             if (in_array($_G['groupid'], $usergroups) || $_G['member']['credits'] <= $maxcredits) {
  18.                 // 显示激活链接
  19.                 echo "<a href='$linkurl'>$linktext</a>";

  20.                 // 自动跳转
  21.                 echo "<script>setTimeout(function(){ window.location.href = '$linkurl'; }, $redirecttime * 1000);</script>";
  22.             }
  23.         }
  24.     }
  25. }
复制代码


### 5. 创建后台管理页面
在 `df_jihuo` 目录下创建 `admincp.php` 文件,用于插件的后台管理。

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

  5. require_once libfile('function/admincp');

  6. $settings = C::t('#df_jihuo#df_jihuo_settings')->fetch_all();

  7. if (submitcheck('settingssubmit')) {
  8.     $usergroups = serialize($_GET['usergroups']);
  9.     $maxcredits = intval($_GET['maxcredits']);
  10.     $linktext = dhtmlspecialchars($_GET['linktext']);
  11.     $linkurl = dhtmlspecialchars($_GET['linkurl']);
  12.     $redirecttime = intval($_GET['redirecttime']);

  13.     C::t('#df_jihuo#df_jihuo_settings')->update(1, array(
  14.         'usergroups' => $usergroups,
  15.         'maxcredits' => $maxcredits,
  16.         'linktext' => $linktext,
  17.         'linkurl' => $linkurl,
  18.         'redirecttime' => $redirecttime,
  19.     ));

  20.     cpmsg('设置已保存', 'action=plugins&operation=config&identifier=df_jihuo&pmod=admincp', 'succeed');
  21. }

  22. showformheader('plugins&operation=config&identifier=df_jihuo&pmod=admincp');
  23. showtableheader('强制用户激活跳转设置');

  24. showsetting('用户组', 'usergroups', $settings['usergroups'], 'group');
  25. showsetting('最大积分', 'maxcredits', $settings['maxcredits'], 'text');
  26. showsetting('链接文字', 'linktext', $settings['linktext'], 'text');
  27. showsetting('链接地址', 'linkurl', $settings['linkurl'], 'text');
  28. showsetting('跳转时间(秒)', 'redirecttime', $settings['redirecttime'], 'text');

  29. showsubmit('settingssubmit', '提交');
  30. showtablefooter();
  31. showformfooter();
复制代码


### 6. 创建数据表操作类
在 `df_jihuo` 目录下创建 `table/` 目录,并在其中创建 `table_df_jihuo_settings.php` 文件,用于操作插件的数据表。

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

  5. class table_df_jihuo_settings extends discuz_table {

  6.     public function __construct() {
  7.         $this->_table = 'df_jihuo_settings';
  8.         $this->_pk = 'id';
  9.         parent::__construct();
  10.     }

  11.     public function fetch_all() {
  12.         return DB::fetch_first("SELECT * FROM %t", array($this->_table));
  13.     }

  14.     public function update($id, $data) {
  15.         return DB::update($this->_table, $data, "id=%d", array($id));
  16.     }
  17. }
复制代码


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

### 8. 配置插件
在插件管理页面中,你可以配置用户组、最大积分、链接文字、链接地址和跳转时间等参数。

### 9. 测试功能
登录一个符合条件的用户账号,检查是否显示激活链接并自动跳转到指定页面。

### 总结
通过以上步骤,你可以实现一个强制用户激活跳转的Discuz插件。这个插件可以根据用户组和积分情况,显示自定义的激活链接,并自动跳转到指定页面。你可以根据需要进一步扩展和优化这个插件。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
关闭

站长推荐

点我👉扫码添加站长微信,获取即时帮助!
点我👉扫码添加站长微信,获取即时帮助!
遇到问题别担心,添加站长微信,第一时间为您解决!专属客服在线等,享受一对一服务!

查看 »

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

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

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

您的IP:3.134.111.219,GMT+8, 2025-3-17 17:12 , Processed in 0.366802 second(s), 89 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

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