对discuz的代码分析学习(四)论坛入口文件

discuz 数据表对照. cdb_access               用户权限表      cdb_adminactions         管理动作表cdb_admingroups          管理组数据表cdb_adminnotes           管理员留言  cdb_adminsessions        管理员后台在线记录cdb_advertisements       广告资料表cdb_ann 阅读详情

只是大致分析下执行流程,主要就是取得mod参数的值,根据取值加载控制器,控制器位置在最后一行指定了。

 

1 )定义应用名称,加载两个必要文件

define(‘APPTYPEID‘, 2);
define(‘CURSCRIPT‘, ‘forum‘);

require ‘./source/class/class_core.php‘;//核心类
require ‘./source/function/function_forum.php‘;//论坛函数库

2 )modarray数组限定了mod取值范围

$modarray = array(‘ajax‘,‘announcement‘,‘attachment‘,‘forumdisplay‘,
    ‘group‘,‘image‘,‘index‘,‘medal‘,‘misc‘,‘modcp‘,‘notice‘,‘post‘,‘redirect‘,
    ‘relatekw‘,‘relatethread‘,‘rss‘,‘topicadmin‘,‘trade‘,‘viewthread‘,‘tag‘,‘collection‘,‘guide‘
);
//模块缓存列表,各个子数组分别表示各个模块要缓存的缓存项
$modcachelist = array(
    ‘index‘        => array(‘announcements‘, ‘onlinelist‘, ‘forumlinks‘,
            ‘heats‘, ‘historyposts‘, ‘onlinerecord‘, ‘userstats‘, ‘diytemplatenameforum‘),
    ‘forumdisplay‘    => array(‘smilies‘, ‘announcements_forum‘, ‘globalstick‘, ‘forums‘,
            ‘onlinelist‘, ‘forumstick‘, ‘threadtable_info‘, ‘threadtableids‘, ‘stamps‘, ‘diytemplatenameforum‘),
    ‘viewthread‘    => array(‘smilies‘, ‘smileytypes‘, ‘forums‘, ‘usergroups‘,
            ‘stamps‘, ‘bbcodes‘, ‘smilies‘,    ‘custominfo‘, ‘groupicon‘, ‘stamps‘,
            ‘threadtableids‘, ‘threadtable_info‘, ‘posttable_info‘, ‘diytemplatenameforum‘),
    ‘redirect‘    => array(‘threadtableids‘, ‘threadtable_info‘, ‘posttable_info‘),
    ‘post‘        => array(‘bbcodes_display‘, ‘bbcodes‘, ‘smileycodes‘, ‘smilies‘, ‘smileytypes‘,
            ‘domainwhitelist‘, ‘albumcategory‘),
    ‘space‘        => array(‘fields_required‘, ‘fields_optional‘, ‘custominfo‘),
    ‘group‘        => array(‘grouptype‘, ‘diytemplatenamegroup‘),
);

3 )如果mod参数为空或者不合法都会让表达式为真,导致值为index

$mod = !in_array(C::app()->var[‘mod‘], $modarray) ? ‘index‘ : C::app()->var[‘mod‘];

4 )做初始化

define(‘CURMODULE‘, $mod);
//var_dump(CURMODULE);
$cachelist = array();
if(isset($modcachelist[CURMODULE])) {//如果当前缓存项存在的话,
    $cachelist = $modcachelist[CURMODULE];//获取当前缓存组的缓存列表项

    $cachelist[] = ‘plugin‘;
    $cachelist[] = ‘pluginlanguage_system‘;
}
if(C::app()->var[‘mod‘] == ‘group‘) {
    $_G[‘basescript‘] = ‘group‘;
}

C::app()->cachelist = $cachelist;
C::app()->init();//初始化


loadforum();


set_rssauth();


runhooks();

5 )加载控制器

$navtitle = str_replace(‘{bbname}‘, $_G[‘setting‘][‘bbname‘], $_G[‘setting‘][‘seotitle‘][‘forum‘]);
$_G[‘setting‘][‘threadhidethreshold‘] = 1;
//var_dump($mod);
require DISCUZ_ROOT.‘./source/module/forum/forum_‘.$mod.‘.php‘;

对discuz的代码分析学习(四)论坛入口文件

discuz论坛怎么去掉标题和底部powered by discuz方法 discuz!论坛程序默认在标题后面带有powered by discuz!,为达到网站优化需要去除powered by discuz!,去除方法很多地方都有介绍,但都不完全,也讲的不够清楚,很多地方都有错误,今天给大家详细解读discuz! X3.1去除“powered by discuz!”方法修改方法: 第一步: 这个文件 /temp... 阅读详情

相关推荐

discuz论坛,discuz论坛程序,discuz论坛快速搭建

discuz论坛,大量运用AJAX以加快使用流程,discuz论坛内置多种大胆变革之风格,风格系统模板化,有可视化编辑器,并可一键安装或移除风格、插件。discuz论坛以PHP为核心,具跨平台特性,可使用Apache(或Microsoft Windows中的IIS)配合MySQL运行Discuz!。可与插件集成,discuz论坛可在论坛使用也可以只在管理界面里使用,discuz论坛可对于论坛程序以及模板进行扩展,可以使用插件钩子扩展,插件机制完善。 discuz论坛的主页有友情连接的功能,它的版.

xiaomaseo的博客 3316

【Discuz系列教程2】论坛入口forum.php

//定义两个常量,定义当前应用ID define('APPTYPEID', 2); //定义当前应用脚本名称 define('CURSCRIPT', 'forum'); //引入两个核心库文件 require './source/class/class_core.php'; //Discuz! 的通用初始化模块程序,其几乎被 所有的外部代码所引用 require './sourc...

weixin_30239339的博客 4万+

Discuz! X3.4源码

Discuz! X3.4源码

discuz的编码规范

目录 [隐藏] 1 前言2 适用范围3 标准化的重要性和好处4 PHP编码规范与原则 4.1 代码标记4.2 注释4.3 书写规则 4.3.1 缩进4.3.2 大括号{}、if和switch4.3.3 运算符、小括号、空格、关键词和函数4.3.4 函数定义4.3.5 引号4.3.6 Discuz!语言问题 4.4 命名原则 4.4.1 变量

cloudday的专栏 8711

discuz discuz 架构分析

discuz discuz!x discuz 架构 discuz架构分析 discuz数据库

右腿驱动电路设计:从共模干扰原理到生物电采集实战

在生物电信号采集领域,共模干扰是影响测量精度的核心挑战之一,其本质源于环境电磁场通过容性耦合在人体表面产生的感应电流。根据欧姆定律,由于人体组织阻抗的不均衡性,共模电流会在不同测量点产生差异化的压降,从而转化为难以滤除的差分噪声。为解决这一问题,右腿驱动技术应运而生,它通过负反馈原理主动抵消干扰,显著提升系统的共模抑制比。该技术广泛应用于心电图、脑电图等医疗电子设备中,是确保微弱生理信号质量的关键环节。本文结合工程实践,深入剖析了右腿驱动电路中的仪表放大器选型、反馈环路稳定性设计以及PCB布局布线要点,为高

weixin_31476015的博客 444

discuz入口文件index.php的思想分析

入口文件index.php分析: 整个文件就是对域名的判断 相关设置在后台-》全局-》域名设置中 相关文件保存在/data/cache/cache_domain.php中//$_SERVER['QUERY_STRING']获取url中参数部分(也就是问号后面的字符) 当url参数不为空并且参数是数字类型的时候给$_ENV['curapp']和$_GET赋值 其中$_ENV...

weixin_30852419的博客 1647

Android Studio打包全攻略---从入门到精通

初出茅庐 手动打包怎么手动打包项目写完了,现在需要把应用上传到市场,问题出现—怎么把代码变成.apk(Android的可安装文件)。 1. 创建签名文件 2. 填写好签名参数 3. 生成APK 注意:签名的密码和密匙的密码注意保管,不要忘了,签名文件别泄漏了,也别搞丢了为什么要打包我最开始就有这个疑问,我们的代码不是点了下运行按钮就直接安装到手机上了吗,我们在在项目Project

我早就想,要这样载着你,翻山越岭 2万+

discuz 模板代码解释

模块模板列表代码说明: 作为小白,我为了更好地DIY论坛,便到处搜集资料,发现论坛没有这个详细资料,于是乎整理了以下资料。 以下都来源于程序本身,只不过我是提取出来了,更方便大家,,, 查看位置:后台:门户 » 模块模板  [+] 模块模板列表   技巧提示 1.你可以使用[loop]...[/loop]标签来循环显示模块中的数据;如果要在模板中多处循环可以使

天阶的专栏 7743

vmware虚拟机网络连接问题

主机:ubuntu14.04 Vitual Network Editor

入门虽易,精通不易,且学且珍惜! 1354

AGI 之 【Dify】 之 Dify 在 Windows 端本地部署调用 Ollama 本地下载的大模型, API 形式 Python 调用 进行简单聊天接口测试

AGI,即通用人工智能(Artificial General Intelligence),是一种具备人类智能水平的人工智能系统。它不仅能够执行特定的任务,而且能够理解、学习和应用知识于广泛的问题解决中,具有较高的自主性和适应性。AGI的能力包括但不限于自我学习、自我改进、自我调整,并能在没有人为干预的情况下解决各种复杂问题。本节将介绍如何使用 Dify 平台调用 Ollama 部署的本地模型来创建一个聊天应用。通过 API 的方式发起聊天,可以让前端自由布置所需的聊天形式。

仙魁XAN 1万+

LAMP本地搭建DISCUZ论坛和WORDPRESS博客

首先,服务器只有一台 公网ip只有一个 通过域名方式 2.通过端口方式

King config 1万+

掌控板玩板指南1:初识掌控板、扩展板、Mind+编辑器

掌控板、I/O扩展板入门

好乐无荒之地 1万+

部署Discuz论坛项目

DIscuz是由PHP语言开发的一款开源社交论坛项目。运行在典型的LNMP/LAMP环境中。

Lzcsfg的博客 1538

【AI智能体】Claude Code 高级编程技巧实战项目详解

Claude Code 高级编程技巧实战项目详解

congge 1万+

超临界二氧化碳再热再压缩布雷顿循环建模与先进控制

超临界二氧化碳布雷顿循环建模与先进控制研究 本文研究了超临界二氧化碳再热再压缩布雷顿循环系统的建模与控制。通过MATLAB/Simscape构建了包含压缩机、透平、回热器等关键组件的动态模型,并设计了基于模型预测控制(MPC)和自抗扰控制(ADRC)的多层控制策略。系统采用转速控制的压缩机、阀门开度控制的透平,以及可变热源加热器,实现了全动态分析。研究结果表明,MPC与ADRC混合控制方案相较于传统PID控制,功率超调降低至0.9%,效率波动控制在±0.08%,扰动恢复时间缩短至12秒。

AI的内部世界的博客 342

linux下部署Discuz论坛

Discuz论坛基础搭建 第一步:下载XAMPP(Apache+Mysql+PHP+RERL) 下载的xampp-linux-x64-5.5.30-7-installer.run 上传到/home目录下,然后在命令行输入 ./xampp-linux-x64-5.5.30-7-installer.run,如果报权限问题, ...

A 7475

万字长文带你由浅入深夯实ARM汇编基础——汇编指令及寻址方式最全梳理(附示例)!

见到汇编就害怕?读完这篇,扫除汇编拦路虎!!(示例丰富,可做手册,随手查阅!)

车载系统攻城狮 1万+

LNMP架构搭建Discuz论坛教程

LNMP+Redis搭建discuz论坛

lht631935612的博客 2574

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

discuz论坛模板文件目录

公共模板文件夹 ./template/default/common/   common.css 公共CSS文件 faq.htm 帮助模板文件 footer.htm 系统总底部模板 footer_ajax.htm ajax模式是使用到的系统总底部模板,ajax模式大部分为浮动框登录、注册、发帖等。 forum_calendar.css 广场社区使用到的日历日期样式 forum_moderator.css 版主管理面板样式 header.htm 系统总头显示内容文...

echo 1723

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Discuz论坛

Discuz论坛部署 Discuz是一套通用的社区论坛软件系统,用户可以在不需要任何编程的基础上,通过简单的设置和安装,在互联网上搭建起具备完善功能、很强负载能力和可高度定制的论坛服务 Discuz的基础架构采用世界上最流行的web编程组合,PHP+MySQL 实现,是一个经过完善设计,适用于各种服务器环境的高效论系统解决方案 搭建环境:apache+php+mysql yum insta...

weixin_44783160的博客 7428

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

使用discuz建设论坛社区的5个建议

一个月前,本人是第一次接触Discuz。作为一个做论坛社区的新手站长来说,本人选择DZ而非PW的理由很简单,就是DZ所占市场份额较大和网上的言论较多,以及DZ在插件方面比PW做的好。本人所建的常州羽毛球论坛在本地测试5天后正式上线,经过一个月的优化和维护,所做的两个关键字排在百度第一位。在此谨以本人浅陋的知识与大家分享用Discuz建站一个月的经历和经验。 建议一:          作为一个

HuikangLiang的专栏 2731

小白也能轻松搭建Discuz论坛

现在主流的两种架构: Linux + Apache + Mysql + PHP = LAMP Linux + Nginx + Mysql + PHP/Perl/Python = LNMP 搭建论坛: 架构:LAMP=Linux+Apache+Mysql+PHP 准备工作 需要安装包: Discuz_X3.2_SC_UTF8.zip 对应需要安装软件: httpd.x86_64 ,mariadb-...

李笑男的博客 3653

Discuz论坛搭建

采用 LNMP 技术栈 + Discuz 论坛源程序搭建,其中 LNMP 是 Linux(操作系统)、Nginx(网页服务器)、MariaDB(数据库)、PHP(脚本语言)的组合,是目前主流的 Web 应用部署环境。

2501_94256030的博客 676

搭建 Discuz 论坛

摘要:本实验基于LNMP架构(Linux+Nginx+MariaDB+PHP)搭建Discuz论坛。在RHEL9系统中完成环境配置,包括关闭防火墙/SELinux、配置yum源、安装各组件软件。通过创建数据库、设置Nginx服务、上传Discuz安装包等步骤,最终实现论坛的正常访问和功能测试。实验成功验证了LNMP各组件协同工作的原理,并掌握了Web应用部署的关键技术,包括系统配置、服务管理和权限设置等。同时总结了生产环境中的安全注意事项,如合理设置数据库密码和文件权限等。

2502_93411715的博客 679
上一篇: discuz常用变量
下一篇: htaccess伪静态 最后面加斜杠怎么写
mwb310
博客等级 码龄14年 7粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值