提交 443e5925 编写于 作者: cherry_toto's avatar cherry_toto

优化缓存,新版本发布

上级 f3ff9e81
......@@ -4,8 +4,8 @@ return [
'name'=>'在线升级插件',//插件名,必须与插件文件夹名字相同
'desc'=>'实现极致CMS后台在线升级',//插件介绍
'author'=>'留恋风2581047041@qq.com',//作者介绍,这里可以把自己的联系方式带上去,方便用户沟通
'version'=>'5.1',//插件版本,默认1.0为最低版本
'update_time'=>'2023-01-06',//插件更新时间,格式:Y-m-d
'version'=>'5.2',//插件版本,默认1.0为最低版本
'update_time'=>'2023-02-18',//插件更新时间,格式:Y-m-d
'module'=>'Admin',//插件应用的模块,Home表示前台模块,Admin表示后台模块.插件安装的时候会据此加载控制器到对应的目录中
];
......
此差异已折叠。
<?php
// +----------------------------------------------------------------------
// | JiZhiCMS { 极致CMS,给您极致的建站体验 }
// +----------------------------------------------------------------------
// | Copyright (c) 2018-2099 http://www.jizhicms.com All rights reserved.
// +----------------------------------------------------------------------
// | Author: 留恋风 <2581047041@qq.com>
// +----------------------------------------------------------------------
// | Date:2019/08
// +----------------------------------------------------------------------
namespace app\home\c;
use frphp\extend\Page;
class ScreenController extends CommonController
{
function index(){
//接收前台所有的请求
$request_url = REQUEST_URI;
//检测三个参数是否存在
if(!$this->frparam('molds',1) || !$this->frparam('tid') || !$this->frparam('jz_screen',1)){
$this->error(JZLANG('参数错误!'));
}
if(!M('molds')->find(['biaoshi'=>$this->frparam('molds',1)])){
$this->error(JZLANG('非法参数!'));
}
if(!isset($_SESSION['screen'])){
$_SESSION['screen'] = [];
}
$session_screen = $_SESSION['screen'];
//查询扩展字段
$fields = M('fields')->findAll(['molds'=>$this->frparam('molds',1)]);
$newfield = [];
foreach($fields as $k=>$v){
$newfield[$v['field']] = $v;
}
$res = M('classtype')->find(array('id'=>$this->frparam('tid')));
//面包屑导航
$classtypetree = array_reverse($this->classtypetree);
$isgo = false;
$newarray = [];
$parent = [];//标记父类
$istop = false;
foreach($classtypetree as $k=>$v){
if($v['id']==$res['id'] && !$isgo){
$isgo = true;
$res['level'] = $v['level'];
$newarray[]=$v;
}
if($v['id']==$res['id'] && $v['level']==0){
break;
}
if($v['level']==0 && $v['id']!=$res['id'] && $v['id']!=$res['pid']){
if(!$istop && $isgo && $parent['level']!=0){
$newarray[]=$v;
$istop = true;
}
$isgo = false;
}
if($isgo && $v['id']!=$res['id'] && $res['level']>$v['level'] ){
if($parent['pid']){
if($parent['level']>$v['level'] && $parent['pid']!=$v['pid']){
$newarray[]=$v;
$parent = $v;
}
}else{
$newarray[]=$v;
$parent = $v;
}
}
}
$newarray2 = array_reverse($newarray);
$positions='<a href="'.get_domain().'">'.JZLANG('首页').'</a>';
foreach($newarray2 as $v){
$positions.=' &gt; <a href="'.$v['url'].'">'.$v['classname'].'</a>';
}
$this->positions_data = $newarray2;
$this->positions = $positions;
//解析jz_screen
//检测是否有page分页参数
$this->frpage = 1;
if(strpos($this->frparam('jz_screen',1),'page')!==false){
$jz_screen_arr = explode('-page-',$this->frparam('jz_screen',1));
$jz_screen = explode('-',$jz_screen_arr[0]);
$this->frpage = (int)$jz_screen_arr[1];
}else{
$jz_screen = explode('-',$this->frparam('jz_screen',1));
}
if($this->frparam('page')){
$this->frpage = $this->frparam('page');
}
$jz_screen_key = [];
$jz_screen_value = [];
foreach($jz_screen as $k=>$v){
if($k%2==0){
$jz_screen_key[]=$v;
}else{
$jz_screen_value[]=$v;
}
}
$screen = array_combine($jz_screen_key,$jz_screen_value);
foreach($screen as $k=>$v){
if($v==0 || $v==''){
if(isset($session_screen[$k])){
unset($session_screen[$k]);
}
}else{
$session_screen[$k] = $v;
}
}
$sql = '1=1 and isshow=1';
//组合搜索内容
foreach($session_screen as $k=>$v){
if(!array_key_exists($k,$newfield)){
continue;
}
if($newfield[$k]['fieldtype']==7 || $newfield[$k]['fieldtype']==12){
//单选字段
//多选框判断
if(strpos($v,',')!==false){
$vv = explode(',',$v);
$vv_arr = [];
foreach($vv as $vs){
$vv_arr[]=" ".$k."='".$vs."' ";
}
$sql.=" and (".implode(' or ',$vv_arr).") ";
$vv = null;
$vv_arr = null;
}else{
$sql.=" and ".$k."='".$v."' ";
}
}else{
//多选字段
if(strpos($v,',')!==false){
$vv = explode(',',$v);
$vv_arr = [];
foreach($vv as $vs){
$vv_arr[]=" ".$k." like '%,".$vs.",%' ";
}
$sql.=" and (".implode(' or ',$vv_arr).") ";
$vv = null;
$vv_arr = null;
}else{
$sql.=" and ".$k." like '%,".$v.",%' ";
}
}
}
$this->filters = $session_screen;
//dump($session_screen);
$_SESSION['screen'] = $session_screen;
$molds = $this->frparam('molds',1);
$sql .= ' and tid in ('.implode(',',$this->classtypedata[$res['id']]['children']['ids']).') ';
$page = new Page($molds);
//手动设置分页条数
$limit = $res['lists_num'];
if($this->frparam('limit')){
$limit = $this->frparam('limit');
}
//echo $sql;
//筛选分页的特殊性
$page->typeurl = 'screen';
$orders = 'orders desc,addtime desc,id desc';
$ot = $this->frparam('orders') ? $this->frparam('orders') : $res['orderstype'];
switch($ot){
case 1:
$orders = 'orders desc,addtime desc,id desc';
break;
case 2:
$orders = 'orders desc,id asc';
break;
case 3:
$orders = 'orders asc';
break;
case 4:
$orders = 'addtime desc';
break;
case 5:
$orders = 'id asc';
break;
case 6:
$orders = 'hits desc';
break;
case 7:
$orders = 'addtime asc';
break;
}
$this->currentpage = $this->frpage;
$data = $page->where($sql)->orderby($orders)->limit($limit)->page($this->frpage)->go();
$pages = $page->pageList(3,'-page-');
$this->pages = $pages;//组合分页
foreach($data as $k=>$v){
$data[$k]['url'] = gourl($v,$v['htmlurl']);
}
$this->type = $res;
$this->lists = $data;//列表数据
$this->sum = $page->sum;//总数据
$this->listpage = $page->listpage;//分页数组-自定义分页可用
$this->prevpage = $page->prevpage;//上一页
$this->nextpage = $page->nextpage;//下一页
$this->allpage = $page->allpage;//总页数
if($this->frparam('ajax') && $this->webconf['isajax']){
if($this->frparam('ajax_tpl',1)){
$this->display($this->template.'/'.$res['molds'].'/screen_list_'.$res['lists_html']);
exit;
}
JsonReturn(['code'=>0,'data'=>$data,'sum'=>$this->sum,'allpage'=>$this->allpage,'listpage'=>$this->listpage]);
}
$this->display($this->template.'/'.$res['molds'].'/'.$res['lists_html']);
}
<?php
// +----------------------------------------------------------------------
// | JiZhiCMS { 极致CMS,给您极致的建站体验 }
// +----------------------------------------------------------------------
// | Copyright (c) 2018-2099 http://www.jizhicms.com All rights reserved.
// +----------------------------------------------------------------------
// | Author: 留恋风 <2581047041@qq.com>
// +----------------------------------------------------------------------
// | Date:2019/08
// +----------------------------------------------------------------------
namespace app\home\c;
use frphp\extend\Page;
class ScreenController extends CommonController
{
function index(){
$cache_file = APP_PATH.'cache/data/'.md5(REQUEST_URI);
$this->cache_file = $cache_file;
if(!$this->frparam('ajax')){
$this->start_cache($cache_file);
}
//检测三个参数是否存在
if(!$this->frparam('molds',1) || !$this->frparam('tid') || !$this->frparam('jz_screen',1)){
$this->error(JZLANG('参数错误!'));
}
if(!M('molds')->find(['biaoshi'=>$this->frparam('molds',1)])){
$this->error(JZLANG('非法参数!'));
}
if(!isset($_SESSION['screen'])){
$_SESSION['screen'] = [];
}
$session_screen = $_SESSION['screen'];
//查询扩展字段
$fields = M('fields')->findAll(['molds'=>$this->frparam('molds',1)]);
$newfield = [];
foreach($fields as $k=>$v){
$newfield[$v['field']] = $v;
}
$res = M('classtype')->find(array('id'=>$this->frparam('tid')));
//面包屑导航
$classtypetree = array_reverse($this->classtypetree);
$isgo = false;
$newarray = [];
$parent = [];//标记父类
$istop = false;
foreach($classtypetree as $k=>$v){
if($v['id']==$res['id'] && !$isgo){
$isgo = true;
$res['level'] = $v['level'];
$newarray[]=$v;
}
if($v['id']==$res['id'] && $v['level']==0){
break;
}
if($v['level']==0 && $v['id']!=$res['id'] && $v['id']!=$res['pid']){
if(!$istop && $isgo && $parent['level']!=0){
$newarray[]=$v;
$istop = true;
}
$isgo = false;
}
if($isgo && $v['id']!=$res['id'] && $res['level']>$v['level'] ){
if($parent['pid']){
if($parent['level']>$v['level'] && $parent['pid']!=$v['pid']){
$newarray[]=$v;
$parent = $v;
}
}else{
$newarray[]=$v;
$parent = $v;
}
}
}
$newarray2 = array_reverse($newarray);
$positions='<a href="'.get_domain().'">'.JZLANG('首页').'</a>';
foreach($newarray2 as $v){
$positions.=' &gt; <a href="'.$v['url'].'">'.$v['classname'].'</a>';
}
$this->positions_data = $newarray2;
$this->positions = $positions;
//解析jz_screen
//检测是否有page分页参数
$this->frpage = 1;
if(strpos($this->frparam('jz_screen',1),'page')!==false){
$jz_screen_arr = explode('-page-',$this->frparam('jz_screen',1));
$jz_screen = explode('-',$jz_screen_arr[0]);
$this->frpage = (int)$jz_screen_arr[1];
}else{
$jz_screen = explode('-',$this->frparam('jz_screen',1));
}
if($this->frparam('page')){
$this->frpage = $this->frparam('page');
}
$jz_screen_key = [];
$jz_screen_value = [];
foreach($jz_screen as $k=>$v){
if($k%2==0){
$jz_screen_key[]=$v;
}else{
$jz_screen_value[]=$v;
}
}
$screen = array_combine($jz_screen_key,$jz_screen_value);
foreach($screen as $k=>$v){
if($v==0 || $v==''){
if(isset($session_screen[$k])){
unset($session_screen[$k]);
}
}else{
$session_screen[$k] = $v;
}
}
$sql = '1=1 and isshow=1';
//组合搜索内容
foreach($session_screen as $k=>$v){
if(!array_key_exists($k,$newfield)){
continue;
}
if($newfield[$k]['fieldtype']==7 || $newfield[$k]['fieldtype']==12){
//单选字段
//多选框判断
if(strpos($v,',')!==false){
$vv = explode(',',$v);
$vv_arr = [];
foreach($vv as $vs){
$vv_arr[]=" ".$k."='".$vs."' ";
}
$sql.=" and (".implode(' or ',$vv_arr).") ";
$vv = null;
$vv_arr = null;
}else{
$sql.=" and ".$k."='".$v."' ";
}
}else{
//多选字段
if(strpos($v,',')!==false){
$vv = explode(',',$v);
$vv_arr = [];
foreach($vv as $vs){
$vv_arr[]=" ".$k." like '%,".$vs.",%' ";
}
$sql.=" and (".implode(' or ',$vv_arr).") ";
$vv = null;
$vv_arr = null;
}else{
$sql.=" and ".$k." like '%,".$v.",%' ";
}
}
}
$this->filters = $session_screen;
//dump($session_screen);
$_SESSION['screen'] = $session_screen;
$molds = $this->frparam('molds',1);
$sql .= ' and tid in ('.implode(',',$this->classtypedata[$res['id']]['children']['ids']).') ';
$page = new Page($molds);
//手动设置分页条数
$limit = $res['lists_num'];
if($this->frparam('limit')){
$limit = $this->frparam('limit');
}
//echo $sql;
//筛选分页的特殊性
$page->typeurl = 'screen';
$orders = 'orders desc,addtime desc,id desc';
$ot = $this->frparam('orders') ? $this->frparam('orders') : $res['orderstype'];
switch($ot){
case 1:
$orders = 'orders desc,addtime desc,id desc';
break;
case 2:
$orders = 'orders desc,id asc';
break;
case 3:
$orders = 'orders asc';
break;
case 4:
$orders = 'addtime desc';
break;
case 5:
$orders = 'id asc';
break;
case 6:
$orders = 'hits desc';
break;
case 7:
$orders = 'addtime asc';
break;
}
$this->currentpage = $this->frpage;
$data = $page->where($sql)->orderby($orders)->limit($limit)->page($this->frpage)->go();
$pages = $page->pageList(3,'-page-');
$this->pages = $pages;//组合分页
foreach($data as $k=>$v){
$data[$k]['url'] = gourl($v,$v['htmlurl']);
}
$this->type = $res;
$this->lists = $data;//列表数据
$this->sum = $page->sum;//总数据
$this->listpage = $page->listpage;//分页数组-自定义分页可用
$this->prevpage = $page->prevpage;//上一页
$this->nextpage = $page->nextpage;//下一页
$this->allpage = $page->allpage;//总页数
if($this->frparam('ajax') && $this->webconf['isajax']){
if($this->frparam('ajax_tpl',1)){
$this->display($this->template.'/'.$res['molds'].'/screen_list_'.$res['lists_html']);
exit;
}
JsonReturn(['code'=>0,'data'=>$data,'sum'=>$this->sum,'allpage'=>$this->allpage,'listpage'=>$this->listpage]);
}
$this->display($this->template.'/'.$res['molds'].'/'.$res['lists_html']);
if(!$this->frparam('ajax')){
$this->end_cache($this->cache_file);
}
}
//开启检查缓存
function start_cache($cache_file){
$cache_file = $cache_file.'_'.$this->template.'.php';
$cache_num = (int)$this->webconf['cachefilenum'];
if($cache_num){
$cache_file_list = getCache('cache_list');
$cache_file_list = $cache_file_list ?: [];
$n = count($cache_file_list);
$cache_num = $cache_num<=500 ?: 500;
if($n && $n>$cache_num ){
$del = array_slice($cache_file_list,0,$n-$cache_num);
$cache_file_list = array_slice($cache_file_list,$n-$cache_num);
foreach($del as $v){
unlink($v);
}
}
$cache_file_list[] = $cache_file;
setCache('cache_list',$cache_file_list);
}
if($this->webconf['iscachepage']==1){
if(file_exists($cache_file)){
//获取当前时间戳
$now_time = time();
//获取缓存文件时间戳
$last_time = filemtime($cache_file);
//如果缓存文件生成超过指定的时间直接删除文件
if((($now_time - $last_time)/60)>$this->webconf['cache_time']){
unlink($cache_file);
}else{
//有缓存文件直接调用
$content = file_get_contents($cache_file);
echo substr($content,14);
exit;
}
}
}
//开启缓存
ob_start();
}
//结束缓存
function end_cache($cache_file){
$cache_file = $cache_file.'_'.$this->template.'.php';
//获取缓存
$content = ob_get_contents();
if($this->webconf['isautohtml']==1){
$filepath = substr($_SERVER["REQUEST_URI"],1,strlen($_SERVER["REQUEST_URI"])-1);
$file = APP_PATH.$filepath;
if(strpos($filepath,'/')!==false){
$filepath = explode('/',$filepath);
array_pop($filepath);
$create_dir = APP_PATH;
foreach($filepath as $vv){
$create_dir.=$vv;
if(!is_dir($create_dir)){
$r = mkdir($create_dir,0777,true);
if(!$r){
echo JZLANG('系统创建').' [ '.str_replace('/','\\',$create_dir).' ] '.JZLANG('目录失败!');exit;
}
}
$create_dir.='/';
}
}
if(strpos($file,'.html')===false){
$file.='index.html';
}
$fp = fopen($file,'w');
fwrite($fp,$content);
fclose($fp);
}
if($this->webconf['iscachepage']==1){
//写入到缓存内容到指定的文件夹
$content ='<?php die();?>'.$content;
$fp = fopen($cache_file,'w');
fwrite($fp,$content);
fclose($fp);
}
ob_flush();
flush();
ob_end_clean();
exit;
}
}
\ No newline at end of file
<?php
// +----------------------------------------------------------------------
// | JiZhiCMS { 极致CMS,给您极致的建站体验 }
// +----------------------------------------------------------------------
// | Copyright (c) 2018-2099 http://www.jizhicms.com All rights reserved.
// +----------------------------------------------------------------------
// | Author: 留恋风 <2581047041@qq.com>
// +----------------------------------------------------------------------
// | Date:2019/10/18
// +----------------------------------------------------------------------
namespace app\home\c;
use frphp\extend\Page;
use FrPHP\Extend\ArrayPage;
class TagsController extends CommonController
{
function index(){
$keywords = $this->frparam('tagname',1);
$id = $this->frparam('id');
if($keywords || $id){
if($id){
$keywords = M('tags')->getField(['id'=>$id,'isshow'=>1],'keywords');
if(!$keywords){
Error(JZLANG('标签未找到或已删除!'));
}
}
$this->tagname = $keywords;
$sql = "keywords='".$keywords."' and isshow=1 ";
$this->tags = M('tags')->find($sql);
if(!$this->tags){
Error(JZLANG('标签未找到或已删除!'));
}
$tables = isset($this->webconf['tag_table']) ? ($this->webconf['tag_table'] ? explode('|',$this->webconf['tag_table']) : ['article','product']) : ['article','product'];
$sqlx = [];
$sqln = [];
foreach($tables as $v){
$sqlx[] = " select id,tid,litpic,title,hits,tags,keywords,molds,htmlurl,ownurl,description,addtime,userid,member_id from ".DB_PREFIX.$v." where tags like '%,".$keywords.",%' and isshow=1 ";
$sqln[] = " select id from ".DB_PREFIX.$v." where tags like '%,".$keywords.",%' and isshow=1 ";
}
$sql = implode(' union all ',$sqlx);
$sqln = implode(' union all ',$sqln);
$page = new Page();
$this->currentpage = $this->frpage;
$data = $page->where($sql)->limit($this->frparam('limit',0,15))->page($this->frpage)->goCount($sqln)->goSql();
foreach($data as $k=>$v){
$data[$k]['url'] = gourl($v,$v['htmlurl']);
$data[$k]['classname'] = $this->classtypedata[$v['tid']]['classname'];
}
$pages = $page->pageList(5,'/page/');
$this->pages = $pages;//组合分页
$this->lists = $data;//列表数据
$this->sum = $page->sum;//总数据
$this->listpage = $page->listpage;//分页数组-自定义分页可用
$this->prevpage = $page->prevpage;//上一页
$this->nextpage = $page->nextpage;//下一页
$this->allpage = $page->allpage;//总页数
if($this->frparam('ajax')){
if($this->frparam('ajax_tpl')){
$this->display($this->template.'/ajax_tags_list');
exit;
}
JsonReturn(['code'=>0,'data'=>$data]);
}
$this->display($this->template.'/tags-details');
}else{
$sql = ' isshow=1 ';
$page = new Page('tags');
//手动设置分页条数
$limit = 50;
if($this->frparam('limit')){
$limit = $this->frparam('limit');
}
//只适合article和product
$data = $page->where($sql)->orderby('orders desc,id desc')->limit($limit)->page($this->frpage)->go();
$pages = $page->pageList(5,'/page/');
$this->pages = $pages;//组合分页
foreach($data as $k=>$v){
$data[$k]['url'] = U('tags/index',['id'=>$v['id']]);
}
$this->lists = $data;//列表数据
$this->sum = $page->sum;//总数据
$this->listpage = $page->listpage;//分页数组-自定义分页可用
$this->prevpage = $page->prevpage;//上一页
$this->nextpage = $page->nextpage;//下一页
$this->allpage = $page->allpage;//总页数
$this->display($this->template.'/tags');
}
}
<?php
// +----------------------------------------------------------------------
// | JiZhiCMS { 极致CMS,给您极致的建站体验 }
// +----------------------------------------------------------------------
// | Copyright (c) 2018-2099 http://www.jizhicms.com All rights reserved.
// +----------------------------------------------------------------------
// | Author: 留恋风 <2581047041@qq.com>
// +----------------------------------------------------------------------
// | Date:2019/10/18
// +----------------------------------------------------------------------
namespace app\home\c;
use frphp\extend\Page;
use FrPHP\Extend\ArrayPage;
class TagsController extends CommonController
{
function index(){
$cache_file = APP_PATH.'cache/data/'.md5(REQUEST_URI);
$this->cache_file = $cache_file;
if(!$this->frparam('ajax')){
$this->start_cache($cache_file);
}
$keywords = $this->frparam('tagname',1);
$id = $this->frparam('id');
if($keywords || $id){
if($id){
$keywords = M('tags')->getField(['id'=>$id,'isshow'=>1],'keywords');
if(!$keywords){
Error(JZLANG('标签未找到或已删除!'));
}
}
$this->tagname = $keywords;
$sql = "keywords='".$keywords."' and isshow=1 ";
$this->tags = M('tags')->find($sql);
if(!$this->tags){
Error(JZLANG('标签未找到或已删除!'));
}
$tables = isset($this->webconf['tag_table']) ? ($this->webconf['tag_table'] ? explode('|',$this->webconf['tag_table']) : ['article','product']) : ['article','product'];
$sqlx = [];
$sqln = [];
foreach($tables as $v){
$sqlx[] = " select id,tid,litpic,title,hits,tags,keywords,molds,htmlurl,ownurl,description,addtime,userid,member_id from ".DB_PREFIX.$v." where tags like '%,".$keywords.",%' and isshow=1 ";
$sqln[] = " select id from ".DB_PREFIX.$v." where tags like '%,".$keywords.",%' and isshow=1 ";
}
$sql = implode(' union all ',$sqlx);
$sqln = implode(' union all ',$sqln);
$page = new Page();
$this->currentpage = $this->frpage;
$data = $page->where($sql)->limit($this->frparam('limit',0,15))->page($this->frpage)->goCount($sqln)->goSql();
foreach($data as $k=>$v){
$data[$k]['url'] = gourl($v,$v['htmlurl']);
$data[$k]['classname'] = $this->classtypedata[$v['tid']]['classname'];
}
$pages = $page->pageList(5,'/page/');
$this->pages = $pages;//组合分页
$this->lists = $data;//列表数据
$this->sum = $page->sum;//总数据
$this->listpage = $page->listpage;//分页数组-自定义分页可用
$this->prevpage = $page->prevpage;//上一页
$this->nextpage = $page->nextpage;//下一页
$this->allpage = $page->allpage;//总页数
if($this->frparam('ajax')){
if($this->frparam('ajax_tpl')){
$this->display($this->template.'/ajax_tags_list');
exit;
}
JsonReturn(['code'=>0,'data'=>$data]);
}
$this->display($this->template.'/tags-details');
if(!$this->frparam('ajax')){
$this->end_cache($this->cache_file);
}
}else{
$sql = ' isshow=1 ';
$page = new Page('tags');
//手动设置分页条数
$limit = 50;
if($this->frparam('limit')){
$limit = $this->frparam('limit');
}
//只适合article和product
$data = $page->where($sql)->orderby('orders desc,id desc')->limit($limit)->page($this->frpage)->go();
$pages = $page->pageList(5,'/page/');
$this->pages = $pages;//组合分页
foreach($data as $k=>$v){
$data[$k]['url'] = U('tags/index',['id'=>$v['id']]);
}
if($this->frparam('ajax')){
JsonReturn(['code'=>0,'data'=>$data]);
}
$this->lists = $data;//列表数据
$this->sum = $page->sum;//总数据
$this->listpage = $page->listpage;//分页数组-自定义分页可用
$this->prevpage = $page->prevpage;//上一页
$this->nextpage = $page->nextpage;//下一页
$this->allpage = $page->allpage;//总页数
$this->display($this->template.'/tags');
if(!$this->frparam('ajax')){
$this->end_cache($this->cache_file);
}
}
}
//开启检查缓存
function start_cache($cache_file){
$cache_file = $cache_file.'_'.$this->template.'.php';
$cache_num = (int)$this->webconf['cachefilenum'];
if($cache_num){
$cache_file_list = getCache('cache_list');
$cache_file_list = $cache_file_list ?: [];
$n = count($cache_file_list);
$cache_num = $cache_num<=500 ?: 500;
if($n && $n>$cache_num ){
$del = array_slice($cache_file_list,0,$n-$cache_num);
$cache_file_list = array_slice($cache_file_list,$n-$cache_num);
foreach($del as $v){
unlink($v);
}
}
$cache_file_list[] = $cache_file;
setCache('cache_list',$cache_file_list);
}
if($this->webconf['iscachepage']==1){
if(file_exists($cache_file)){
//获取当前时间戳
$now_time = time();
//获取缓存文件时间戳
$last_time = filemtime($cache_file);
//如果缓存文件生成超过指定的时间直接删除文件
if((($now_time - $last_time)/60)>$this->webconf['cache_time']){
unlink($cache_file);
}else{
//有缓存文件直接调用
$content = file_get_contents($cache_file);
echo substr($content,14);
exit;
}
}
}
//开启缓存
ob_start();
}
//结束缓存
function end_cache($cache_file){
$cache_file = $cache_file.'_'.$this->template.'.php';
//获取缓存
$content = ob_get_contents();
if($this->webconf['isautohtml']==1){
$filepath = substr($_SERVER["REQUEST_URI"],1,strlen($_SERVER["REQUEST_URI"])-1);
$file = APP_PATH.$filepath;
if(strpos($filepath,'/')!==false){
$filepath = explode('/',$filepath);
array_pop($filepath);
$create_dir = APP_PATH;
foreach($filepath as $vv){
$create_dir.=$vv;
if(!is_dir($create_dir)){
$r = mkdir($create_dir,0777,true);
if(!$r){
echo JZLANG('系统创建').' [ '.str_replace('/','\\',$create_dir).' ] '.JZLANG('目录失败!');exit;
}
}
$create_dir.='/';
}
}
if(strpos($file,'.html')===false){
$file.='index.html';
}
$fp = fopen($file,'w');
fwrite($fp,$content);
fclose($fp);
}
if($this->webconf['iscachepage']==1){
//写入到缓存内容到指定的文件夹
$content ='<?php die();?>'.$content;
$fp = fopen($cache_file,'w');
fwrite($fp,$content);
fclose($fp);
}
ob_flush();
flush();
ob_end_clean();
exit;
}
}
\ No newline at end of file
......@@ -1286,7 +1286,7 @@ INSERT INTO `jz_ruler` (`id`,`name`,`fc`,`pid`,`isdesktop`,`sys`) VALUES ('245',
-- ----------------------------
-- Records of jz_sysconfig
-- ----------------------------
INSERT INTO `jz_sysconfig` (`id`,`field`,`title`,`tip`,`type`,`data`,`typeid`,`config`,`orders`,`sys`) VALUES ('1','web_version','系统版号','版本号是系统自带,请勿改动','0','2.4.4','0', NULL,'0','1');
INSERT INTO `jz_sysconfig` (`id`,`field`,`title`,`tip`,`type`,`data`,`typeid`,`config`,`orders`,`sys`) VALUES ('1','web_version','系统版号','版本号是系统自带,请勿改动','0','2.4.5','0', NULL,'0','1');
INSERT INTO `jz_sysconfig` (`id`,`field`,`title`,`tip`,`type`,`data`,`typeid`,`config`,`orders`,`sys`) VALUES ('2','web_name','网站SEO名称','控制在25个字、50个字节以内','2','极致CMS建站系统','1', NULL,'0','1');
INSERT INTO `jz_sysconfig` (`id`,`field`,`title`,`tip`,`type`,`data`,`typeid`,`config`,`orders`,`sys`) VALUES ('3','web_keyword','网站SEO关键词','5个左右,8汉字以内,用英文逗号隔开','2','极致建站,cms,开源cms,免费cms,cms系统,phpcms,免费企业建站,建站系统,企业cms,jizhicms,极致cms,建站cms,建站系统,极致博客,极致blog,内容管理系统','1', NULL,'0','1');
INSERT INTO `jz_sysconfig` (`id`,`field`,`title`,`tip`,`type`,`data`,`typeid`,`config`,`orders`,`sys`) VALUES ('4','web_desc','网站SEO描述','控制在80个汉字,160个字符以内','3','极致CMS是开源免费的PHPCMS网站内容管理系统,无商业授权,简单易用,提供丰富的插件,帮您实现零基础搭建不同类型网站(企业站,门户站,个人博客站等),是您建站的好帮手。极速建站,就选极致CMS。','1', NULL,'0','1');
......@@ -1410,6 +1410,7 @@ INSERT INTO `jz_sysconfig` (`id`,`field`,`title`,`tip`,`type`,`data`,`typeid`,`c
INSERT INTO `jz_sysconfig` (`id`,`field`,`title`,`tip`,`type`,`data`,`typeid`,`config`,`orders`,`sys`) VALUES ('132','classtypemaxlevel','栏目全局递归','默认开启,栏目超过20个,请关闭此选项,有一定程度提升访问速度!','6','0','2','开启=1,关闭=0','1','1');
INSERT INTO `jz_sysconfig` (`id`,`field`,`title`,`tip`,`type`,`data`,`typeid`,`config`,`orders`,`sys`) VALUES ('133','hidetitleonliy','字段重复检测', '将【模块标识-检测字段】填写进去,用|进行分割,将会进行标题重复检测。如:article-title|product-title','2','article-title|product-title','2', NULL,'0','1');
INSERT INTO `jz_sysconfig` (`id`,`field`,`title`,`tip`,`type`,`data`,`typeid`,`config`,`orders`,`sys`) VALUES ('134','onlyuserupload','会员上传限制','开启后,仅会员才可以上传!受会员上传大小限制!','6','1','2','开启=1,关闭=0','1','1');
INSERT INTO `jz_sysconfig` (`id`,`field`,`title`,`tip`,`type`,`data`,`typeid`,`config`,`orders`,`sys`) VALUES ('135','cachefilenum','缓存文件数','0表示不限制,最大不超过500','2','100','2',null,0,'1');
-- ----------------------------
-- Records of jz_tags
-- ----------------------------
......
......@@ -1391,7 +1391,7 @@ INSERT INTO `jz_shouchang` (`id`,`tid`,`aid`,`userid`,`addtime`) VALUES ('4','7'
-- ----------------------------
-- Records of jz_sysconfig
-- ----------------------------
INSERT INTO `jz_sysconfig` (`id`,`field`,`title`,`tip`,`type`,`data`,`typeid`,`config`,`orders`,`sys`) VALUES ('1','web_version','系统版号','版本号是系统自带,请勿改动','0','2.4.4','0', NULL,'0','1');
INSERT INTO `jz_sysconfig` (`id`,`field`,`title`,`tip`,`type`,`data`,`typeid`,`config`,`orders`,`sys`) VALUES ('1','web_version','系统版号','版本号是系统自带,请勿改动','0','2.4.5','0', NULL,'0','1');
INSERT INTO `jz_sysconfig` (`id`,`field`,`title`,`tip`,`type`,`data`,`typeid`,`config`,`orders`,`sys`) VALUES ('2','web_name','网站SEO名称','控制在25个字、50个字节以内','2','极致CMS建站系统','1', NULL,'0','1');
INSERT INTO `jz_sysconfig` (`id`,`field`,`title`,`tip`,`type`,`data`,`typeid`,`config`,`orders`,`sys`) VALUES ('3','web_keyword','网站SEO关键词','5个左右,8汉字以内,用英文逗号隔开','2','极致建站,cms,开源cms,免费cms,cms系统,phpcms,免费企业建站,建站系统,企业cms,jizhicms,极致cms,建站cms,建站系统,极致博客,极致blog,内容管理系统','1', NULL,'0','1');
INSERT INTO `jz_sysconfig` (`id`,`field`,`title`,`tip`,`type`,`data`,`typeid`,`config`,`orders`,`sys`) VALUES ('4','web_desc','网站SEO描述','控制在80个汉字,160个字符以内','3','极致CMS是开源免费的PHPCMS网站内容管理系统,无商业授权,简单易用,提供丰富的插件,帮您实现零基础搭建不同类型网站(企业站,门户站,个人博客站等),是您建站的好帮手。极速建站,就选极致CMS。','1', NULL,'0','1');
......@@ -1515,6 +1515,7 @@ INSERT INTO `jz_sysconfig` (`id`,`field`,`title`,`tip`,`type`,`data`,`typeid`,`c
INSERT INTO `jz_sysconfig` (`id`,`field`,`title`,`tip`,`type`,`data`,`typeid`,`config`,`orders`,`sys`) VALUES ('132','classtypemaxlevel','栏目全局递归','默认开启,栏目超过20个,请关闭此选项,有一定程度提升访问速度!','6','0','2','开启=1,关闭=0','1','1');
INSERT INTO `jz_sysconfig` (`id`,`field`,`title`,`tip`,`type`,`data`,`typeid`,`config`,`orders`,`sys`) VALUES ('133','hidetitleonliy','字段重复检测', '将【模块标识-检测字段】填写进去,用|进行分割,将会进行标题重复检测。如:article-title|product-title','2','article-title|product-title','2', NULL,'0','1');
INSERT INTO `jz_sysconfig` (`id`,`field`,`title`,`tip`,`type`,`data`,`typeid`,`config`,`orders`,`sys`) VALUES ('134','onlyuserupload','会员上传限制','开启后,仅会员才可以上传!受会员上传大小限制!','6','1','2','开启=1,关闭=0','1','1');
INSERT INTO `jz_sysconfig` (`id`,`field`,`title`,`tip`,`type`,`data`,`typeid`,`config`,`orders`,`sys`) VALUES ('135','cachefilenum','缓存文件数','0表示不限制,最大不超过500','2','100','2',null,0,'1');
-- ----------------------------
-- Records of jz_tags
-- ----------------------------
......
极致CMS 2.4.4 release
极致CMS 2.4.5 release
更新时间:2023-02-18
更新内容如下:
1. 百度编辑器安全问题
2. 优化系统缓存
极致CMS 2.4.4 release
更新时间:2023-01-04
更新内容如下:
1. 优化生成xml网站地图功能
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册