织梦栏目内容不显示
织梦cms5.7怎么转帝国cms后台?
织梦一张公告发出,根据DedeCMS授权协议,除个人非营利网站外,均需购买DedeCMS商业使用授权,授权费为人民币5800元。
看到这个公告说实话有些伤感,此处省略1万字...
好了,伤感归伤感,日子还得过下去,大款绕路。接下来介绍下DEDE CMS5.7转成帝国CMS的思路和方法。
首先,明确所有的转换只是数据转换,不影响百度收录。前端样式需要把织梦模板单独修改成帝国CMS模板。
接下来就讲讲常规的几种思路和方法。
1,采集法。就是利用帝国CMS的采集功能,直接采集对应目录下的内容。几乎都是可以采集得到的。把链接格式修改成一样,时间修改成一样,看着就一样。缺陷是影响收录。
2,数据库法。只是把织梦的数据库转移到帝国数据库上,与原来的一模一样,不影响收录。缺点是比较复杂,对代码和帝国不熟的站长来说,很难上手,要经过多次摔打才能成功,坚持,坚持就胜利!要是搞不定,也可以加我微信,我帮你搞。
数据库法,在帝国CMS论坛上有专门的帖子讲。我这就做个搬运工了。
1、用织梦转换帝国插件
2、转换思路:织梦5.7直接转到帝国6.6,之后升级到帝国7.0,再升级到帝国7.2。
其中转换时有许多细节需要注意,当然如果是喜欢折腾的朋友,也可以多在自己实验环境中测试几次。把遇到的问题和解决方法分享出来,供大家学习。
接下来就是详细的转换教程。
织梦dedecms5.7转换帝国ecms6.6
1、在织梦网站后台,备份织梦网站的数据库、附件。之后把数据库文件夹(位置:/data/backupdata)、附件(位置:/upload)都下载到本地电脑。
2、在本地电脑上搭建php环境,之后安装织梦5.7新网站,之后把备份的数据库、附件还原到这个本地织梦网站上。
注意,如果织梦网站文章内容图片地址是绝对地址,要把图片地址改成相对地址。不然转到帝国后,文章图片可能会不正常显示。
3、之后在php环境中再安装帝国cms6.6,安装时,注意要把帝国数据库安装到和织梦网站放在同一个数据库中。
4、帝国cms6.6安装成功后,先根据织梦站的栏目,创建帝国的各个栏目,栏目路径要一致。
注意
(1)(非常重要)创建帝国栏目时,要注意,不仅仅要设置栏目的路径,还要设置好内容页保存路径的形式,因为帝国栏目默认的内容页目录会自动生成一个时间命名的目录,保存内容页。如果织梦站没有这个最内层的时间命名的目录,就要取消。
(2)如果没有设置好栏目的内容页保存形式,就直接转移数据到帝国站了,那么回头再想改内容页保存的目录就麻烦了。
只有设置好了栏目路径,内容页保存路径,才能确保帝国所有页面路径和织梦网站url相同,才不会影响百度收录。
5、开始把织梦站数据转移到帝国站
(1)下载织梦转帝国插件(帝国论坛有,这里放不了链接)
(2)把插件解压后,放到帝国网站:根目录/e/update/
(3)之后在浏览器访问帝国网站:http://你的域名/e/update/dedecmstoecms.php ,运行转换程序。
(4)(非常重要)其中转换时,在转换界面下面,一定要选择保留原信息ID,只有这样帝国的内容页才是和原织梦内容页命名相同。
(5)把织梦的uploads附件目录,放到帝国
(6)这样织梦的栏目数据就转到帝国栏目中了,接下来就是去更新中心,刷新首页、栏目、内容页,不要忘了更新缓存。
备注:如果织梦网站没有自定义字段,那么上面的操作就完成了数据转换,如果织梦有自定义字段,那么还需要做如下操作:
(1)在帝国网站创建相同数据类型的自定义字段(如果不懂怎样创建ecms自定义字段,请自己百度)
(2)执行sql代码转换数据
例如:织梦有两个自定义变量:联系电话:tel ;地址:addr ,现在在帝国网站也创建了相同的自定义变量,执行下面的sql代码:
update dede_addonarticle da,phome_ecms_news men set men.tel=da.tel,men.addr=da.addr where da.aid=men.id;
执行完上面的操作,两个自定义字段的值就转化完成了。
确认帝国6.6生成的首页、频道页、列表页、内容页都正常并和织梦网站路径一样,那么第一步织梦5.7转帝国6.6成功。接下来,要进行升级了。
帝国ecms6.6升级到帝国ecms7.0
1、下载帝国6.6升级7.0的升级程序
2、升级程序中有相关教程,详细教程请参考升级程序中的教程。
升级的大体流程:
(1)把升级程序文件直接覆盖帝国6.6的系统文件
(2)在浏览器中访问:http://你的域名/e/update/ ,开始运行升级程序。
(3)升级成功后,删除 /e/update/ 目录里的文件。
(4)到数据更新中心,恢复栏目目录,更新栏目信息数。
(5)登陆后台>用户>用户管理>管理用户组,修改用户组:设置用户组权限(我选中了全部权限);(新版增加的功能没有加上权限是不显示菜单的)
(6)7.0版的以下目录和文件用不到,可以选择删除:(建议删除)
/e/admin/db/InfoType.php /e/admin/info/AddZtF.php /e/admin/info/ListZtF.php /e/admin/AddZt.php /e/admin/ListZt.php /e/admin/ListZtClass.php /e/admin/TogZt.php /e/class/config.php /e/class/DownSysFun.php /e/class/enpath.php /e/class/qmemberfun.php /e/class/ShopSysFun.php /e/class/user.php /e/DownSys/report/ /e/enews/plfun.php /e/template/DownSys/report.php
(7)升级完成
帝国7.0升级7.2,7.5
1、下载7.2升级程序
2、升级程序中有升级说明。
大体流程和6.6升级7.0差不多:
(1)如果你改了“e/admin”目录名,请先将目录名改回“e/admin”;(升级完成后再修改回来)
(2)复制升级包upload目录里的文件到本地帝国CMS系统目录里,覆盖已存在的文件;
(3)在浏览器运行 /e/update/index.php 文件,依提示进行升级;
(4)删除 /e/update/ 目录里的文件;
(5)登录后台>用户>用户管理>管理用户组,修改用户组:设置用户组权限;(新版增加的功能没有加上权限是不显示菜单的)
(6)升级完毕。
最终效果
经过上面的工作,最终织梦网站转换成帝国系统,数据全部转换成功,所有栏目、文章页的url和之前网站一样,所以不会影响百度收录。
当然上面只是转换了网站数据,如果要让网站前台样式也一样,需要再单独把织梦模板改成帝国模板。
这里已经讲的很清楚了。有不明白的可以联系我xk3213聊。
织梦系统后台更新主页html选项为空的解决方法
织梦CMS系统后台出现了这种情况:每次更新首页,“选择主页模板”和“主页位置”两项都是空的,及时填写了也不会保存,下次更新网站首页时还是这样。
这种情况说明之前的数据备份不完整,dede_homepageset 项没有数据,所以现在这个更新动作没有数据被改变,就不会改变表的数据。
解决方法:
后台-系统-SQL命令行工具-执行
INSERT INTO `dede_homepageset` VALUES('{style}/index.htm','../index.html','1');
点击“执行”,出现提示“成功执行一条SQL语句”即完成对数据表的修改。
织梦cms的栏目有内容,生成完静态内容变没了,用SQL快速解决
大家好,我是擅长快速建站的兼职小哥,给客户建网站的时候,有一些栏目内容是原样采集过来的,也就是说参照的网站本身就有bug,网站栏目的专题页面保存在content字段中,有的栏目这个字段填写了,有的栏目这个字段没有填写内容,如果后面建了一个typedir和之前栏目和typedir相同,并且后面栏目和content为空,那么整个专题就会变成空白页面。
那个我们这个问题的第一个解决方案,就是将网址相同的第二个typedir相同栏目的栏目属性选择为外部链接。这样就做了一个专题页面的镜像,比如一个专题属于即整形分类,又属于活动专题的分类时,会经常用到这种镜像操作,这个时候我们填写内容的时候,就到第一个栏目里填写就对了。
第二种方法是用SQL语句删除网址相同的栏目,如果客户网站是没有安装phpmyadmin,可以上传一个单文件sql管理工具Adminer,这是一个类似phpmyadmin和数据库操作工具,可以执行sql语句,在我们执行sql语句之前,要使用织梦后台的备份功能把数据库整体做一下备份。
我们先说一下删除重复数据的原理,这个删除重复数据的需求经常出现在面试题中,您可以记录收藏一下。
select id from dede_arctype where id in (select min(id) as id from dede_arctype where content<>'' and ispart<>2 group by typedir having count(id) > 1)
这条SQL语句会筛选出重复的数据记录,以id最小的为准,那么后面的数据将不显示。
select id from dede_arctype where id in (select max(id) as id from dede_arctype where content<>'' and ispart<>2 group by typedir having count(id) > 1)
这条SQL语句名筛选出重复的数据记录,以id最大的为准,后面的数据不显示,我们在这里选择执行这条语句。
我们能否像其它数据库一样,外面再嵌套一层语句,将重复数据直接删除呢?试一下
delete FROM `dede_arctype` WHERE `id` in (select id from dede_arctype where id in (select max(id) as id from dede_arctype where content<>'' and ispart<>2 group by typedir having count(id) > 1))
mysql数据库报错了。我们还是只把mysql当成一个绿色小巧的数据库工具吧,我们在mysql-front中将重复的id复制出来,再在文本编辑器里将回车替换成逗号
最后拼接成这样的语句,在客户服务器上的Adminer接口上执行这条删除指令,即可。
delete from dede_arctype where id in(37,197,198,201,203,205,208,209,210,211,218,225,227,230,232,235,241,242,243,254,255,256,259,260,265,267,268,270,271,272,274,275,276,277,278,279,280,282,283,284,285,286,287,288,289,291,292,293,294,295,296,298,299,302,304,305,306,310,311,312,313,314,315,316,317,319,320,321,322,325,326,329,335,342,343,344,345,346,347,348,349,350,351,352,353,354,360,361,363,367,368,370,374,377,381,383,385,386,387,410,413,415,417,418,420,421,422,423,424,425,426,428,429,430,431,468,532)
注意用完Adminer或者phpmyadmin之后,一定要删除这两个软件,以免留下安全隐患。
欢迎关注我的头条号,兼职小哥,关注后您可以点击底部的快速建站菜单,与我联系!