网站内容自动更新(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 }

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线