您现在的位置是:首页 > cms教程 > Discuz教程Discuz教程
Discuz插件开发中缓存和插件语言使用方法
之瑶2025-07-11Discuz教程已有人查阅
导读这几天一直纠结于Discuz的缓存问题,今天终于有点小发现:首先Discuz的缓存可以通过数据库、文件等方式进行!在Discuz的配置文件config_global.php中有一个配置项
1、关于缓存
这几天一直纠结于Discuz的缓存问题,今天终于有点小发现:首先Discuz的缓存可以通过数据库、文件等方式进行!在Discuz的配置文件config_global.php中有一个配置项,
2、关于钩子
钩子其实就是一个以Discuz中某个位置的名称命名的函数,这些位置的名称可以通过将配置文件中的$_config['plugindeveloper'] = 2;来看到!这些钩子会在这些位置出现的时候被调用,然后将对应的钩子的内容显示在相应的位置。
3、关于插件中的语言的问题
因为刚学习Discuz的插件开发,为了快速上手,所有找了在本地安装了两个Discuz的插件,然后想着学习一下别人是怎样开发插件的!但是,看源代码的时候,插件中的那些数据缓存的操作让我彻底晕了,被人的插件是通过调用缓存的方式来读取语言的,而官方的文档说的是通过lang()获取语言包中的内容!经过几次尝试,之后得出一个小结论:Discuz会缓存插件目录下的xml配置文件中的内容(可能需要用方法loadcache()缓存一下),之后便可以通过缓存来读取XML文件中的内容!但是Discuz不会缓存identifier.lang.php中的内容(至少目前我还没有找到),所有对于存放于语言包函数中的内容需要通过lang()方法调用!在导出XML文件的时候发现,XML文件中包含了语言包中的内容!将导出的XML文件放在插件根目录下面,即使将语言包文件删掉,依旧可以正常的通过lang()方法获取相应的内容,同事也可以通过缓存的方式获取!所以,我之后得出的结论是,如果想使用缓存的方式调用语言包,应该讲语言包中的内容写在XML文件中!
4、Discuz插件开发中常用到的几个函数
脚本中用到的
这几天一直纠结于Discuz的缓存问题,今天终于有点小发现:首先Discuz的缓存可以通过数据库、文件等方式进行!在Discuz的配置文件config_global.php中有一个配置项,
$_config['cache']['type'] = 'sql';
就我目前的理解,type为sql时是缓存在数据库中的表名称为common_syscache的表中。以二进制的方式存储的!当type类型为file的时候,Discuz的缓存会存放在Discuz的data/cache目录下。当然Discuz还支持mamcache、redis等方式的缓存2、关于钩子
钩子其实就是一个以Discuz中某个位置的名称命名的函数,这些位置的名称可以通过将配置文件中的$_config['plugindeveloper'] = 2;来看到!这些钩子会在这些位置出现的时候被调用,然后将对应的钩子的内容显示在相应的位置。
3、关于插件中的语言的问题
因为刚学习Discuz的插件开发,为了快速上手,所有找了在本地安装了两个Discuz的插件,然后想着学习一下别人是怎样开发插件的!但是,看源代码的时候,插件中的那些数据缓存的操作让我彻底晕了,被人的插件是通过调用缓存的方式来读取语言的,而官方的文档说的是通过lang()获取语言包中的内容!经过几次尝试,之后得出一个小结论:Discuz会缓存插件目录下的xml配置文件中的内容(可能需要用方法loadcache()缓存一下),之后便可以通过缓存来读取XML文件中的内容!但是Discuz不会缓存identifier.lang.php中的内容(至少目前我还没有找到),所有对于存放于语言包函数中的内容需要通过lang()方法调用!在导出XML文件的时候发现,XML文件中包含了语言包中的内容!将导出的XML文件放在插件根目录下面,即使将语言包文件删掉,依旧可以正常的通过lang()方法获取相应的内容,同事也可以通过缓存的方式获取!所以,我之后得出的结论是,如果想使用缓存的方式调用语言包,应该讲语言包中的内容写在XML文件中!
4、Discuz插件开发中常用到的几个函数
脚本中用到的
loadcache() //缓存插件的相关内容
$_G['cache']['plugin']['idetifier'] //获取当前插件相关的缓存内容
include template('identifier:templage_name'); //加载模板文件
模板中用到的几个函数
<!--{loop $result_courent $value}-->
<!--{$value[tid]}-->循环数组输出
<!--{/loop}-->
{template common/header} 包含Discuz的头部
{template common/footer} 尾部
<!--{$test}--> 变量的输出
脚本指定模板变量内容的方式:Discuz的模板可以直接用输出脚本中的变量,脚本中无需做特殊的指定即可!
本文标签:
很赞哦! ()
相关教程
图文教程
Discuz支持大文件上传的实现方法
本篇文章给大家分享使discuz支持大文件上传的插件。5步轻松让Discuz支持500M大文件上传演示版本是discuz-x3.4
java和Discuz论坛实现单点登录的实现方法
服务器要支持php语言+支持mysql 5.0以上的数据库 + Apache服务器(支持网站的一个服务器,通过域名的能访问就可以了)Msql5.0以上的数据库一个。
discuz论坛发展历程和功能介绍
Crossday Discuz! Board(简称 Discuz!)是北京康盛新创科技有限责任公司推出的一套通用的社区论坛软件系统。自2001年6月面世以来,Discuz!已拥有11年以上的应用历史和200多万网站用户案例
sphinx+with安装discuz的方法
安装sphinx:任何一项配置,如果在新的数据源块中指定了新值,继承的值都将被忽略,即使有多个定义( multivalue)也就是说在一个块中如果某个类型的定义有多个
相关源码
-
(响应式)蓝色智能摄像头安防防盗电子设备免费pbootcms源码下载这是一款针对智能安防行业特点设计的网站模板,采用蓝色系配色方案,体现科技感和安全性。模板包含产品展示、解决方案、技术支持和新闻中心等核心模块,能够全面展示智能安防设备的技术特点和行业应用。查看源码 -
(自适应响应式)英文外贸电子产品手机配件网站pbootcms模板专业级外贸网站模板基于PbootCMS内核开发,为电子产品跨境贸易企业设计。采用响应式布局技术,确保电脑、平板、手机等设备访问时自动适配显示效果。数据实时同步管理,一次编辑全平台生效。查看源码 -
(自适应)英文绿色精密模具零件加工五金零件pbootcms外贸网站模板本模板基于PbootCMS开发,为五金零件、精密模具加工等英文外贸企业设计。采用响应式布局,适配各类移动设备,是五金零件企业开展国际贸易的专业展示平台。查看源码 -
响应式艺考培训学校机构pbootcms模板html5源码基于PbootCMS免费开源内核开发,为艺考培训学校与艺术机构设计,替换图文即可快速适配全行业需求。响应式布局兼容手机/PC端,数据实时同步,运维效率提升300%。查看源码 -
帝国CMS7.5小说推荐公众号导航带wap手机站+带采集工具本模板为小说导航类网站设计开发,基于帝国CMS7.5内核构建,针对小说阅读领域的分类聚合需求进行深度优化。通过智能分类系统和用户行为分析,实现小说资源的精准推荐与导航功能。查看源码 -
帝国CMS7.5手游资讯下载综合门户免费网站模板本模板基于帝国CMS7.5内核开发,为手游打造的综合门户网站解决方案。模板设计充分考虑了手业的特性,包含游戏资讯发布、手游下载、礼包发放、开测信息等核心功能模块,满足手游门户网站的各项业务需求。查看源码
| 分享笔记 (共有 篇笔记) |
