完成3个核心的控件EpsContentEditor & EpsEditorPager,EpsLoadingInfo
这3个组件都是用纯dojo widget模式实现的,注册的名字空间是eps.widget,因此可以复用到以后的任何项目中。
EpsEditorPager
这是一个分页的组件,可以实现分页的编辑器。通过该组件,可以让普通的TextArea和input都能够支持分页。
目前实现的性能:
EpsContentEdito
这是一个Richtext和纯文本编辑组件,通过集成fckeditor提供所见所得的编辑器,
目前实现的性能:
TODO:
More:
EpsLoadingInfo
一个类似“正在加载…”的指示条,具有普通,成功,错误3个状态(不同的样式),延迟关闭。
Object Hierarchy and Inheritance in JavaScript
这篇文章Object Hierarchy and Inheritance in JavaScript讲述了Javascript对象模型,非常详细,解决了一些困扰我的疑问,记录下来。
内容管理UI
调试了一天,在firefox下面好好的,在IE6下面总是报错,最后才发现是因为某些tag的嵌套在IE下面有问题,虽然显示正常,但是在js中无法得到正确的dom节点的css属性,还好最后还是找出来了。
DW8太占内存了,虽然我的T41是1G内存,但是开了Zend和Eclipse,Firefox后,再跑Dw8就有点吃劲了,另外DW8的code fold功能还是偏弱些,不太直观,于是今天换了notepad++,还是不错的,比较满意,而且是GPL的。
2个js相关的项目
javaeye的这个帖子引出2个有趣的项目,和js相关的:
http://jsvm.org/
2个项目的作者都是国人,而且都具有java和js的多年经验,很不错的。
相对而言,我对后者颇有兴趣,不过暂时不会在eps中使用。jsvm看起来也不错,已经把yahoo ui库移植进去了,但是目前dojo已经足够我们使用了,也不会考虑的。即便如此,如果做快速的东西,可以考虑jsvm版本的yahoo ui.
S1被S3替换
原S1服务器停止使用,S1上的论坛服务转移至S3。原S3的www负载均衡停止,目前暂时由S5一台提供www服务。
PHP decodeURIComponent实现
在使用dojo bind提交的时候,在php服务端接受的代码都是xxx形式,这是因为dojo.bind使用xmlhttp提交的时候,使用encodeURIComponent对提交的内容进行了encoding,在服务端接收的时候需要将其还原。对于Php5.1似乎可以使用html_entity_decode直接指定charset为utf-8来进行还原,但是对于php4则无法实现。Googling了半天,发现没有人解决,dojo的mailinglist有人提出过,但是没有解决,可能是php开发人员很少用dojo或者xmlhttp吧。没有办法,自己写了一个函数,虽然需要使用mb_string,但是也算是解决了这个问题,我在httprequest的consturctur中判断,如果content_type为application/x-www-form-urlencoded则进行decoding。本来是打算写一个filter或者interceptor的,但后来一想没有必要,直接交由httprequest处理得了。
/**
* Hacking for decoding encodeURIComponent() && DOJO_encodeAscii
*
* NOTE:This function need Mb_string extension
*
* @param string $body
* @return string
*/
function decodeURIComponent($uri) {
//decode decimal HTML entities added by web browser
$uri = preg_replace(’/\d{2,5};/ue’, “utf8_entity_decode(’$0′)”, $uri );
//decode hex HTML entities added by web browser
//$uri = preg_replace(’/([a-fA-F0-7]{2,8});/ue’, “utf8_entity_decode(’’.hexdec(’$1′).’;')”, $uri );
return mb_convert_encoding($uri,’GBK’,'UTF-8′);
}
/**
* callback function for the decodeURIComponent
*
* Use Mb_string extension to decode utf-8 numericenties
*
* @param string $entity
* @return string
*/
function utf8_entity_decode($entity){
$convmap = array(0×0, 0×2FFFF, 0, 0xFFFF);
return mb_decode_numericentity($entity, $convmap,’utf-8′);
}
