PHPCMS2008源码浅析-index.php PHPCMS20008二次开发

<?php
require dirname(__FILE__).'/include/common.inc.php'; //加载公共函数
$head['title'] = $PHPCMS['sitename'];                 //调用公共变量站名
$head['keywords'] = $PHPCMS['meta_keywords'];       //调用公共变量设置的关键字
$head['description'] = $PHPCMS['meta_description']; //调用公共变量设置的网站内容描述文字
header('Last-Modified: '.gmdate('D, d M Y H:i:s', TIME).' GMT');    //设置网页在服务器上修改的修改时间
header('Expires: '.gmdate('D, d M Y H:i:s', TIME+CACHE_PAGE_INDEX_TTL).' GMT');   //设置服务器的访问响应超时时间
header('Cache-Control: max-age='.CACHE_PAGE_INDEX_TTL.', must-revalidate'); //设置最在page的cache缓存时间
include template('phpcms', 'index'); //调用模板
cache_page(CACHE_PAGE_INDEX_TTL);    //缓存默认生命周期
?>

//缓存配置如下
define('CACHE_STORAGE', 'files'); //Cache 存储方式(files, mysql, apc, eaccelerator, memcache, shmop)
define('CACHE_PATH', PHPCMS_ROOT.'data/cache/'); //缓存默认存储路径
define('CACHE_MODEL_PATH', PHPCMS_ROOT.'data/cache_model/'); //模型缓存存储路径
//页面缓存配置
define('CACHE_PAGE', 0); //是否开启PHP页面自动缓存功能
define('CACHE_PAGE_PATH', PHPCMS_ROOT.'data/cache_page/'); //缓存存储路径
define('CACHE_PAGE_TTL', 3600); //秒,缓存默认生命周期
define('CACHE_PAGE_INDEX_TTL', 300); //秒,缓存默认生命周期
define('CACHE_PAGE_CATEGORY_TTL', 600); //秒,缓存默认生命周期
define('CACHE_PAGE_LIST_TTL', 900); //秒,缓存默认生命周期
define('CACHE_PAGE_CONTENT_TTL', 14400); //秒,缓存默认生命周期

//所用到的函数

function cache_page($ttl = CACHE_PAGE_TTL, $isjs = 0)
{
if($ttl == 0 || !defined('CACHE_PAGE_FILE')) return false;
$contents = ob_get_contents();       //将ob生成的内容取出来
if($isjs) $contents = format_js($contents);   //判断是否为js,如果为,则格式化写入
dir_create(CACHE_PAGE_DIR);             //创建cahce的目录
$contents = "<!--expiretime:".(TIME + $ttl)."-->/n".$contents; //设置文件最后的修改时间,以防同样的访问,再次生成cahce
file_put_contents(CACHE_PAGE_FILE, $contents);             //将内容写入,原来生生的cahce_file_name 中 cache file名的生成在       //   cache_page_start()这个函数中
@chmod(CACHE_PAGE_FILE, 0777);                                   //设置cahe目录的可读性,
}

function cache_page_start()
{
define('CACHE_PAGE_ID', md5(RELATE_URL));
define('CACHE_PAGE_DIR', CACHE_PAGE_PATH.substr(CACHE_PAGE_ID, 0, 2).'/');
define('CACHE_PAGE_FILE', CACHE_PAGE_DIR.CACHE_PAGE_ID.'.html');
$contents = @file_get_contents(CACHE_PAGE_FILE);
if($contents && intval(substr($contents, 15, 25)) > TIME)
{
   echo substr($contents, 29);
   exit;
}
return true;
}

function template($module = 'phpcms', $template = 'index', $istag = 0)
{
$compiledtplfile = TPL_CACHEPATH.$module.'_'.$template.'.tpl.php'; //加载我们平时做的模版目录中的数据生成页面,会放置它的引擎变量里以至后面我们加载html代码后,一同跑出来,的页面,这种模式为MVC模式
if(TPL_REFRESH && (!file_exists($compiledtplfile) || @filemtime(TPL_ROOT.TPL_NAME.'/'.$module.'/'.$template.'.html') > @filemtime//加载模版文件hmtl部分,
($compiledtplfile) || @filemtime(TPL_ROOT.TPL_NAME.'/tag.inc.php') > @filemtime($compiledtplfile))) //加载不同栏目的tag,然后成生页面
{
   require_once PHPCMS_ROOT.'include/template.func.php';
   template_compile($module, $template, $istag);
}
return $compiledtplfile;
}


php CMS所有的模块就是如此结构, 先看是事原来有缓存,无则生成数据,和cahce 然后将数据刷入模板,然后展示出来.....

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Phpcms2008产品介绍 Phpcms是一个基于PHP+Mysql架构的网站内容管理系统,同时也是一个开放的PHP开发平台。Phpcms采用模块化方式开发,功能强大灵活易于扩展,并且完全开放源代码,面向大中型站点提供重量级网站建设解决方案。3年来,凭借Phpcms团队长期积累的丰富的Web开发及数据库经验和勇于创新追求完美的设计理念,使得Phpcms得到了近10万网站的认可,并且越来越多地被应用到大中型商业网站。 主要特性: 1、功能强大,内置近20个功能模块 Phpcms2008由内容模型、会员模型、问吧、专题、全站搜索、个人空间、广告、订单、财务、投票调查、短消息、邮件订阅、Digg、心情指数、评论、友情链接、公告、留言板等近20多个功能模块组成。 2、模块化,开源,可扩展 Phpcms采用模块化方式开发,提供统一的模块开发接口和底层平台支持,并且完全开源,便于二次开发Phpcms2008采用面向对象方式开发,代码更易于阅读和维护,代码质量大幅提升。 3、负载能力强,支持千万级数据 Phpcms团队基于3年的开发经验和不断总结,从缓存技术、数据库设计、代码优化等多个角度入手进行优化,内容可文本存储,让信息和会员数据量支持达到了千万级。 4、权限控制更完美 Phpcms2008后台通过角色进行权限控制,可按模块、栏目、菜单、字段、推荐位、碎片、自由调用、审核流程等设置角色权限,并支持同一个管理员继承多个角色的权限,这让多人维护的站点权限控制变得轻松自如。支持自定义稿件状态和工作流,可自由定义多级稿件审核机制,更适合大中型网站或者单位内网协同工作。 5、模板制作方便,支持中文标签、万能自由标签和碎片功能 Phpcms2008采用MVC设计模式实现了程序与模板分离,不仅继续支持{tag_焦点新闻}格式的中文标签,还支持万能自由标签,轻松调用Phpcms之外的数据库信息,比如论坛、博客、商城。碎片功能融合了2007版里的自由调用和自定义标签功能,并且可以有效地和首页、栏目、专题等进行结合,支持后台可视化编辑和预览。 6、前后台模板设计精美,用户体验好 Phpcms2008前台、后台、会员中心界面全新设计,模板采用DIV+CSS,引入jquery框架,广泛应用AJAX无刷新技术,并且兼容IE和Firefox浏览器,访问速度快。新的后台界面非常漂亮,支持自定义无限极树形菜单,并且采用AJAX加载。 7、支持推荐位功能,内容推送更方便 大中型站点的网站首页、频道首页、专题页的内容都是编辑精心挑选推荐的,可见内容的精确定位推送非常重要。Phpcms的推荐位功能则可以让指定的编辑把信息精确推送到多个指定的位置,也可以随时撤下来。 8、支持生成Html和PHP动态访问,支持内容访问权限控制和收费 可按内容模型自由设置是否生成html,如果不生成html,就可以自由设置内容访问权限和收费,配合强大的财务功能,提供了高效的商业收费网站解决方案。 9、支持自定义内容模型 Phpcms2008支持自定义内容模型,按内容模型自定义字段,并且按字段自定义标签调用条件和信息搜索条件,按栏目绑定内容模型。 Phpcms2008内置了文章、图片、下载、信息四个常用内容模型,并且用户可以根据自身需求自定义内容模型。 10、支持自定义会员模型 Phpcms2008支持自定义会员模型,按会员模型自定义字段,并且按字段自定义标签调用条件和会员搜索条件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值