Archive for the ‘工程学&编码’ Category

Dede cms(utf-8)中的问题及解决

Monday, June 9th, 2008

在dedecms4的utf8改版中,发布文档时可能出现:
更新数据库archives表时出错,请检查!

把数据保存到数据库archives表时出错,请检查!
以上两种情况分别为修改和新增,对应的php为
article_eidt_action.php和article_add_action.php,数据库操作为include/pub_db_mysql.php,中文字符串截取为

include/inc_functions.php中的cn_substr函数,此函数只支持双字节即gbk编码,所以要改成截取utf-8的.此时edit已正常,但add还出错,把
if(!$dsql->ExecuteNoneQuery()){
$dsql->Close();
ShowMsg(”把数据保存到数据库archives表时出错,请检查!”,”-1″);
exit();
}
改成
if(!$dsql->ExecuteNoneQuery()){
$errorSql = htmlSpecialchars($dsql->queryString);
$errorMsg = htmlSpecialchars(mysql_error());
$dsql->Close();
//ShowMsg(”把数据保存到数据库archives表时出错,请检查!”,”-1″);
//ShowMsg是document.write的js方法,不知为什么在加入$errorSql后不显示,所以用echo
echo “把数据保存到数据库archives表时出错,请检查!查询语句:
$errorSql
mysql错误提示:
$errorMsg “;
exit();
}
看提示是keywords字段长了,原来是中文分词时出错,include/pub_splitword_www.php调用字典include/data/dede_wwwdic.csv,可csv是gbk编

码的.改分词程序没成功,所以不分词了,关键字手工填就是了.把article_add_action.php中的

//自动获取文章中的关键字
//———————————-
if($autokey==1||$keywords==”"){

改成
//自动获取文章中的关键字
//———————————-
if(0 && ($autokey==1||$keywords==”")){

发布文档后的成功提示无法显示,
把include/win_templet.htm中
charset={dede:cfg_language/}改成
charset=utf-8

更新html那个框架中的字乱码,在浏览器中选utf8就行,但不知在哪个文件中改

图片栏目如果选分页显示,会在第2页开始图片上方有一行字:分页标题#e#,找不到在哪改,因此修改

dede/templates/default/article_iamge.htm,把

{dede:field name=’imgurls’/}

改成

{dede:field name=’imgurls’/}

也就是用js把这串字符替换

dede/article_eidt.php有错误,没有定义SelectTemplets函数,所以不能选择模板,在页面上方的js中把这个函数加上
function SelectTemplets(fname)
{
var posLeft = window.event.clientY-200;
var posTop = window.event.clientX-300;
window.open(”../include/dialog/select_templets.php?&activepath=&f=”+fname,

“poptempWin”, “scrollbars=yes,resizable=yes,statebar=no,width=600,height=400,left=”+posLeft+”, top=”+posTop);
}

程序的一些bug:
1.article_eidt.p,hp编辑选模板有js错误,并且无法在ff中使用这个函数,因为不支持window.event
2.栏目如果是频道列表,生成页后子频道的文档无法在该页显示,进入子频道才能看到
3.图片栏目如果选分页显示,会在第2页开始图片上方有一行字:分页标题#e#,不知是UTF-8改的原因还是bug
4.图片栏目修改文档后,最后一页没重新生成?选生成文档HTML才搞定
5.UTF8部分,分词和拼音还无法解决,生成html的提示乱码,一定要手工指定编码为utf8
6.图片栏目中生成缩略图有问题.好在不会在列表页显示出错
7.文章栏目中GIF图片似乎都无法生成缩略图?
8.dede/inc/writer.txt和dede/inc/source.txt都应该设成可写
9.两个广告紧连着会出问题,如{dede:myad name=’abc’/}和{dede:myad name=”efg” /}连着,后一个就会显示成文字.只有分开
10.在本地测试时安装在非根目录下,首页连接用cfg_cmspath正确,上传到网站后,这儿改成空,页面中这儿竟然被解析成当前目录

Protected: 关于整改dede内容管理系统的建议

Thursday, May 29th, 2008

This post is password protected. To view it please enter your password below:


Web页面设计时的文字布局设计

Wednesday, May 7th, 2008

ps: 这篇文章是有感而发的,前一阵子在和公司美工讨论页面布局的细节时发生了争执,之后美工愤然离去.久经思考后,决定写此文章,杜绝今后发生这样的事情.

网页的文字&布局一定要设计

网页中,文字占整个页面非常大的部分,如果在页面设计时仅仅重视视觉的冲击而使用大面积的图像(以此改变图片与文字的比例).这样会降低页面的可读性,并且也会使这个页面的内容(文字叙述的内容)失去强调.

请再翻开你大学时的<<平面构成>>课本

以下段落引自 ucdChina

先看看网站以外的中文字体设计,英文的正文字体有很多可以选择,但中文的正文字,总的来说就两种:宋体和黑体。在传统的版式设计中,设计师们都喜欢做英文的排版,为什么?从视觉上来看,英文的组合很容易形成线和面的关系,而且字母有节奏感,比如It’s Tom’s body.这个字母放一起有高矮区别。中文字相对来说,单调、孤立、不流畅。

我们说:构成的基础就是点线面,那么对于相对单调的中文来讲,更加是这样,翻开你的<<平面构成>>课本,再次阅读一下那些关于 [点] 构成的章节.

回到网站中文字的设计,设计师基本上不用考虑在字体上做选择,只有宋体。前文说:单个字成点,一行字成线,一段字成面。这是版式设计最基本的原理,我们需要做的就是强化这样的感觉。拿微软雅黑和宋体来举例子,本人非常喜欢微软雅黑的设计。

雅黑与宋体的区别

将12号的宋体和雅黑放大,注意以下细节:

1. 雅黑要比宋体宽一像素
2. 雅黑让每个笔画往四周撑,比如“是”上面的“日”,雅黑显得就要饱满

这么做的目的只有一个,让中文字体更容易形成线,从而读起来更流畅。我们可以看到,尽管雅黑不是真正的正方形,但它看起来要比宋体方一些。

看完上面这个例子,我的观点也就出来了:别把你的文字看成字,而是看成点,文字的视觉设计其实就是处理点线面的关系。

文字布局设计时具体注意的点:

1. 字体的单位用em而不用px,尽管12px和0.8em大小差不多。

2. 在css文件body中的font-family里面保证”宋体”前面有Arial或者 verdana,个人推荐这么写:font-family:Helvetica,Georgia,Arial,sans-serif,宋体。这样能保证你界面中的字母、数字、符号看上去美观一些,更重要的是更加易读。

3. 12 px 宋体时,我们一般使用18-20 px 的行距。14 px 宋体通常使用22-24 px 的行距。这个行距大小随着单行字数的多少而上下浮动。12 px 字如果单行字数少的话,17 px 也是可以接受的。

4. 正文一行字数最好不超过50,首页的标题文字以8-20字为佳。

5. 12和14px字相对来说最精致,13px在需要的时候可以做正文字,word里面默认的字的大小相当于网页的13px字。

6. 对于一段文字,尤其是正文部分,保证左右至少有15px的留白,便于用户换行时不受到干扰。

7. 文字和背景对比要足够明显,保证最弱文字的可读性。

争论后的思考

Friday, April 18th, 2008

近几日与张洋在代码结构上的争执持续了几天,争论的不免让气氛变得小小紧张起来。不过这倒让我着实的高兴,因为这次争论让我看到了一个高效团队的希望。

事后,对此问题进行反思。

根源:

开发架构:面向对象还是过程?

发展过程

我建议采用面向对象的架构方法部署新系统的编码结构,在向张洋演示过后,他觉得写起来很麻烦,要多写很多代码,并不能提高编码效率,而后继续使用函数编写。

反思

架构人员的任务是:构建适合团队开发能里的架构,使团队高质量的开发项目。
对于编写效率来讲,oo强调代码的可读性以及职责明确,这一切都是为了使程序员之间更好的协同工作。而面向过程对于程序原来讲是“函数为首选”的原则。不可否认,函数的方式可以极大的提高代码的编写效率以及执行效率,只是协同方面略差一筹。

结论

观察团队现状,三个编码人员的能力相对较高,对语言的理解也比较深刻,有必要制定一套在oo的框架下实现面向过程式的编码架构。

SUSE10 SFTP 登录提示输入密码问题

Tuesday, March 25th, 2008

一直使用sftp链接Suse10的服务器,结果总是不停的让输入密码确认,于是查找问题所在。

解决办法:

找到文件

vi /etc/ssh/sshd_config

找到 PasswordAuthentication no 这句话,把它注释掉。

/etc/init.d/sshd restart

重启SSHD服务后在用SSH连接就能成功登陆了