分类 帝国CMS 下的文章

帝国cms编辑器远程保存图片无效,原因:http网站采集不支持https图片

一个用帝国CMS7.2搭建的新网站,发布文章时,勾选了编辑器下方的“远程保存图片”,无效果,没有正常远程下载服务器到服务器中,编辑器中的图片绝对地址也没有变成相应的相对地址。

经过检查,原来是当前站点是http,而要远程下载的图片地址是https,如果改成http协议的图片地址,就能正常远程下载。在帝国cms官方论坛查询了下,有网友提出:远程保存图片不支持https,需要php开启ssl模块。

打开文件/e/class/connect.php:第一步:在connect.php文件最上面,<?php下面添加以下函数:

function getHTTPS($url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_REFERER, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
}

阅读剩余部分

帝国cms删除文章时不要删除该文章上传的附件

当一篇文章上传的图片附件被多个文章引用时,如果删除了这篇文章,对应的附件也一并删除后,会造成其他引用这些图片的文章显示错误图片。

在某些特殊场景下,我们需要修改下帝国cms,删除文章时,不再删除该文章上传的附件。

打开/e/class/functions.php,搜索:function DelNewsTheFile,把里面的删除附件功能注释掉即可:

function DelNewsTheFile($id,$classid,$fstb='1',$delpl=0,$restb='1'){
    global $empire,$dbtbpre;
    if(empty($id))
    {
        return "";
    }
    // $pubid=ReturnInfoPubid($classid,$id);
    // $i=0;
    // $sql=$empire->query("select classid,filename,path,fpath from {$dbtbpre}enewsfile_{$fstb} where pubid='$pubid'");
    // while($r=$empire->fetch($sql))
    // {
    //     $i=1;
    //     DoDelFile($r);
    // }
    // if($i)
    // {
    //     $empire->query("delete from {$dbtbpre}enewsfile_{$fstb} where pubid='$pubid'");
    // }
    // //删除评论
    // if($delpl==0)
    // {
    //     $empire->query("delete from {$dbtbpre}enewspl_{$restb} where pubid='$pubid'");
    // }
}

阅读剩余部分

帝国CMS列表模板和内容模板过滤smalltext简介中的空格、换行

帝国CMS的内容简介如果采取自动生成的方式,会产生空格、换行,这种数据读取到页面上肯定是不行的,必须过滤处理。
帝国CMSsmalltext简介.png

一,内容模板使用以下代码,可过滤smalltext简介中的空格、换行:

<?
$qian=array(" "," ","t","n","r");
$hou=array("","","","","");
$smalltext=str_replace($qian,$hou,$navinfor[smalltext]);
echo $smalltext;
?>

阅读剩余部分

帝国CMS全站改造HTTPS思路步骤

本人是帝国CMS7.2,其他版本也可以参考此步骤。
1,操作之前,做一个全站的快照备份,并备注好说明。

2,在帝国CMS后台,把当前模板组导出来,类似文件e1562662986.temp,然后用编辑器打开,将涉及到本站域名的http批量修改为https,然后再导入覆盖

3,找到当前模板下的css,js文件,用编辑器打开,将涉及到本站域名的http批量修改为https

4,在友情链接表phome_enewslink中,将涉及到本站域名的http批量修改为https

5,内容关键字表phome_enewskey中,将涉及到本站域名的http批量修改为https

6,phome_ecms_news表中,检查titlepic字段值,将涉及到本站域名的http批量修改为https

7,phome_ecms_news_data_1~N表中,将涉及到本站域名的http批量修改为https(文章量较多时,一般都有很多文章中写死的内链接)

阅读剩余部分

帝国CMS屏蔽在/d/file/附件文件夹下创建栏目目录的方法

如果网站的栏目较多,图片上传保存的文件夹是不太适合存在栏目目录下的,我喜欢存在/d/file/Y-m/,放在统一的文件夹下,而且按年月目录存放,设置如下:
帝国CMS屏蔽在/d/file/附件文件夹下创建栏目目录的方法

但是有一个问题就是,每次在后台执行 “数据更新 → 恢复栏目目录” 时,程序就会自动在/d/file/附件文件夹下创建网站的所有栏目目录,尤其是当网站栏目很多时,就会造成大量的空目录。

当然你可以不管他,但我有洁癖,看不得那些毫无意义的空目录,屏蔽生成的方法如下:

阅读剩余部分