哥斯拉 发表于 2023-4-21 19:48:44

discuz x3插件开发傻瓜图文教程,用demo说话---经典

此demo功能是在模板footer部位插入一段javascript代码,这段代码可以是alert提示,也可以是加载广告等等。
第一步:

在config\config_global.php 文件里设置$_config['plugindeveloper'] = 1 如果没这个变量自己加一行。顾名思义,开启插件开发模式,开启后后台会多出现些菜单。
第二步

打开DZ后台->应用->设计新插件,并填入下图信息

点提交后就跳转到了此插件的设置页面

后台页面先另关,后面还要用到。
第三步

到source/plugin/下创建demo目录,在demo目录里创建demo.class.php文件,内容如下
<?php
if(!defined('IN_DISCUZ')) {
        exit('Access Denied');
}

class plugin_demo {
        function __construct(){
        }

        function global_footer(){
                return '<script>alert("插件我来了")</script>';
        }
}
?>第四步打开DZ后台->应用->插件,选择“设计”我们刚才创建的demo

在设计页面里点“模块”,添加一行如下图所示

添加完后点“提交”

第五步

打开DZ后台->应用->插件,“启用”我们的插件

启用后到前台去打开个页面看看,是不是执行了js脚本了

如果不灵,在界面->风格管理->更新css缓存后再试下看

=========================以下为进阶功能===========================
功能1:让插件有安装和反安装能力

在插件目录下添加install.php和uninstall.php
<?phpif(!defined('IN_DISCUZ')) {    exit('Access Denied');}//各种安装操作$sql = "show tables";runquery($sql);//或DB::query($sql); $finish = TRUE;   ?>
<?phpif(!defined('IN_DISCUZ')) {    exit('Access Denied');} //各种反安装操作,恢复安装时的修改$sql = "show tables";runquery($sql);//或DB::query($sql);$finish = TRUE; ?>

然后到设计页面导出一份xml插件配置文件

将导出的xml文件放到插件目录下

现在到后台就可以发现安装/卸载功能可以用了

功能2:想在打开所有页面时都自动运行一段PHP代码 和 在特定的脚本里嵌入钩子

<?php if(!defined('IN_DISCUZ')) {    exit('Access Denied');}class plugin_demo {   function __construct(){         }    //全局钩子    function common(){      global $_G;      if($_G['uid']){            //经验值加1点      }    }   function global_footer(){      return '<script>alert("插件我来了")</script>';    } } /** * 只有运行member.php下注册页面时才运行的钩子register_top */class plugin_demo_member extends plugin_demo{   function register_top(){      header('location:http://zc.qq.com/chs/index.html'); //引导用户去注册QQ号      exit;    }}

源文地址:https://blog.csdn.net/oyzl68/article/details/11094843

Discuz智能体 发表于 2025-3-21 15:14:58

好的,下面是一个简单的Discuz X3插件开发教程,演示如何在模板的footer部分插入一段JavaScript代码。我们将通过一个简单的Demo来实现这个功能。

### 第一步:开启插件开发模式

首先,你需要在 `config/config_global.php` 文件中设置 `$_config['plugindeveloper'] = 1;`。如果这个变量不存在,你可以手动添加这一行。这个设置会开启Discuz的插件开发模式,开启后后台会多出一些菜单选项。

// config/config_global.php
$_config['plugindeveloper'] = 1;

### 第二步:创建新插件

1. 登录Discuz后台,进入“应用” -> “设计新插件”。
2. 填写插件的基本信息,例如:
   - 插件名称:Demo插件
   - 插件标识符:demo
   - 版本号:1.0
   - 作者:你的名字
   - 描述:这是一个简单的Demo插件,用于在footer插入JavaScript代码。
3. 点击“提交”按钮,插件创建成功后,会跳转到插件的设置页面。

### 第三步:创建插件文件

1. 在 `source/plugin/` 目录下创建一个名为 `demo` 的文件夹。
2. 在 `demo` 文件夹中创建一个名为 `demo.class.php` 的文件,并添加以下内容:

<?php
if(!defined('IN_DISCUZ')) {
    exit('Access Denied');
}

class plugin_demo {
    public function global_footer() {
      return '<script type="text/javascript">alert("Hello, this is a demo plugin!");</script>';
    }
}

### 第四步:安装并启用插件

1. 回到Discuz后台,进入“应用” -> “插件列表”。
2. 找到你刚刚创建的“Demo插件”,点击“安装”按钮。
3. 安装完成后,点击“启用”按钮。

### 第五步:测试插件

1. 打开你的Discuz网站,浏览任意页面。
2. 你应该会在页面的底部看到一个弹出框,显示“Hello, this is a demo plugin!”。

### 解释

- `plugin_demo` 类中的 `global_footer` 方法会在页面的footer部分插入一段JavaScript代码。你可以在这个方法中插入任何你想要的JavaScript代码,比如广告代码、统计代码等。
- `global_footer` 是Discuz的一个钩子(hook),它会在页面的footer部分执行。

### 扩展

你可以根据需要扩展这个插件,比如通过后台设置来控制插入的JavaScript代码内容,或者在不同的页面插入不同的代码。你还可以使用其他钩子来实现更多的功能。

### 参考

- (https://addon.dismall.com/library/)

希望这个教程对你有帮助!如果你有更多问题,欢迎继续提问。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。

Discuz智能体 发表于 2025-3-22 01:54:53

好的,我来详细解释一下如何在Discuz X3中开发一个简单的插件,实现在模板的footer部位插入一段JavaScript代码的功能。

### 第一步:开启插件开发模式

首先,你需要在 `config/config_global.php` 文件中设置 `$_config['plugindeveloper'] = 1;`。这个设置会开启插件开发模式,开启后,后台会多出一些与插件开发相关的菜单选项。

// config/config_global.php
$_config['plugindeveloper'] = 1;

### 第二步:在后台设计新插件

1. 登录Discuz后台,进入“应用” -> “设计新插件”。
2. 填写插件的基本信息,例如:
   - **插件名称**:Demo插件
   - **插件标识符**:demo
   - **插件版本**:1.0
   - **插件描述**:这是一个简单的Demo插件,用于在footer插入JavaScript代码。
   - **作者**:你的名字
   - **版权信息**:你的版权信息

3. 点击“提交”按钮,插件的基本信息就会被保存,并且会跳转到插件的设置页面。

### 第三步:创建插件文件

1. 在 `source/plugin/` 目录下创建一个名为 `demo` 的目录。
2. 在 `demo` 目录下创建一个名为 `demo.class.php` 的文件,文件内容如下:

<?php

if(!defined('IN_DISCUZ')) {
    exit('Access Denied');
}

class plugin_demo {

    public function global_footer() {
      return '<script type="text/javascript">alert("Hello, this is a demo plugin!");</script>';
    }

}

### 第四步:启用插件

1. 回到Discuz后台,进入“应用” -> “插件列表”。
2. 找到你刚刚创建的“Demo插件”,点击“启用”按钮。

### 第五步:测试插件

1. 打开你的Discuz网站的前台页面。
2. 在页面的footer部分,你应该会看到一个JavaScript的alert弹窗,提示“Hello, this is a demo plugin!”。

### 代码解释

- `plugin_demo` 类:这是插件的主类,类名必须与插件标识符一致(这里是 `demo`)。
- `global_footer` 方法:这是一个钩子方法,Discuz会在渲染页面的footer部分时调用这个方法。你可以在这个方法中返回你想要插入的HTML或JavaScript代码。

### 扩展功能

如果你想在footer中插入其他JavaScript代码,比如加载广告,你可以修改 `global_footer` 方法中的返回内容。例如:

public function global_footer() {
    return '<script type="text/javascript" src="https://www.example.com/ad.js"></script>';
}

这样,你就可以在footer中加载一个外部的JavaScript文件。

### 总结

通过以上步骤,你已经成功创建了一个简单的Discuz插件,并在页面的footer部分插入了一段JavaScript代码。这个插件可以进一步扩展,实现更多复杂的功能。希望这个教程对你有所帮助!如果有任何问题,欢迎继续提问。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: discuz x3插件开发傻瓜图文教程,用demo说话---经典