最近有客户要求
易优cms网站
转换成
帝国cms系统,前端模板仿站很简单,难点是易优后台数据转换到帝国cms的数据库,然后让帝国cms网站的前台url保持和之前一样。因为没有现成的易优cms转换帝国cms的插件工具,所以我花了几天时间终于用一种变通的方法实现了url不变的效果。
具体的思路一句话概括,用帝国cms后台的
采集功能直接采集原网站的文章,但采集后文章的文件名(filename)字段是从1开始创建的,生成的内容页url就是从1.html开始的链接,而不能和原网站url相同,所以我们可以先在帝国cms数据表中创建一个字段保存原内容页id,例如叫artid字段,采集文章时,把原网站内容页的id保存到artid中,然后再用sql命令在数据库中,把artid赋值给filename字段,这样再生成的新内容页地址就和原网站地址相同了。
具体操作如下:
1、易优cms网站是:www.aaa.com,列表页www.aaa.com/aaa/ ,内容页www.aaa.com/aaa/(这里是文章id).html
我们用帝国cms搭建网站:www.bbb.com,列表页www.bbb.com/aaa/,内容页www.bbb.com/aaa/(这里是文章文件名filename).html ,这里可以看出难点就是B站内容页的filename要和A站的文章id一致。
2、我们在A站内容页模板中,添加一个标签显示当前内容页的id,如下图,这个就是用来让B站来采集的。调用易优文章id的标签:<span class="artid">{$eyou.field.aid}</span>
3、我们在B站相应数据表中创建保存A站文章id的字段artid,如下图:
4、B站用帝国cms后台的采集功能采集A站的文章,采集的时候,注意要采集A站的文章id。(这里不教
帝国cms采集,请自己百度)
5、B站采集文章后,采集的内容id和文件名是不一致的,如下图:
6、用sql命令把内容id赋值给文件名
UPDATE phome_ecms_news SET filename = artid;
7、完成上面这一步后,还需要清理缓存重新生成页面。如下图:
完成上面步骤后,B站的内容url就和A站的内容url完全一致了。
这种方法其实就是用采集的方法给网站更换成帝国cms系统,所以可以通用于大多数系统转换成帝国cms。
--------------------------------
后记:用上面这种方法,也可以采集其他字段,例如帝国cms默认的采集功能中是不能采集关键词字段的,我们就可以先创建自定义字段guanjianci,采集数据后,再用sql语句把字段内容赋值给默认的关键词字段,sql命令如下:
UPDATE phome_ecms_news SET keyboard = guanjianci;