discuz知识总结

2023-11-03

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 οnclick="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 οnclick="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_')



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文件中的变量,或者系统的全局变量;


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

discuz知识总结 的相关文章

  • 使用 php 在多维数组中按键排序[重复]

    这个问题在这里已经有答案了 可能的重复 在 PHP 中对多维数组进行排序 https stackoverflow com questions 2059255 sorting multidimensional array in php 如何在
  • 如何在类似 MVC 的页面中加载基于漂亮 URL 的类?

    我想请教一些关于如何解决这个问题的提示 我正在尝试构建自己的 MVC 网站 我了解了 URL 的基础知识 http example com blog cosplay cosplayer expo today 博客 gt 控制器cosplay
  • 更改迁移中的自动​​增量值(PostgreSQL 和 SQLite3)

    我有一个托管在 Heroku 上的项目 想要更改表的自动增量起始值 我在本地使用 SQLite3 Heroku 使用 PostgreSQL 这是我在迁移中所拥有的 class CreateMytable lt ActiveRecord Mi
  • 如何在 PHP 中使用 cURL 发出同时包含 GET 和 POST 参数的请求?

    其他人已经问过如何从 perl java bash 等执行此操作 但我需要在 PHP 中执行此操作 并且我没有看到任何已提出的专门与 PHP 相关的问题 或包含 PHP 的答案 My code ch curl init url curl s
  • 如何解码 eval( gzinflate( base64_decode(

    我已将此代码注入到我的网站中 如何解码尾随字符串 我需要知道发生了什么以及其背后的代码是什么 这应该输出将被执行的代码eval 我希望这就是您正在寻找的
  • PHP Solr PECL 扩展安装

    我已经使用命令安装了 pecl solr pecl install solr 和梨使用 wget http pear php net go pear phar php go pear phar 重启Apache后 我仍然收到错误 Fatal
  • Laravel 5 中的自定义验证器

    我正在将 Laravel 应用程序从 4 升级到 5 但是 我有一个自定义验证器 但无法运行 在L4中 我做了一个验证器 php文件并将其包含在全局 php using require app path validators php 我尝试
  • 强制 Composer 下载 git repo 而不是 zip

    我对作曲家有一些问题 require php gt 5 3 2 kriswallsmith buzz 0 7 Repo https github com kriswallsmith Buzz tree v0 7 https github c
  • MySQL PHP邮政编码比较具体距离

    我试图找出比较一个邮政编码 用户提供的 和一大堆其他邮政编码 现在大约有 200 个邮政编码 之间的距离的最有效方法 相对于加载时间 但它会随着时间的推移而增加 我不需要任何精确的东西 只是在球场上 我下载了整个美国的邮政编码 csv 文件
  • Apache、PHP 和 MySQL 可移植吗?

    我可以在外部硬盘上运行 Apache PHP 和 MySQL 吗 我需要这个 因为我在不同的地方工作 计算机 有时我没有安装和配置所有使用的应用程序 当然可以 XAMPP http www apachefriends org en xamp
  • 在sqlite SQL语句中与order by子句结合使用limit

    下面的两条 SQL 语句总是会产生相同的结果集吗 1 SELECT FROM MyTable where Status 0 order by StartTime asc limit 10 2 SELECT FROM SELECT FROM
  • sql server 按组排名

    问题看似简单 但我却无法理解 这是针对 sql 服务器的 what I have in a table What I need as a output cksum id cksum id 2162514679 204 2162514679
  • suhosin.mt_srand.ignore 在 PHP 中一致洗牌数组的解决方法?

    我有一个 PHP 脚本 需要随机化一个具有一致结果的数组 这样它就可以向用户呈现前几个项目 然后如果他们愿意 他们可以从同一个打乱的集合中提取更多结果 我目前使用的是这个 基于我相信的 Fisher Yates 算法 function sh
  • 如何在 Zend Framework 3 中注册自定义表单视图助手

    我正在将继承的 Zend Framework 2 应用程序迁移到 Zend Framework 3 并且在注册自定义表单视图助手时遇到了一些困难 这些助手在应用程序使用版本 2 时起作用 主要用于添加标签属性以实现可访问性 例如 这是一个自
  • 两个类可以使用 C++ 互相查看吗?

    所以我有一个 A 类 我想在其中调用一些 B 类函数 所以我包括 b h 但是 在 B 类中 我想调用 A 类函数 如果我包含 a h 它最终会陷入无限循环 对吗 我能做什么呢 仅将成员函数声明放在头文件 h 中 并将成员函数定义放在实现文
  • 如何从 PostgreSQL 中的时间戳列值提取一天中的时间(或小时)?

    我正在尝试从 PostgreSQL 中的 时间戳 列中提取一天中的时间 这是我的做法 但是 太糟糕了 知道如何做得更好吗 SELECT date part hour date demande text hours date part min
  • Laravel leftJoin 仅右表的最后一条记录

    我是 Laravel 的新手 我有两张桌子 1 产品 2 价格 products id product int p key name varchar prices id price int p key id product int
  • C++ 中的 include 和 using 命名空间

    用于使用cout 我需要指定两者 include
  • Laravel $request->file() 返回 null

    尝试在后端使用 Laravel 上传文件时遇到问题 Issue Laravel request gt file 方法返回 null Setup 我使用以下方法构建了一个 AJAX 请求超级代理人 https github com visio
  • 为什么我的会话仍然存在?

    我一定很愚蠢 因为似乎一件相当明显的事情现在让我完全困惑 我有一个会议 ie SESSION handbag id 在某个时刻 我需要彻底终止这个会话 ie at the start of the page session start el

随机推荐

  • 这应该是全网最全的分库分表方案了

    一 数据库瓶颈 不管是IO瓶颈 还是CPU瓶颈 最终都会导致数据库的活跃连接数增加 进而逼近甚至达到数据库可承载活跃连接数的阈值 在业务Service来看就是 可用数据库连接少甚至无连接可用 接下来就可以想象了吧 并发量 吞吐量 崩溃 1
  • 【Vue2从入门到精通】详解Vue数据双向绑定原理及手动实现双向绑定

    文章目录 人工智能福利文章 什么是数据双向绑定 数据双向绑定的原理 Vue数据双向绑定原理 实现数据双向绑定的步骤 手动实现自定义组件的双向绑定的步骤 写在最后 人工智能福利文章 分享几个国内免费可用的ChatGPT镜像 10几个类Chat
  • Java长存!12个Java长久占居主要地位的原因

    我们很容易就会遗忘那些曾经在猿群中大热而又被各种新技术掩盖直至堙灭的技术的价值 就拿COBOL这个老猿们当年所用的神器来说 就跟条死鱼一样被现代猿基本这么形容 没价值 腥臭 过时了 对你没好处 Java 作为现代猿的中坚力量在这点上可能会成
  • thymeleaf 基本语法

    在学习 springboot 中学习到了模板引擎 thymeleaf 总结一下基本语法 1 集成thymeleaf 模板 Thymeleaf 是一个用于 web 和独立环境的现代服务器端 Java 模板引擎 1 1 引入依赖
  • 有Cmake的工程交叉编译到链接时报错找不到.so动态库文件

    1 打开CmakeLists txt 找到这个函数add executable ZegoExpressExample SRC LIST 2 在其后面添加链接库的函数 target link libraries ZegoExpressExam
  • 学习笔记-二叉树遍历、查找、删除

    二叉树 树结构出现的原因 二叉树示意图 常用用语 叶子节点 没有子节点的节点 节点的权 节点值 路径 从根节点找到该节点的一条路 树的高度 也就是最大层数 二叉树概念 每个节点最多只能有两个子节点称为二叉树 二叉树的节点分为左子节点和右子节
  • 网格的关键技术问题

    网格的核心观念是一句老话 即 网络就是计算机 这个网络可以大到整个互联网 小到一个家庭网 几年前 当一些国外公司和媒体大炒特炒 网络就是计算机 这类缺乏内容的虚概念的时候 科研人员却在踏踏实实地研究网格的关键技术问题 如果整个互联网就是一台
  • 记录腾讯云服务器解决登录报:WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED 问题

    起因 我手上有两个腾讯云账号 每个账号下都挂了一台云服务器 之前都是可以通过Mac的 Terminal终端ssh登录 今天发现其中一台报如下错误 首先说下解决方案 看报错信息中有这样一句 这里每个人的hostname不一样需要注意 Add
  • 网安面试题

    导航小助手 如何识别CDN 如何判断靶标站点是windows linux 常见端口 同源策略 TCP和UDP区别 TCP协议的长连接和短连接 SYN FLOOD攻击和CC攻击 Mysql的网站注入 5 0以上和5 0以下的区别 sql注入读
  • 哈希算法(hash)加密解密

    一 哈希算法 hash 加密解密介绍 哈希 英文叫做 hash 哈希函数 hash function 可以把 任意长度的数据 字节串 计算出一个为固定长度的结果数据 我们习惯把 要计算 的数据称之为 源数据 计算后的结果数据称之为 哈希值
  • Redis的geospatial(地理位置)类型的用法

    Redis的geospatial 地理位置 类型的用法 说明 像微信中朋友的定位 附近的人 打车距离等 可以使用Geo在3 2版本之后推出 可以推算地理位置的信息 两地之间的距离 周围的人 底层是Zset 命令同样适用 常用命令 添加 ge
  • 用visio制作机柜服务器,ibm visio 服务器机柜图标

    实例简介 ibm visio 服务器机柜图标 ibm全系列产品visio机柜图标 画机柜平面图的选择 实例截图 核心代码 af108d07 08fb 4638 bf08 372416c35cd2 IBM IBM 1 vss IBM 2 vs
  • 华为手机日历倒计时_华为手机日历怎么设置生日和纪念日提醒?敬业签支持多方式提醒...

    我们在日常生活中除了每天普通的日子外 还有一些对于我们个人来说比较特殊的 有意义的日子 例如亲朋好友的生日 恋爱纪念日 结婚纪念日 以及每月初一十五去上香等 我们将要在一些固定的日期去做指定的事情 如果到时间遗忘做某事 将会造成或大或小的影
  • PID算法控制小车转向

    1 平衡小车转向控制调试 角加速度传感器线加速度计 直立静止时 x和y轴输出为0 z轴为g 存在一定角度时 g会在x和y轴存在分量 Angle Y表示角度 弧度制 Accel X表示重力加速度在x轴的分量 1 平衡小车转向环使用P 比例控制
  • C++:内联函数的优缺点

    内联函数 首先我们阐述一下函数 先从汇编语言的角度看函数的调用 其实就是call和ret的搭配实现了一个函数调用 用下面代码来解释 assume cs code code segment s nop ret main call s mov
  • Android中多USB摄像头解决方案——UVCCamera

    先贴上采用的开源库链接 https github com saki4510t UVCCamera https github com saki4510t OpenCVwithUVC 给USBCamera添加了OpenCV 业余时间捣鼓了下An
  • 支付宝自定义tabbar和小红点及解决bug

    须知 支付宝自定义tabbar 以 我的 界面为例 我有5个tabbar 所以 我的 界面就为第4个 有数字4 的地方换为你对应的tabbar序号 首次运行时 小红点allRedDot会出错 建议将有关allRedDot的地方都先注释 根据
  • 认识NR(四):全网最全最详细5G TypeII 和 Enhanced TypeII码本讲解

    声明 以下内容节选自本人组会ppt 仅供分享 禁止转载 一
  • 使用matlab内存不足,Matlab内存不足问题(Out of memory)

    今天遇到过这个错误 Error using gt horzcat Out of memory Type HELP MEMORY for your options 做算法仿真时 矩阵太大 超出内存了 当信号矩阵缩到可以满足内存时 仿真也没意义
  • discuz知识总结

    Discuz 系统常用函数及变量 常用函数 showmessage 函数 该函数就是我们最常见的页面提示跳转 比如登陆 退出 个人信息修改提交等等 效果演示 函数原型 showmessage message url forward extr