gbk和utf,第1张

首先要导入的肯定是栏目了

关于数据库结构 帝国官方有一个很详细的手册 我在之前的文章中有发布 ,而可怜的dede 只能在一些blog的文章中找到,感谢整理这些资料的博主们,不过还不是很方便,我觉着dede官方应该大改进了

帝国cms 栏目相关数据表 mlf_enewsclass (注意表的前缀)

dedecms 栏目相关数据表dede_arctype

这里就不对字段进行解释了 直接上sql了

把帝国数据库中mlf_enewsclass 这张表导入到dede数据库中方便操作

这条数据执行完了之后后台栏目已经有数据了

insert into dede_arctype (id,reid,typename,picname,sortrank,typedir,description,keywords) select classid,bclassid,

classname,classimg,myorder,classpath,intro,classpagekey from mlf_enewsclass

update `dede_arctype` set `issend`=1

update `dede_arctype` set `isdefault`=1

DedeTag Engine Create File False以下几条sql必须执行,要不然会出现 错误

-----------------------------------------------------------------------------

update `dede_arctype` set `namerule`="{typedir}/{Y}/{M}{D}/{aid}html"

update `dede_arctype` set `namerule2`="{typedir}/list_{tid}_{page}html"

------------------------------------------------------------------------------

update `dede_arctype` set `typedir`=CONCAT('{cmspath}/',typedir)

update `dede_arctype` set `templist`="{style}/list_articlehtm"

update `dede_arctype` set `temparticle`="{style}/article_articlehtm "

update `dede_arctype` set `tempindex`="{style}/index_articlehtm"

update dede_arctype da,mlf_enewsclassadd me set dacontent=meclasstext,daseotitle=mefpagetitle where daid=meclassid(注意)

这样 栏目列表成功转换,后台可生成

下来开始整合文章

首先 先来分析文章数据库结构

dede文章相关的有3张数据表,分别是dede_archives ,dede_addonarticle,dede_arctiny

帝国文章相关的数据表: mlf_ecms_news,mlf_ecms_news_data_1(可能数据表有所不同,不过结构区别都不大)

导入文章

insert into `dede_archives` (id,typeid,sortrank,click,title,litpic,filename,pubdate,senddate,description,keywords) select id,classid,truetime,onclick,title,titlepic,filename,newstime,lastdotime,smalltext,keyboard from mlf_ecms_news

导入文章来源作者

update `dede_archives` da,mlf_ecms_news_data_1 men set dasource=menbefrom,dawriter=menwriter where daid=menid

导入文章body(内容)

insert into dede_addonarticle (aid,typeid,body) select id,classid,newstext from mlf_ecms_news_data_1 men

现在后台已经有了文章

不过发现了个问题,分类中显示的文档数量为0

经过查资料,摸索 发现还需要操作一个数据表 dede_arctiny后台统计文档数量操作的是这个数据表

insert into `dede_arctiny` (id,typeid,channel,senddate,sortrank,mid) select id,typeid,channel,senddate,sortrank,mid from dede_archives

执行完毕之后发现最下级的栏目已经正常显示文档数量,但是顶级栏目依然是0,查看相关资料才发现dede一直是这样,这也算dede的一个bug吧

检查你的文件编码。还有你的标签的书写。php标签 需要后台开启才可以使用的。

页面的编码、文件的存储的编码、dedecms程序的编码要统一。

编码不能解析的原因,大部分是标签书写错误的原因。建议到dede默认的模板里直接复制。

应该编码转换的时候丢失了字节,你没有发现你输入的是偶数个字的时候正常,奇数个的时候乱码,具体的字码长度我也不是很了解

String str1 = new String(strgetBytes("UTF-8"),"GBK");

Systemoutprintln(str1length());

String str2 = new String(str1getBytes("GBK"),"UTF-8");

Systemoutprintln(str2length());); 打印出来的字符串长度就不一样的

UTF8每个汉字占用3个字节,这样在某些地方文字个数的计算就和GBK编码的不一样,UTF-8使用可变长度字节来储存 Unicode字符,例如ASCII字母继续使用1字节储存,重音文字、希腊字母或西里尔字母等使用2字节来储存,而常用的汉字就要使用3字节。辅助平面字符则使用4字节。 GB 18030标准采用单字节、双字节和四字节三种方式对字符编码。单字节部分使用0×00至0×7F码(对应于ASCII码的相应码)。双字节部分,首字节码从0×81至0×FE,尾字节码位分别是0×40至0×7E和0×80至0×FE。四字节部分采用GB/T 11383未采用的0×30到0×39作为对双字节编码扩充的后缀,这样扩充的四字节编码,其范围为0×81308130到0×FE39FE39。其中第一、三个字节编码码位均为0×81至0×FE,第二、四个字节编码码位均为0×30至0×39。

按照程序员的称呼,GB2312、GBK到GB18030都属于双字节字符集 (DBCS)。

方法/步骤

1、网站标题seo优化技巧:

列表页标题优化技巧:把列表文件中的<title></title>改为栏目名称-seo标题-网站名称即<title>{dede:fieldtitle/}-{dede:fieldseotitle

/}-{dede:globalcfg_webname/}</title>

2、内容页标题优化技巧:把内容页文件中的<title></title>改为文章标题-网站名称<title>{dede:fieldtitle/}-{dede:globalcfg_webname/}</title>

3、网站url路径的优化技巧:dede默认的路径名称是栏目的拼音,然而栏目下的文章内容的默认url路径是栏目路径/年/月日/文章id的形式,文章的路径默认就增加了(年/月日/)2层目录,不利于搜索引擎的抓取,应该让网址规范化改为栏目路径/文章idhtml。

具体操作方法如下:在栏目修改哪里的高级选项里有个文章命名规则:默认是这样的{typedir}/{Y}/{M}{D}/{aid}html,把它改成{typedir}/{aid}html或者你把内容都放在一个文件夹里

a/{aid}html这样的话路径就比较规范化了,有利于搜索引擎的抓取。

4、做一个404页面:在主机控制面板开启404功能,然后做一个404文件并上传404htm页面并放入到根目录下

5、做好robots文件并上传网站根目录,文件内容:模板里的,css等不需要蜘蛛爬行,upload里的附件不需要蜘蛛爬行,具体格式:

6、js广告的优化:网站通用的js可以保存到一个文件比如把常用的函数保存到commonjs里,尽量不用dede默认的广告插件,我发现那个广告插件不如直接自己写js速度快。另外如果网站头部有js广告的话,打开的时候可能影响速度,解决方法:可以用一个层,把js放到底部,然后用css绝对定位到头部你需要的位置这样就不影响速度了。另外给大家提醒下,广告文件名和文件目录最好别用ad

ads

guanggao之类的名称,因为如果用这类名称会导致遨游浏览器屏蔽你的广告,虽说遨游用户不多,但是细节问题也要注意啊。

7、织梦dedecms网站seo优化技巧一般就这几项,做好这些会提高网站的收录量,优化知识到此结束,希望可以帮助大家。

在站长这个圈子里,dedecms 是大家都比较熟识的一个网站程序,dedecms以功能强大和seo友好受到众多站长的青睐。新手站长用这个程序搭建一个站也是很容易的事,但是看着别的网站那么精美的页面,又看看自己使用的默认模板,总有些怅然若失的感觉。其实对于一个新手站长来讲,你也可以通过自己的努力去仿制这个网页作为自己的模板。

理论上对于任何一个网页,dedecms是都可以仿制的,只是复杂程度不同,这里讲的复杂程度其实只是些重复的工作。新手站长只要细心去做,发现并不会太困难,当然一定的知识储备还是需要的。事实上,太多的新手站长是被自己给吓倒了,一说到仿制网页模板,马上就会摇头说我不懂php,不懂css我怎么去仿呀。其实仿站对这个几乎没有要求的,只要我们能看懂html,并且知道dedecms程序是怎么对标签调用的,就可以开始制作了。在制作的过程中,你可能会遇到这样或者那样的问题,这个时候你可是要用好“百度”的,要记住他永远是你最好的老师。

前面讲到dedecms对标签的调用,网上的教程有很多,我们也可以查看帮助文件。也许一下子看到那么多的标签,好多新手站长的头都大了。其实,在我们仿制模板的过程中,真正能用的就那么几个而已,比如:{dede:arclist}获取指定文章列表标签、{dede:channel}获取栏目列表页等。我们只要把常用的几个搞明白了,就可以动手了。每个标签里还会出现一些属性,如这一句调用:{dede:arclist row=’6’},其中的”row”就是标签的一个属性,就是调用多少篇文章的意思,而后面的”6”就是这个属性的值,就是本次调用6篇文章。属性基本上是见名而知义的。

千万不要等到把所有的标签都搞得滚瓜烂熟再动手去仿制,这种上手的方法不是说不好,而是太慢了。最快的学习过程就是动手去做,做的过程中你会遇到各种问题,而通过努力不断的解决掉问题的过程,就是你最好、最实效的学习过程。你第一次仿制模板时可能要用5天,当你第二次的时候也许只要3天,这样连续找几个不太复杂的站进行仿制练习,你会感慨“原来仿站不过如此而已”。

仿制模板最快速上手的方法是对比着仿。对比着仿就是对比着dedecms的默认模板来仿,比如我们要仿制的网站首页的title/title之间显示的是这个网站的标题,而默认模板里在这对标签之间是{dede:globalcfg_webname/},我们只要把这个标签内容复制过去,把原来的内容覆盖掉就可以了,甚至不用知道这个标签是什么意思。只要是功能相同的地方我们都可以采用这种只动鼠标就可以解决的方法。

仿制模板最应该关注的是两个问题:其一是素材路径的问题,我们下载的网页路径都是正常的,但当我们把网页放入我们网站目录时可能会产生调用异常,因为路径的改变可能导致无法读取到一些样式和素材。这个时候我们就要对路径进行修改,建议使用以网站根目录为起始路径的绝对路径,即形如”/templets/default/style/dedecmscss”这样的路径;其二是编码问题,一定要做到仿制好的模板的编码和你所安装的dedecms的编码一致,要不然,生成的网页是一片乱码。解决这个问题使用编码转换软件或者一些工具网站提供编码转换工具就可以了。

仿制网页模板不像我们相像中那么难,只要花点时间学习一下,很容易上手的,关键是思想上不能被吓倒。仿制网页模板不是太大的技术活,很多时候更像是体力活。一般情况投入10天的时间,就会让你以后的模板无忧的。

  一、下载ueditor

请自己下载ueditor版本(本人是PHP版本 UFT-8版,不包含_examples、_src等文件夹及文件)。下载完成后,会得到以下这样的目录结构的:

ueditor文件说明:

dialogs 是存放各个弹出窗口应用功能的文件,包含html,js

lang 是存放编辑器语言的文件,有中文和E文

php 是存放文件上传、涂鸦、远程、在线管理,添加视频的php源码文件,可以按自己的需求修改

themes 当然就是主题样式存放的地方

third-party 是第三方插件文件存放地方。

editoralljs 此文件是所有_src里的js源码的合集

editorallminjs 此文件是editor_alljs的压缩版

editorconfigjs 此文件是UE的配置文件

editorparsejs 此文件是UE的解析文件

editorparseminjs 此文件是UE的解析压缩文件

二、重命名文件夹名称,并复制UE到dede

重命名:ueditor1_3_6-utf8-php,为ueditor。将ueditor全部复制到dede的include文件夹下!完成后ueditor在dede里边的结构如下图:

三、修改 include/inc/inc_fun_funAdminphp 让 DD 能够调用到 UE

打开 include/inc/inc_fun_funAdminphp ,大约150行,有个function SpGetEditor,这是DD调用编辑器的,我们要修改它,达到能够调用UE,下拉到226行左右,加上以下代码: 

else if($GLOBALS['cfg_html_editor']=='ueditor')

  {

  $fvalue = $fvalue==''  '<p></p>' : $fvalue;

  $code = '<script type="text/javascript" charset="utf-8" src="'$GLOBALS['cfg_cmspath']'/include/ueditor/ueditorconfigjs"></script>';

  $code = '<script type="text/javascript" charset="utf-8" src="'$GLOBALS['cfg_cmspath']'/include/ueditor/ueditorallminjs"></script>';

  $code = '<link rel="stylesheet" type="text/css" href="'$GLOBALS['cfg_cmspath']'/include/ueditor/themes/default/css/ueditorcss"/>';

  //$code = '<textarea name="'$fname'" id="'$fname'" style="width:100%;">'$fvalue'</textarea>';

  $code = '<script type="text/plain" name="'$fname'" id="'$fname'">'$fvalue'</script>';

  if($bbcode)

  {

  $code = '<script type="text/javascript">UEgetEditor("'$fname'",{toolbars:[["Source","|",

  "bold", "italic", "underline","|","fontsize","forecolor","emotion","Undo", "Redo"]],initialFrameHeight:100});</script>';

  }

  else

  {

  $code = '<script type="text/javascript">UEgetEditor("'$fname'",{initialFrameHeight:450});</script>';

  }

  if($gtype=="print")

  {

  echo $code;

  }

  else

  {

  return $code;

  }

  }//bd end

四:后台=》系统=》系统基本参数=》核心设置=》Html编辑器

填入ueditor就好了

乱码是因为字符编码不一致造成的。和数据库没半毛钱的关系,不要被楼下的误导。很简单,你都没动那些数据库,而且是按照官网指导方式安装的dedecms系统,数据库不可能出问题。乱码是因为字符编码不一致造成的,出席的情况有以下几种:

一是或者你模板采用的是编码语言与你安装的版本字符编码不一致;比如你安装的是UTF8,而是用dreamweaver制作的模板却采用了默认的GBK1312,那么自然会乱码。

二是你制作的模板有很多代码都是复制粘贴过来的,这些复制过来的代码有的编码是UTF8,有的是GBK1312,。

第三种情况是以上二种情况同时存在,兼而有之,那么不乱码才怪。

解决办法:

一是建议安装UTF8版本的dedecms系统,因为国内大多数网站都是UTF8编码的,你引用他人网页代码的时候乱码的几率会更小些。

二是用dreamweaver制作模板的时候,选择字符编码为UTF8,或者选择和你安装的版本一致的字符编码。

三是或者你在引用代码的时候先看清楚网页的字符代码,是否和你的模板以及版本的一致,不一致则慎重。

更多请随时追问,也可以查看我的博客。

参考下面方法

首先,打开后台——模板——默认模板管理——indexhtm

看到有一句,

rel="stylesheet" media="screen" type="text/css" />说明,模板是根据这个 CSS 来布局网

页的,于是就打开网站目录下面的templets\style\dedecmscss然后来分析一下CSS的构成。

根据主页的调用,来研究 CSS 这样容易理解。打开主页模板,找到:

那么 w960 center clear mt1 都定义了什么呢?打开 DEDECMSCSS 找打相关的定义。

center{

1 margin:0px auto; 定义了CSS 模块的边缘位置都是 0,也就是这个center 的层

距离上右下左都是 0px;

2 }

3 w960{

4 width:960px; 定义了整体的宽度为 960px;

5

6 }

7 pright infos_userinfo {

8 margin-bottom: 0px; 定义了首页右部下的互动中心的下面边缘为 0px;

9 }

10 mt1{

11 margin-top:8px; 定义了mt1 的顶部边缘为8px;

12 }

13 pright mt1{

14 margin-top:0px; 定义了pright 下面的mt1 顶部边缘为0px;

15 }

16 mt2{

17 margin-top:16px; 顶部边缘为16px;

18 }

19 clear{

20 overflow:hidden; 如果clear 层里面的内容超出了 层的范围 就隐藏起来。

21 }

这个pleft 的定义没有在dedecmscss 中,但是会发现一句

@import url("layoutcss");

@import url("pagecss");

这说明,在dedecmscss 中引用了 pagecss 和layoutcss 这两个样式表,于是就在

pagecss 中找到了pleft 的定义

pleft{

width:712px;定义了宽度

float:left;该层向左浮动

overflow:hidden;超出范围则隐藏

}

在该层下面调用的是新闻头条的内容,看看它的 css

index bignews{

width:424px;

height:400px;

float:right; 向右浮动

border:1px solid #DFF2F5;表示边框线用 #dff2f5 的实体颜色填充

background:url(/images/headbg-topgif) repeat-x;背景为 headbg-topgif 并且横

向平铺

overflow:hidden;超出则隐藏。

}

所以,看到头条的这部分是在 flash 幻灯片右边显示,并且加上了浅蓝色的边框线。

再来看看 onenews 是如何定义的。

index bignews onenews{

margin:0 3px 0 3px; 左右外边距分别空3 个像素

padding:7px 6px;上左内边距分别空7,6 个像素

border-bottom:1px dashed #EBEBEB;下边框加一个 #ebebeb 的虚线

}

所以看见头条的文章左右都有一定的距离,并且下面还有一个虚线显示

这个下面调用的是以往的头条,默认的有 4 篇文章,调用了d1 d1arc 2 个css

index bignews divd1{

padding:6px 10px;

clear:both;这句话是清除浮动,如果不加它,大家可以试试看,是不是 d1 这个层就跑到 头条的

右边了。

width:406px;

overflow:hidden;

}

index bignews divd1arc{

margin-right:12px;

width:190px;

float:left;因为此时要调用4 篇文章,改文章是 22 排列的,如果不加这个属性,新闻就应该垂

直排列了(因为刚才用 clear:both 清除浮动啦),大家试试看是不是这样的。

height:24px;

line-height:24px;行间距,即字体最底端与字体内部顶端之间的距离

overflow:hidden;

}

最新文章

下面看看 newarticle 这个css 吧,还是拿快学网的首页举例子,上面的这句是用来显示 “最近

更新”那几个绿颜色字的,看看它是怎么定义的。

index bignews divnewarticle{

height:24px; 高度

background:url(/images/new-articlegif) 8px 3px no-repeat;背景在x 轴8px 和y 轴

3px 出出现

font-size:0px;

color:#fff;

} 所以,能看到那个最近更新并且还有一个横条,其实它是个,大家右键另存为

看看就知道了

这里面调用了 c2 和ico1 两个 css

index bignews ulc2{

width:416px;

padding:0px 4px 0px; 内边距为 上0 右4 下0

clear:both;清除浮动 和上面的意思一样

overflow:hidden;

}

ico1 这个css 在layoutcss 中了。

ico1 li{

padding-left:16px; 指的是 新闻列表左内边距为 16px

background:url(/images/ico-1gif) 7px 11px no-repeat; 背景在7px,11px 处出现,所以看到最新文章的列表左边都有一个小黑点,这个小黑点就是 ico-1gif

}

到此,中部的头条新闻和最近更新已经分析完了。

看看flash 的 css 定义

index flashnews{

width:280px;

height:192px;

overflow:hidden;

float:left;这句决定了,flash 的新闻列表在 头条的左边显示。如果把 bignews 和flashnews

的float 属性互换一下应该是上面结果呢?大家试试看。

}

这边是特别推荐调用的样式,还是来看看 css

index latestnews{

width:280px;

height:200px;

margin-top:8px;

float:left;

}

index latestnews dl dd{

padding:2px 5px;

}

index latestnews ul a{

color:#555;

} 这里面就不用解释了吧,可以和上面的对照一下就能明白上面意思了。关键 dl dt dd 要弄明白

是什么意思。

dl 内容块

dt 内容块的标题

dd 内容

可以这么写:

标题

内容1

内容2

在layoutcss 中找到 tbox 的相关定义,其他的都不用罗嗦了,只有一句大家注意看一

tbox dt strong{

height:26px;

line-height:26px; !important;line-height:25px; 这一句是为了兼容 IE 和FF,比如

font-size: 12px !important;

font-size: 13px;

在 IE里面,由于 IE不理解 !important,则字体大小按照最后设定的 13px 展示

而FF 里面, !important 为提高优先级别,则字体大小按照 !important标记的12px 展示

某些css 某些代码在这两类浏览器里的显示是有差别的(注意这也是使用!important 的主要原因

所在),比如height: 21px;,在 IE6 和(IE7,FF)里显示就有差别,后者(IE7,FF)会比前

者(IE6)少一个像素。

padding-left:22px;

padding-right:4px;

display:block;//变成块级 ,因为strong 是内联元素,必须强制转换,不然的话是没有办法

定义padding 的。大家可以百度一下 内联元素看看。

float:left;

color:#397CBE;

background:url(/images/fbicogif) 5px 6px no-repeat;

letter-spacing:1px;

}

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » gbk和utf

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情