网站内容自动更新(APP_PATH改为‘/’即可修改栏目的优化方法 )
优采云 发布时间: 2022-01-12 06:07网站内容自动更新(APP_PATH改为‘/’即可修改栏目的优化方法
)
1、使用动态方式获取域名链接,而不是生成静态index.html访问,只要将域名绑定到根目录,就可以自动获取域名,所以我们可以省去麻烦现在,找到模块/内容
/index.php 找到__construct函数,在末尾添加如下代码:
1 function __construct() {
2 $this->db = pc_base::load_model('content_model');
3 $this->_userid = param::get_cookie('_userid');
4 $this->_username = param::get_cookie('_username');
5 $this->_groupid = param::get_cookie('_groupid');
6 //动态获取域名链接 start by DongGe 2016-06-17
7 $sitelist = getcache('sitelist','commons');
8 foreach($sitelist as $siteinfo){
9 if($siteinfo['domain']=='http://'.$_SERVER['HTTP_HOST'].'/'){
10 $this->siteid =$siteinfo['siteid'];
11 }
12 }
13 /***end 2016-06-17**/
14 }
2、做完第一步,我们的步骤还没有完成,还要修改列的url获取的优化,找到
Modules/admin/category.php 在修复函数中找到$url = APP_PATH.$url;删除代码或评论它
1 /**
2 * 修复栏目数据
3 */
4 private function repair() {
5 pc_base::load_sys_func('iconv');
6 @set_time_limit(600);
7 $html_root = pc_base::load_config('system','html_root');
8 $this->categorys = $categorys = array();
9 $this->categorys = $categorys = $this->db->select(array('siteid'=>$this->siteid,'module'=>'content'), '*', '', 'listorder ASC, catid ASC', '', 'catid');
10
11 $this->get_categorys($categorys);
12 if(is_array($this->categorys)) {
13 foreach($this->categorys as $catid => $cat) {
14 if($cat['type'] == 2) continue;
15 $arrparentid = $this->get_arrparentid($catid);
16 $setting = string2array($cat['setting']);
17 $arrchildid = $this->get_arrchildid($catid);
18 $child = is_numeric($arrchildid) ? 0 : 1;
19 if($categorys[$catid]['arrparentid']!=$arrparentid || $categorys[$catid]['arrchildid']!=$arrchildid || $categorys[$catid]['child']!=$child) $this->db->update(array('arrparentid'=>$arrparentid,'arrchildid'=>$arrchildid,'child'=>$child),array('catid'=>$catid));
20
21 $parentdir = $this->get_parentdir($catid);
22 $catname = $cat['catname'];
23 $letters = gbk_to_pinyin($catname);
24 $letter = strtolower(implode('', $letters));
25 $listorder = $cat['listorder'] ? $cat['listorder'] : $catid;
26
27 $this->sethtml = $setting['create_to_html_root'];
28 //检查是否生成到根目录
29 $this->get_sethtml($catid);
30 $sethtml = $this->sethtml ? 1 : 0;
31
32 if($setting['ishtml']) {
33 //生成静态时
34 $url = $this->update_url($catid);
35 if(!preg_match('/^(http|https):\/\//i', $url)) {
36 $url = $sethtml ? '/'.$url : $html_root.'/'.$url;
37 }
38 } else {
39 //不生成静态时
40 $url = $this->update_url($catid);
41 $url = '/'.$url;//$url = APP_PATH.$url;// note by DongGe 2016-06-17
42 }
43 if($cat['url']!=$url) $this->db->update(array('url'=>$url), array('catid'=>$catid));
44
45
46
47 if($categorys[$catid]['parentdir']!=$parentdir || $categorys[$catid]['sethtml']!=$sethtml || $categorys[$catid]['letter']!=$letter || $categorys[$catid]['listorder']!=$listorder) $this->db->update(array('parentdir'=>$parentdir,'sethtml'=>$sethtml,'letter'=>$letter,'listorder'=>$listorder), array('catid'=>$catid));
48 }
49 }
50
51 //删除在非正常显示的栏目
52 foreach($this->categorys as $catid => $cat) {
53 if($cat['parentid'] != 0 && !isset($this->categorys[$cat['parentid']])) {
54 $this->db->delete(array('catid'=>$catid));
55 }
56 }
57 return true;
58 }
3、为了避免根环域名后需要批量替换,我们需要进入后台进行设置,后台设置-基本设置-基本配置-附件URL访问路径,去掉网址部分
4.内容页面链接使用相对地址,不添加URL代码修改位置:modules/content/classes/
url.class.php 找到以下代码并将APP_PATH更改为'/':
1 /**
2 * 内容页链接
3 * @param $id 内容id
4 * @param $page 当前页
5 * @param $catid 栏目id
6 * @param $time 添加时间
7 * @param $prefix 前缀
8 * @param $data 数据
9 * @param $action 操作方法
10 * @param $upgrade 是否是升级数据
11 * @return array 0=>url , 1=>生成路径
12 */
13 public function show($id, $page = 0, $catid = 0, $time = 0, $prefix = '',$data = '',$action = 'edit',$upgrade = 0) {
14 $page = max($page,1);
15 $urls = $catdir = '';
16 $category = $this->categorys[$catid];
17 $setting = string2array($category['setting']);
18 $content_ishtml = $setting['content_ishtml'];
19 //当内容为转换或升级时
20 if($upgrade || (isset($_POST['upgrade']) && defined('IN_ADMIN') && $_POST['upgrade'])) {
21 if($_POST['upgrade']) $upgrade = $_POST['upgrade'];
22 $upgrade = '/'.ltrim($upgrade,WEB_PATH);
23 if($page==1) {
24 $url_arr[0] = $url_arr[1] = $upgrade;
25 } else {
26 $lasttext = strrchr($upgrade,'.');
27 $len = -strlen($lasttext);
28 $path = substr($upgrade,0,$len);
29 $url_arr[0] = $url_arr[1] = $path.'_'.$page.$lasttext;
30 }
31 } else {
32 $show_ruleid = $setting['show_ruleid'];
33 $urlrules = $this->urlrules[$show_ruleid];
34 if(!$time) $time = SYS_TIME;
35 $urlrules_arr = explode('|',$urlrules);
36 if($page==1) {
37 $urlrule = $urlrules_arr[0];
38 } else {
39 $urlrule = isset($urlrules_arr[1]) ? $urlrules_arr[1] : $urlrules_arr[0];
40 }
41 $domain_dir = '';
42 if (strpos($category['url'], '://')!==false && strpos($category['url'], '?')===false) {
43 if (preg_match('/^((http|https):\/\/)?([^\/]+)/i', $category['url'], $matches)) {
44 $match_url = $matches[0];
45 $url = $match_url.'/';
46 }
47 $db = pc_base::load_model('category_model');
48 $r = $db->get_one(array('url'=>$url), '`catid`');
49
50 if($r) $domain_dir = $this->get_categorydir($r['catid']).$this->categorys[$r['catid']]['catdir'].'/';
51 }
52 $categorydir = $this->get_categorydir($catid);
53 $catdir = $category['catdir'];
54 $year = date('Y',$time);
55 $month = date('m',$time);
56 $day = date('d',$time);
57
58 $urls = str_replace(array('{$categorydir}','{$catdir}','{$year}','{$month}','{$day}','{$catid}','{$id}','{$page}'),array($categorydir,$catdir,$year,$month,$day,$catid,$id,$page),$urlrule);
59 $create_to_html_root = $category['create_to_html_root'];
60
61 if($create_to_html_root || $category['sethtml']) {
62 $html_root = '';
63 } else {
64 $html_root = $this->html_root;
65 }
66 if($content_ishtml && $url) {
67 if ($domain_dir && $category['isdomain']) {
68 $url_arr[1] = $html_root.'/'.$domain_dir.$urls;
69 $url_arr[0] = $url.$urls;
70 } else {
71 $url_arr[1] = $html_root.'/'.$urls;
72 $url_arr[0] = WEB_PATH == '/' ? $match_url.$html_root.'/'.$urls : $match_url.rtrim(WEB_PATH,'/').$html_root.'/'.$urls;
73 }
74 } elseif($content_ishtml) {
75 $url_arr[0] = WEB_PATH == '/' ? $html_root.'/'.$urls : rtrim(WEB_PATH,'/').$html_root.'/'.$urls;
76 $url_arr[1] = $html_root.'/'.$urls;
77 } else {
78 //$url_arr[0] = $url_arr[1] = APP_PATH.$urls;
79 $url_arr[0] = $url_arr[1] = '/'.$urls;//modify by DongGe 2016-06-07
80 }
81 }
82 //生成静态 ,在添加文章的时候,同时生成静态,不在批量更新URL处调用
83 if($content_ishtml && $data) {
84 $data['id'] = $id;
85 $url_arr['content_ishtml'] = 1;
86 $url_arr['data'] = $data;
87 }
88 return $url_arr;
89 }