Discuz!登陆、退出、个人信息修改提交弹出层实现 by cubeking

Discuz! 论坛插件 - Sky 许愿天空DZX2.5版本使用指南 Discuz!是一套开源的论坛软件系统,由康盛创想(北京)科技有限公司开发。它基于 PHP 和 MySQL 技术,广泛用于构建社区论坛、用户交流平台等。作为一款成熟的论坛系统,Discuz!拥有良好的扩展性、安全性和易于使用的特点。Sky许愿天空插件的开发初衷是为了丰富Discuz!论坛社区的互动方式,提升用户的参与度和论坛的活跃度。它通过提供一个平台,让用户能够表达自己的愿望,并得到其他用户的回应和互动,从而营造出一个温馨、互助的社区氛围。 阅读详情
站长们在运营的同时,可能会想要根据自己具体的需求来修改、制作一些特殊功能,但是苦于不懂技术,四处求助,看完下面的教程,希望大家能从中获取到一些基本技能,在小修小改时候能祝您一臂之力!

Discuz!系统常用函数及变量:

常用函数:

showmessage()函数
:该函数就是我们最常见的页面提示跳转,比如登陆、退出、个人信息修改提交等等。

效果演示:

1.jpg

函数原型:
  1. showmessage($message, $url_forward = '', $extra = '', $forwardtype = 0)
复制代码
函数解释:在我们Discuz!的php文件中,可以通过这个函数还指定跳转页面,自定义跳转时候的提示信息。
其中有四个参数,第一个是必填参数,后三个为可选参数,可选就是说使用时候可以不用填写,当然填写也不会有错;
第一个参数是跳转时候的提示信息,比如“您的修改已提交,正在为您跳转”;
第二个参数是要跳转的页面的url,就是指定他要跳转到哪个页面,可以是绝对URL,也可以使相对地址,比如:“index.php”就是跳转到首页。
第三个和第四个参数,可选的,对于我们站长来说,基本用不到,可以不用深究。通常使用两个参数即可。

范例:showmessage('您的修改已提交,正在为您返回首页', 'index.php');

sendpm()函数:该函数用于发送短消息(包括私人消息、系统消息、提醒消息等)。

函数原型:
  1. sendpm($toid, $subject, $message, $fromid = '');
复制代码
函数解释:同样在Discuz!的php文件中,我们可以使用该函数发送短消息。
其中有四个参数,前三个为必填参数,最后一个为可选参数;
第一个参数是接收短消息的用户UID;
第二个参数是短消息的标题;
第三个参数是短消息的正文内容;
第四个参数是发送短消息的用户UID;
需要注意:当第一个参数$toid为0时,消息类型为公共消息,$fromid为0时,消息类型为系统消息,$message这个消息内容的参数,不支持HTML,但是支持Discuz!代码。

sendmail函数:该函数用于发送电子邮件,前提是论坛系统的邮件必须配置成功,能正常发送邮件。

函数原型:
  1. sendmail($email_to, $email_subject, $email_message, $email_from = '')
复制代码
该函数同样有四个参数,其中前三个为必填参数,最后一个为可选参数;
第一个参数是接收电子邮件的用户邮箱(看准了,是电子邮箱);
第二个参数是电子邮件的标题;
第三个参数是电子邮件的正文内容;
第四个是发送邮件的邮箱;
注意,第四个参数发送邮件的电子邮箱,可选,默认留空则为系统发送的邮件;
这个发送电子邮件的函数不常用到,可以根据自己特殊需求来制作特殊功能时候使用,比如:N天未登录邮件唤醒;

$db对象的各个MYSQL功能函数:
这些MYSQL相关函数,对于初级站长来说比较难,因为涉及php的一些知识,如果不了解这些,请慎用;
下面主要说一下最常用的SQL语句执行函数:$db->query($sql);
$db->query($sql),通常只指定一个参数,那就是SQL语句,比如:
  1. $db->query("SELECT * FROM cdb_mytable");
复制代码
这样就执行了SELECT * FROM cdb_mytable这条SQL语句。
其他更对相关函数,有一定基础的站长,可以参考include/db_mysql.class.php这个文件。

模版中使用的常用JS函数:

showPrompt()函数:
函数效果
:就像积分变动提醒一样那种漂亮的提示横条,我的Infonitce插件也用到这个函数;

函数范例:
  1. <span onclick="showPrompt(null, null, '哈哈', 2000);">[点击我看看是什么效果]</span>
复制代码
函数解释:就我们需要的这种功能来说,只需要你关心里面最后两个参数,很明显,“哈哈”这个参数就是提示信息内容,“2000”就是提示信息停留的时间,单位是毫秒!
函数效果演示:

2.jpg

showDialog函数:用于弹出提示窗口

函数原型:
  1. showDialog(msg, mode, t, func, cover)
复制代码
第一个参数:弹出窗口里面提示信息的内容;
第二个参数:这个窗口的类型,可选值有:info、notice、alert、confirm等;具体区别参照下图:

3.jpg

4.jpg


第三个参数:是弹出窗口的标题;
第四个参数:是点击“确定”后执行的函数,非必须,根据自己需要使用函数;
第五个参数:是否带遮罩层(就是弹出窗口后,背景页面是否变成暗色不可用),0为不遮罩,1为遮罩;

函数范例:
  1. <a onclick="showDialog('你是坏蛋!', 'notice', '通知信息', null, 0)" href="javascript:;">点击我看看</a>
复制代码
更多JS常用函数,参考: http://bbs.7dps.com/jstour.php

Discuz!系统全局变量篇:

$discuz_userss:当前用户的用户名;
$discuz_uid:当前用户的UID;
$bbname:论坛名称;
$boardurl:论坛地址;
$adminid:论坛管理组的数字ID编号,如:1是管理员,2是超版,3是版主;
$version:论坛的版本号;
$groupid:用户组ID编号;

更多Discuz!系统全局变量参考: http://qun.qq.com/air/#12893286/bbs/view/cd/1/td/2

为Discuz!添加一个属于自己的缓存文件:

首先,我们要知道Discuz!封装的函数writetocache,用来写入缓存的,在include/cache.func.php文件中定义的。
函数原型:writetocache($script, $cachenames, $cachedata = '', $prefix = 'cache_')

那么,要写自己的缓存文件,要用这个函数,首先我们必须调用这个定义函数的文件,如下:
  1. require_once DISCUZ_ROOT.'./include/cache.func.php';
复制代码
然后就可以直接使用函数,例如:
writetocache($script, $cachenames, $cachedata = '', $prefix = 'cache_')

详细的writetocache解释及使用范例(请下载附件): writetocache.rar (871 Bytes, 下载次数: 330)

借助common.inc.php做任何事情:

Discuz!系统中,include/common.inc.php这个文件,可以理解为系统的一个通用文件,里面包含了全局的一些通用信息,可以不必理解它是怎么写的,什么原理,只要学会应用即可,毕竟我们是站长,如果是开发者,可以深究下。
在Discuz!的php文件中,文件开始先包含一下这个文件,如下:
  1. require_once './include/common.inc.php';
复制代码
然后往下我们就可以使用上面所举的全局函数和一些变量,直接使用即可。
包含这个文件后,我们可以做很多事情,比如自己写一个单页的程序:
  1. <?php
  2. require_once './include/common.inc.php';
  3. include template('intro');
  4. ?>
复制代码
这样的话,就是一个单页了,单页内容直接在模板文件intro.htm里写即可,关于模板里面的函数,下面教程会讲到。

关于单页的创作教程: http://bbs.7drc.com/thread-523-1-1.html

Discuz!系统中的模板函数:

大家肯定都注意到,Discuz!系统的可访问页面的php文件底部,一般都会有下面这么一句:
  1. include template(xxx);
复制代码
这个就是调用模板文件的一个方法(函数),里面的参数“xxx”就是模板文件的文件名,比如:intro.htm文件,那就是:
  1. include template(intro);
复制代码
注意,里面的参数只填写模版文件的文件名,不需要填写模版文件的扩展名(.htm)。

那么,模板文件放在哪里呢?可以放在自己当前风格模板目录下,也可以放在系统默认模板目录:templates/default。

在新内核插件中,你也会看到这样的写法:
  1. include template(’xxx’, 'xxxx’, 'xxxxx');
复制代码
第一个参数,是模板文件名;
第二个是插件的唯一标识符;
第三个是模板文件存放的目录;

范例如下:
  1. include template(’tguide’, 'drc_tguide’, './plugins/drc_tguide/templates');
复制代码
模板文件中,如何调用其他系统的模板文件呢?比如,我要做的页面,需要头部和尾部与论坛一致,那么看下面(intro.htm):
  1. {template header}
  2. 这里是自己模版文件内容区域
  3. {template footer}
复制代码

{template header}这种是在模板文件(.htm)中调用其他模版文件的方法,像上面一样,在开头和结尾分别调用系统的头部和尾部文件,即可实现自己的页面与论坛保持一致的感觉。

然后呢,在模板文件中,可以直接使用对应php文件中的变量,或者系统的全局变量;

综合上面几点教程内容,我自己写了个范例,大家可以下载参考: 范例文件.rar (1.69 KB, 下载次数: 423)

--------------------------------------------------------------------------

开启及使用HTML教程:
http://bbs.7drc.com/plugin.php?id=tutorial:tutorial&type=changy&page=4

论坛“分类信息”设置与使用教程:
http://bbs.7drc.com/plugin.php?id=tutorial:tutorial&type=changy&page=5

文件对比工具(Beyond Compare)及使用教程:
http://bbs.7drc.com/plugin.php?id=tutorial:tutorial


构建***论坛社区:Discuz! NT for SQL Server v1.0安装与配置 本文还有配套的精品资源,点击获取 简介: 是一个基于.NET Framework的服务器端网页开发技术,本压缩包提供了基于 的论坛系统Discuz! NT for SQL Server v1.0的正式版,它是一个为企业和组织提供的网络社区解决方案。此版本针对.NET Framework 2.0进行优化,集成了丰富的论坛功能并支持自定义模板和插件。... 阅读详情

相关推荐

discuz万能表单

discuz万能表单,用于discuz论坛程序里的各种自定义表单定义

Discuz如何自主控制弹框的显示

本文实现功能: 控制弹框的显示与否 功能使用场景 在之前的一篇文章写道,discuz实现自动注册登录。但是我们又不想让那个提示信息出来。 在网上大概的搜索了一下,有的说后台可以设置,但是咔咔到后边瞅了一眼,它那个设置只是针对于固定的一些场景。 那么我们自己可以来写一个适合我们项目的显示方式 弹框实现剖析 使用discuz一段时间的都知道,前台的弹框其实就是后台showmessage这个方法决定的。 我们用代码追踪到这个方法在upload/source/function/function_.

咔咔博客 1251

江湖客栈插件 for discuz 7.0 v1.1 UTF8.rar

江湖客栈插件 for discuz 7.0 v1.1 UTF8

discuz 注册和登陆成功后跳转页面修改

方法1: 修改文件 source/class/class_member.php 查找: $locationmessage = 'register_succeed_location'; 复制代码 本帖隐藏的内容 只修改下方: $url_forward = dreferer(); 更改跳转页面 例如: $url_forward = '

younkerjqb的专栏 7416

discuz论坛插件DZ插件 多彩名片 1.0.0

discuz论坛插件DZ插件 多彩名片 1.0.0 .

Discuz_X1.5数据库详解.pdf

Discuz_X1.5数据库详解.pdf

Discuz修改登录后跳转页面

在hotmeego.com/template/default/member/login.htm 中修改

麦克船长的技术笔记 1万+

《AI应用架构师必学:企业AI能力地图构建的高级技巧》

企业AI能力地图,简单来说,是一种可视化工具,它展示了企业在AI领域所具备的各种能力及其相互关系。就如同城市地图展示城市的街道、建筑和设施一样,AI能力地图呈现了企业在数据处理、模型开发、算法应用等多个方面的能力布局。

AGI×大数据,开启智能时代的认知跃迁;解码AGI,赋能数据驱动的智能革命。 818

Discuz!开发之js弹出框函数showDialog介绍

showDialog定义地址:\static\js\common.js var showDialogST = null; function showDialog(msg, mode, t, func, cover, funccancel, leftmsg, confirmtxt, canceltxt, closetime, locationtime) { clearTimeout(showDi

土著人宁巴的Discuz!专栏 1万+

RT-Thread NANO V4.1.1 在Cortex-M0上移植踩坑记:解决内存分配宏导致的线程创建失败

本文详细记录了RT-Thread NANO V4.1.1在Cortex-M0平台移植过程中遇到的内存分配宏配置问题,导致线程创建失败的解决方案。通过分析内存管理算法宏定义,将RT_USING_SMALL_MEM替换为RT_USING_SMALL_MEM_AS_HEAP,成功解决了线程创建问题,为开发者提供了实用的移植经验。

weixin_29189373的博客 306

opencode完整使用指南:从安装配置到Agent式编程实战

AI编程工具正从辅助补全向智能体协作演进。编程智能体不仅理解项目全局,还能自主执行原子级重构、测试验证等工程任务,显著提升研发效能。以opencode为代表的开源终端AI编程工具,凭本地优先和灵活模型接入成为技术团队新宠。本文围绕opencode的完整使用链路展开,从Node.js环境准备、npm全局安装,到解决Windows环境变量配置问题,再到接入OpenAI、Anthropic或多模型管理平台,梳理一套标准化接入方案。同时演示VSCode插件调用、LSP语义分析及Playwright驱动的浏览器自动化

weixin_28837817的博客 319

Discuz!论坛教程之注册成功后跳转到指定页面

修改文件 source/class/class_member.php 搜索 $locationmessage = 'register_succeed_location'; 在搜索到的代码上方约十几行的位置找到 $url_forward = dreferer(); 修改成 $url_forward = '要跳转的网址';

土著人宁巴的Discuz!专栏 1万+

SAP 系统升级不再惧怕 SPAU 与 SPDD:把修改调整做成可控的工程

SAP系统升级中的SPAU/SPDD处理要点:首先明确SPDD处理数据字典对象,SPAU处理程序对象,核心是解决标准对象变更与历史修改的继承问题。关键原则是优先回归标准版本,减少后续升级负担。操作时应利用版本管理对比差异,批量处理可回退对象,并通过F9多选提高效率。对于提示"当前版本与建议一致"的对象直接回归标准。注意区分新旧SPAU界面功能差异,将Note下载移至SNOTE处理,并确保在SPDD/SPAU之后处理SPAU_ENH。最后,所有调整需记录日志并纳入传输请求,确保可追溯性。遵

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 390

Discuz! X3.4:若检测到未登录,返回提示登录链接

if (trim($_G['username'])==""){ $return .= <<<EOF 请首先<a href="../member.php?mod=logging&amp;action=login" οnclick="showWindow('login', this.href)">登录</a></div> EOF; echo $return; exit;

追 568

2026.5.3:Ubuntu26.04下uv所需的环境变量pyproject.toml

本文档提供了Python开发环境的配置指南。主要包括: 设置环境变量(HF_ENDPOINT、UV_PYTHON_INSTALL_MIRROR等) 创建pyproject.toml配置文件,定义项目元数据(名称、版本等) 指定依赖项(torch系列库)及其安装源(PyTorch官方CUDA 12.8镜像) 配置Python版本要求(>=3.13,<3.14) 设置平台限制(Linux/Windows) 该配置适用于需要PyTorch CUDA 12.8支持的项目开发环境搭建。

拥抱具身智能,昇腾Ascend C 587

从 SAP BTP trial 到第一个 CPI iFlow 的实操路线图

本文介绍了如何从零开始学习SAP CPI(现称SAP Integration Suite中的Cloud Integration能力)。主要内容包括:1)明确学习边界,建议使用SAP BTP trial账号进行个人练习,注意90天有效期限制;2)理解SAP BTP账号模型层级结构(Global Account→Subaccount→Space);3)详细说明申请trial账号流程,推荐选择Singapore区域以避免兼容问题;4)指导如何检查Entitlements和Quotas,强调应专注于SAP Inte

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 164

discuz插件开发及页面跳转教程

discuz, 开发具有完整业务功能插件的一个流程介绍.

fanpl1001的博客 2385

将Keil中的变量数组导出

首先,写好导出数据的函数。

小柚子的博客 1951

discuz php单页,Discuz! X2 自定义单页面最简单方法

此方法简单到只有一句话:新建一个专题就行了,还可以自定义二级域名和URL,可以设置是否包括页头、页脚,Title/Keywords/description等信息自然不在话下。新建完后就可以DIY,想往里加什么就加什么。鉴于此方法太过简单,本文过于单薄,所以增加一个普通方法供大家比较。首先,单页包括该单页的php文件和该单页的模板(.htm)文件,比如:host.php、host.htm普通单页的p...

weixin_36079835的博客 441

2026华为OD机试(JAVA&Go)真题【E卷+A卷+B卷+C卷+D卷】目录+在线OJ

华为OD机试真题题库【E卷+A卷+B卷+C卷+D卷】目录,Java实现。

MISAYAONE的博客 34万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Discuz! X2/X2.5 插件制…

当您在编写后台时,需要对几个常用后台显示函数进行详细的了解 下面的函数讲解按照重要性、常用性进行排序 目录 showsetting()表单显示 cpmsg()提示消息 showformheader()创建表单头 showformfooter()创建表单尾 showtableheader()创建表格头 showtablefooter()创建表格尾 showtablerow()创建列表式

Peter的游击战 688

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

论坛php board,Crossday Discuz! Board 论坛系统Discuz!

Crossday Discuz! Board 论坛系统(简称 Discuz! 论坛,中国国家版权局著作权登记号 2006SR11895)是一个采用 PHP 和 MySQL 等其他多种数据库构建的高效论坛解决方案。作为商业软件产品, Discuz! 在代码质量,运行效率,负载能力,安全等级,功能可操控性和权限严密性等方面都在广大用户中有良好的口碑。凭借 Discuz! 开发组长期积累的丰富的 web...

weixin_33976326的博客 3694

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

discuzX3.4在独立页面当中实现登陆/登出功能。

discuzX3.0亲测可用。 (dz新建独立页面请参考另一篇文章。) https://blog.youkuaiyun.com/wwppp987/article/details/105487665 网站根目录下新建login_function.php,内容为:【可以更改require内容以适应目录,这样就可以不用把这个文件建立在根目录下了。】 <?php //退出Discuz账号 functi...

wwppp987的博客 1527

discuz 插件开发,去掉登陆浮动框disallowfloat

写个discuz插件,想禁用掉登陆弹出的ajax浮动框 第1步 首先先以論壇管理員身分登入您的Discuz7.0網站,因為還沒設定,所以 網站登入方式還是像以下圖片這樣,採用Ajax的浮動視窗口。 第2步 登入後,接著點擊右上角的「系統設置」。 第3步 進入後台,點擊上方【介面】,再點擊左方【介面設置】,接著網頁往 下拉,找到「啟用浮動窗口」,請選擇「否」,最後點擊﹝提交﹞,

jazywoo_在路上 1844

Disucz论坛必备哪些插件,最全Disucz插件【2023最新】

社区论坛的重要性愈发凸显。Disucz作为一款开源的社区论坛软件,其灵活性和可扩展性使其成为许多网站社区的首选。要充分发挥Disucz的潜力,选择并安装适当的插件是至关重要的。

qq_787143156的博客 1257

discuz外部调用会员登陆窗口的解决办法

<br />有时候建一个网站需要在网站首页显示一个discuz的会员登录窗口,<br />  本人使用的是dz7.2,其他版本没试过。<br />  1、复制一个bbs/logging.php,命名为logging2.php。<br />  2、写一个(或插入现有网站首页)网站登陆窗的页面,html、php都可以(论坛默认地址为/bbs,自行修改吧): <form id="loginform" method="post" name="login" action="/bbs/logging2.php?acti

邦甘林的专栏 2591
上一篇: uchome 二次开发 AJAX解析
下一篇: Jquery 鼠标跟随提示层(可显示文本,Div ,Table, Html 等等)
ahstudy
博客等级 码龄19年 60粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值