您现在的位置是:首页 > cms教程 > phpcms教程phpcms教程
PHPCMS源码application类中的init()方法
危眺沃2025-05-25phpcms教程已有人查阅
导读程序执行到application类中的init()方法。在该方法中根据mca参数值加载了PC_PATH/modules/content/index.php文件,并对该文件中的index类进行初始化,然后访问了该类中的init()方法。
程序执行到application类中的init()方法。在该方法中根据mca参数值加载了PC_PATH/modules/content/index.php文件,并对该文件中的index类进行初始化,然后访问了该类中的init()方法。
PC_PATH/modules/content/index.php
init()方法中主要是模版调用函数template()。
PC_PATH/modules/content/index.php
defined('IN_PHPCMS') or exit('No permission resources.');//防止恶意调用
//模型缓存路径
define('CACHE_MODEL_PATH',CACHE_PATH.'caches_model'.DIRECTORY_SEPARATOR.'caches_data'.DIRECTORY_SEPARATOR);
pc_base::load_app_func('util','content');//加载分页函数
class index {
private $db;
function __construct() {
$this->db = pc_base::load_model('content_model');
$this->_userid = param::get_cookie('_userid');
$this->_username = param::get_cookie('_username');
$this->_groupid = param::get_cookie('_groupid');
}
//首页
public function init() {
if(isset($_GET['siteid'])) {
$siteid = intval($_GET['siteid']);
} else {
$siteid = 1;
}
$siteid = $GLOBALS['siteid'] = max($siteid,1);
define('SITEID', $siteid);
$_userid = $this->_userid;
$_username = $this->_username;
$_groupid = $this->_groupid;
//SEO
$SEO = seo($siteid);
$sitelist = getcache('sitelist','commons');
$default_style = $sitelist[$siteid]['default_style'];
$CATEGORYS = getcache('category_content_'.$siteid,'commons');
include template('content','index',$default_style);
}
........//more code
}
index类初始化的过程中加载了content模型(也就是MVC结构中的M,主要负责数据库操作,这里很值得仔细研究其实现思想,但是本文在于分析首页的显示过程,所以在此不作过多分析)。然后从cookie中加载 _userid,_username,_gorupid。如果cookie中没有则这几个值返回false。init()方法中主要是模版调用函数template()。
/**
* 模板调用
*
* @param $module
* @param $template
* @param $istag
* @return unknown_type
*/
function template($module = 'content', $template = 'index', $style = '') {
if(strpos($module, 'plugin/')!== false) {
$plugin = str_replace('plugin/', '', $module);
return p_template($plugin, $template,$style);
}
$module = str_replace('/', DIRECTORY_SEPARATOR, $module);
if(!empty($style) && preg_match('/([a-z0-9\-_]+)/is',$style)) {
} elseif (empty($style) && !defined('STYLE')) {
if(defined('SITEID')) {
$siteid = SITEID;
} else {
$siteid = param::get_cookie('siteid');
}
if (!$siteid) $siteid = 1;
$sitelist = getcache('sitelist','commons');
if(!empty($siteid)) {
$style = $sitelist[$siteid]['default_style'];
}
} elseif (empty($style) && defined('STYLE')) {
$style = STYLE;
} else {
$style = 'default';
}
if(!$style) $style = 'default';
$template_cache = pc_base::load_sys_class('template_cache');
$compiledtplfile = PHPCMS_PATH.'caches'.DIRECTORY_SEPARATOR.'caches_template'.DIRECTORY_SEPARATOR.$style.DIRECTORY_SEPARATOR.$module.DIRECTORY_SEPARATOR.$template.'.php';
if(file_exists(PC_PATH.'templates'.DIRECTORY_SEPARATOR.$style.DIRECTORY_SEPARATOR.$module.DIRECTORY_SEPARATOR.$template.'.html')) {
if(!file_exists($compiledtplfile) || (@filemtime(PC_PATH.'templates'.DIRECTORY_SEPARATOR.$style.DIRECTORY_SEPARATOR.$module.DIRECTORY_SEPARATOR.$template.'.html') > @filemtime($compiledtplfile))) {
$template_cache->template_compile($module, $template, $style);
}
} else {
$compiledtplfile = PHPCMS_PATH.'caches'.DIRECTORY_SEPARATOR.'caches_template'.DIRECTORY_SEPARATOR.'default'.DIRECTORY_SEPARATOR.$module.DIRECTORY_SEPARATOR.$template.'.php';
if(!file_exists($compiledtplfile) || (file_exists(PC_PATH.'templates'.DIRECTORY_SEPARATOR.'default'.DIRECTORY_SEPARATOR.$module.DIRECTORY_SEPARATOR.$template.'.html') && filemtime(PC_PATH.'templates'.DIRECTORY_SEPARATOR.'default'.DIRECTORY_SEPARATOR.$module.DIRECTORY_SEPARATOR.$template.'.html') > filemtime($compiledtplfile))) {
$template_cache->template_compile($module, $template, 'default');
} elseif (!file_exists(PC_PATH.'templates'.DIRECTORY_SEPARATOR.'default'.DIRECTORY_SEPARATOR.$module.DIRECTORY_SEPARATOR.$template.'.html')) {
showmessage('Template does not exist.'.DIRECTORY_SEPARATOR.$style.DIRECTORY_SEPARATOR.$module.DIRECTORY_SEPARATOR.$template.'.html');
}
}
return $compiledtplfile;
}
该函数的主要作用是调用模板,值得学习的是在加载模板的过程中判断模板缓存文件和模板文件的修改时间从而判定是否重新生成缓存的方法。
本文标签:
很赞哦! ()
相关教程
- (响应式)wordpress模板VieuV4.5主题资讯自媒体博客源码
- (自适应多语言)WordPress开源主题MirageV资讯个人博客源码
- WordPress主题模板JustNews资讯博客类源码V5.2.2
- WordPress主题模板主题巴巴/博客X主题源码免费下载
- (PC+手机)帝国cms7.5漫画图片连载网站源码免费下载
- 帝国CMS7.5二次元COS漫展网站模板源码免费下载
- 帝国CMS7.5漫画网站模板带手机端源码免费下载
- 帝国cms7.5游戏门户H5小游戏网站模板源码免费下载
- 帝国CMS7.5H5小游戏模板游戏攻略下载网整站源码
- 帝国cms7.5大型游戏资讯门户网站源码免费下载
- 帝国cms7.5模板情感文学名言名句心情文章类源码下载带手机
- 帝国cms7.5品牌连锁店招商加盟商机网站模版源码
图文教程
phpcms页面替换方法
首页的替换流程首先要先把静态网页做出来,拿到这里来:会发现这个网页里面少了图片,样式表也没有了因为我们只把网页扔过来,所对应的图片和样式表没有扔过来图片什么的应该扔到:
phpcms_phpcms目录结构二次开发分析
一、目前在企业中使用比较多的cms内容管理有如下几种:二、我们选择学习v9版本的phpcms,主要有以下几点原因:三、下面,我们就来进行phpcms v9的安装:
phpcmsv9验证码不显示的解决方法
最近有朋友遇到网站迁移后管理后台登陆验证码不显示的问题,今天在这里总结下Phpcms V9管理后台登陆验证码不显示的解决方法,希望对学习phpcms的朋友有点用处。
phpcms提示io错误的解决方法
phpcms提示io错误的解决办法:首先打开IIS管理器,找到网站的站点;然后进行停止,并在IIS中双击“请求筛选”打开;接着点击“编辑功能设置”,并打开“编辑请求筛选设置”
相关源码
-
(自适应)工业机械制造设备网站pbootcms模板下载为机械制造、工业设备类企业设计,特别适合各类机械设备、生产线、工业自动化产品展示。采用响应式技术,确保在不同设备上都能清晰展示机械产品的技术参数和细节特点。查看源码 -
(自适应)绿色农业大型机械设备展示网站模板下载基于PbootCMS内核深度定制开发的农业机械行业专用模板。针对农机设备展示、产品参数说明等需求优化设计,突出农业机械行业特性查看源码 -
帝国cms7.5模板情感文学名言名句心情文章类源码下载带手机本模板基于帝国CMS7.5开发,为情感文学类网站设计。整体风格温馨雅致,布局合理清晰,特别适合建设情书分享、文学作品展示类网站。模板采用响应式设计,能够自动适配各种终端设备。查看源码 -
(PC+WAP)蓝色钢结构机械五金工程建筑基建营销型pbootcms模板下载于PbootCMS开发的钢结构与工程机械专用模板,助力企业构建专业级产品展示平台;模板内置工程案例展示、产品参数对照表等专业模块,预设项目进度、施工方案等建筑行业专属栏目查看源码 -
(自适应)帝国cms7.5模板自媒体文章新闻博客为帝国CMS7.5设计的响应式模板,采用H5技术构建现代化内容展示框架。通过智能断点检测技术实现手机、平板、PC三端适配查看源码 -
(PC+WAP)地暖热水器烘干机节能设备网站模板下载为地暖热水器及节能设备企业设计的PbootCMS网站模板,集成产品展示、节能方案介绍、技术参数说明等专业模块。采用PC与移动端同步响应架构查看源码
| 分享笔记 (共有 篇笔记) |
