DFdou's Blog Life is short,Be yourself.

3112/084

jQuery-each(fn)的使用

最近在忙这更Lazystudio.cn/guestbook的进度,由于木有人提供美工意见,so,现在全部的美工状况…就别提了~
本来想在页面输出div之后根据屏幕宽度来让div实现同DFdou’s留言板一样的效果随机分布,如果能加animate效果那是最好了。
但是昨天因为不知道jQuery的each(fn),所以错误的尝试了js获取屏幕宽度后传值给php,然后由php输出div的时候设置element的left跟top这种不讨好的做法。
当时的做法是,在加载页面时先通过js获取屏幕的宽度跟高度,然后重新location给页面传参,再通过php获取get的值来设置div的element属性。
唉,个人觉得这个方法太笨,太别扭,太不Web2.0 :wenhao 所以决定做一个修改。
从学妹那得知有each(fn)这个东西的存在,参考了下,可以完美使用,嘿嘿,下边是js代码部分:
哦,对了,先放Demo地址http://lazystudio.cn/guestbook/,另一个demo地址http://nwhy.org/jquery-animation.html
Demo中每个div的class为e_post~
PS:请确保您的页面加载了jQuery+easing Plungin。。

$(".e_post").each(function(i){$(this).animate({left:Math.random()*(screen.width-300),top:Math.random()*(screen.height-500)}, Math.random()*2000, 'easeInQuint')});

each这个用起来比较简单,官方文档的说明是:以每一个匹配的元素作为上下文来执行一个函数。这意味着,每次执行传递进来的函数时,函数中的this关键字都指向一个不同的元素(每次都是一个不同的匹配元素)。而且,在每次执行函数时,都会给函数传递一个表示作为执行环境的元素在匹配的元素集合中所处位置的数字值作为参数。
我们可以假设,js在执行的时候会先读取全部$(".e_post"),然后压入一个数组,接着,就开始fn的循环,从第0个$(".e_post")开始,到第最后一个$(".e_post")结束。
上例中的处理是,对每个$(".e_post")进行left和top的animate设置,如left的值是设置为0到当前屏幕分辨率的值-300之间的一个随机数。
由于each(fn)是个循环体,所以每次的Math.random()值会重新计算,so,每个$(".e_post")的位置也会因此不同。
PS:别鄙视我,我就是喜欢万恶的Math.random(),多好啊,乱糟糟的排列。
关于div的拖动,请使用easydrag Plungin。。这个插件没有显示可拖动范围为屏幕宽度,唉,没有Flash方便嘿嘿,不过看了下QQ爱墙也是木有限制,就放弃修改这个了。
等咱有这能力了再说,哈哈。下边是加载easydrag Plungin后让class为e_post的div可拖动的代码:

$(".e_post").easydrag();

恩,看完有兴趣的可以在Lazystudio的留言板留个言哦~
PS:js使用起来比Flash不习惯些,有些地方确实无法做到Flash的效果,但是资源占用率比Flash底很多,唉,DFdou’s留言板那里的动画,加多点效果就会卡死一部分浏览器……

3012/080

WordPress Plugins-Moderator

Moderator是个AIR程序,可以在桌面管理留言而不用登录网站后台。
先丢个下载地址:http://www.danieldura.com/code/moderator.
当前版本0.1的功能列表:
* Viewing unmoderated comments.
* Dock and system tray notifications of the number of unmoderated comments.
* Accept, delete, and spam comments from within the desktop client.
* Close application window, or minimize it to the system tray while running.
* Shows the Gravatar icons for the user who posted the comment. //支持Gravatar哎!赞

2912/080

关于clicki

要说clicki是个什么东西,我也不知道具体该怎么说。
Street13右侧底下那个就是了,其主要功能很简单,就是用来显示访问者信息的。
包括访问者来源,操作系统,ip对应的地址,以及浏览器类型和访问时间。
而具体的数据是存放在clicki的服务器中,另外,clicki也提供了访问信息统计的功能。
恩,早在第1次见到clicki这个东西我就在Street13放了一个,不过后来皮肤更换的时候去掉了,呵呵,老实讲,我嫌js加载的慢。
所以看现在clicki的统计,上次的时间是108天前的=。=
去作者的论坛看了下,似乎这个东西开始的时候是asp做的小工具,当时可能仅仅是模仿老外的一个类似功能吧,
后来用的人多起来了,就重新用php做了下~
而似乎用的最多就是WP用户,哈,国内使用WP当blog程序的人好多唉 :kua

Tagged as: , No Comments
2912/082

由Google文档驱动的在线调查表单

表单效果地址:https://spreadsheets.google.com/viewform?key=pGHFRk_DSt55zWFCeT5BAGg
制作过程很简单,分以下几步进行:
1.进入Google文档,新建一个form;
2.依次输入需要调查的题目,帮助信息以及备选答案;
3.设置玩题目跟答案之后,选择More actions里的Edit confirmation,修改提交表单后的提示信息;
4.保存Form,接着在页面点击页面底部的Form地址就可以访问了,同时你可以选择Email this form把它发送给朋友;
5.点击See responses 查看统计信息summary和每个人的调查信息spreadsheets.

2612/080

WordPress query posts()函数

不知大家有没碰到这么一个问题,在特定页面,比方首页,比方single页,或者是siderbar.php,想要调用一篇page,或者是一个post。
这个时候该怎么做呢?
原来一直也没找到合适的办法,不过今天发现了这个函数,query posts()。
该函数使用很简单,比如我们要调用id为1的post,就可以这样写:

< ?php
// 返回一篇ID为5的文章
query_posts('p=5');
//或者你想得到id为1的page
//query_posts('page_id=1');      //只返回page1
//或者这样:
//query_posts('pagename=about');      //只返回title为about的page
//global $more;
//将 $more 设置为0以得到文章的第一部分
//$more = 0;
// the Loop
while (have_posts()) : the_post();
  //文章的内容
  the_content('Read All»');
endwhile;
?>

query posts()更高阶的用法就是传参了,可以写一个$sql当做它的参数,如:

< ?php query_posts("cat=22&year=$current_year&monthnum=$current_month&order=ASC"); ?>

还有tag的

< ?php query_posts('tag=bread+baking+recipe');  ?>

等等。
使用该函数可以让theme变得更加个性化。

2612/080

WordPress2.8功能需求投票中

以下是投票地址:http://www.polldaddy.com/s/6FC3E15CDE20B5B5/
没去看上边的单选是不是必选,个人每题都选了下,分布也比较均衡。
呵呵,3个最需要的功能填的依次是:
1.Open ID;
2.Fast!Fast!!;
3.comment interface;
自由填写栏写了个Need recent comment function。
唉,个人觉得早该集成最近回复函数的,这个太有必要了。
还有Pagenav,应该也集成到core里,个人觉得比集成sandbox theme优先度要高些。

Tagged as: No Comments
2512/080

Wordpress中的__() and _e()

这2个函数都是WP的翻译函数,不同的是__()是return返回结果,而_e()是echo输出结果。
打开wp-includesl10n.php就能找到这2个函数,2个都是调用的translate函数,function translate()也在该php文件里,
该函数应该是根据language包内的.po文件来替换字符串的内容,
我截取了一段WordPress中文团队制作的zh_CN.po的内容:
#: wp-admin/admin-ajax.php:226
#: wp-admin/admin-ajax.php:278
#: wp-admin/includes/taxonomy.php:62
msgid "You did not enter a category name."
msgstr "您还没有输入分类名称。"
这个应该是.po文档的规范,前边的是出现字符串的地方,数字是行数,msgid是要翻译的字符串,msgstr则是翻译后的字符串。
话说Drupal的.po文档也是这样制成的。
这样,如果在wp-config选择了zh_CN语言,并且在页面使用< ?php _e("You did not enter a category name.");?>;
那么输出的将是“您还没有输入分类名称。”

Tagged as: No Comments
2312/080

Discuz!6 or 6.1 开启静态化过程

安装Discuz!之后的第一件事,我想应该是到后台去开启全站静态化吧。
第1步,请确认您的虚拟主机支持Rewrite,如不支持请放弃。
第2步,在Discuz!所在目录建立一名为.htaccess的文件,输入以下内容:
# 将 RewriteEngine 模式打开
RewriteEngine On
# 修改以下语句中的 /discuz 为你的论坛目录地址,如果程序放在根目录中,请将 /discuz 修改为 /
RewriteBase /discuz
# Rewrite 系统规则请勿修改
RewriteRule ^archiver/((fid|tid)-[w-]+.html)$ archiver/index.php?$1
RewriteRule ^forum-([0-9]+)-([0-9]+).html$ forumdisplay.php?fid=$1&page=$2
RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+).html$ viewthread.php?tid=$1&extra=page%3D$3&page=$2
RewriteRule ^space-(username|uid)-(.+).html$ space.php?$1=$2
RewriteRule ^tag-(.+).html$ tag.php?name=$1
第3步,去Discuz!后台的全局-》优化设置-》搜索引擎优化-》启用 Archiver:完全启用+URL 静态化:全部选择,提交,接着去工具-》更新缓存-》选择全部,提交。
OK,一切搞定。

Tagged as: , No Comments
1712/080

Discuz! 6.1如何修改帖子标题长度

修改文件

1. include/post.func.php
2. include/javascript/post_editor.js
3. modcp/editpost.inc.php
4. default/viewthread.htm
5. default/forumdisplay.htm
6. default/templates.lang.php
7. default/messages.lang.php

1. 打开 include/post.func.php

查找

 function checkpost() {
 global $subject, $message, $disablepostctrl, $minpostsize, $maxpostsize;
 if(strlen($subject) > 80) {
 return ‘post_subject_toolong’;
}

把 > 80 改成 你想要的数字

1512/080

IE6的absolute Bug

今天跟学妹的任务是解决学妹上星期做的仿Ifekt.net的WP皮肤,
哇塞,我发现姐姐是越来越强大了 :meinv
差不多在中午的时候解决了IE7的兼容问题,唉,叹一句,JS的调试也太复杂了吧,IE提示的错误地点,模糊的太厉害,只能Alert么?
兼容玩IE7,发现IE6下边不行,看了下Ifekt.net,发现它那边的居然也不支持IE6,汗。
怎么办。就是不支持top的animate(),。。
16:30的时候学妹告诉我好了,讶异。
问了下和解,原来是IE6下的absolute Bug,哇,这样也能找到BUG所在。。。。
这个BUG是这样的,jQuery在IE6下无法读取CSS中的absolute属性,只能在需要效果的地方重新写入absolute。。
唉,IE6,can we say no to you?……

1312/080

哇!Wordpress官方中文站点!

Wordpress终于官方中文站点终于上线了!
没想到Wordpress会在发布2.7正式版的同时发布中文站点。http://cn.wordpress.org
我,我,我,,真的是开心啊 :shuajian 总算知道国人的需求了吧~

Tagged as: No Comments
1212/080

Flash-利用左移运算来取整

自从在Acitonscript3.cn上看到这个办法后,就一直使用该办法来对AS2里的Number类型变量取整,估计大家都是使用Math.floor或者Math.round来对mc._x或者mc._y来取整,
下边是Adobe关于左移运算在Flash里的说明:
--------------------------------------------------
< < 按位向左移位运算符
expression1 << expression2
将 expression1 和 expression2 转换为 32 位整数,并将 expression1 中的所有位向左移动由转换 expression2 所得到的整数指定的位数。作为此运算的结果而被清空的位的位置以 0 填充,并舍去移出左端的位。将一个值向左侧移动一位与这个值乘以 2 等效。

1212/080

Google Reader的彩蛋!Kuso我喜欢!

估计很少有人注意到这个东西,先来看图,这个是使用秘技后出现的画面哈哈。
googlereader
接着就是秘技是什么了,我想玩过Contra的人都知道"上上下下左右左右BA"吧,
Google就是这么干的,说是Kuso也好,玩笑也好,具体做法:打开你的Google Reader, 打开后盯着你的Google Reader侧边栏, 然后用键盘输入: ↑↑↓↓←→←→BA。你就会看到上边那张图了。
我想这就是一种精神,Baidu就不会这么做,也许这就是差距。
看搜索栏里的Ninjia!,还有侧边栏的摩西摩西,看起来像是日本人的恶搞,哈哈。

912/080

微软也玩CMS-Oxite

oxite
微软也推出了个CMS系统,当然,肯定是基于.NET平台跟SQL Server的。
最近一段时间,似乎MS也开始做一些很源的事,虽然很多人说MS开放的源代码都是无关痛痒的东西,
不过,好歹人家愿意开放,也在慢慢开放更多的技术,。
共享万岁~点此浏览Oxite网站
刚打开时候还以为这个网站是基于WordPress的,
结果发现不是,这个就是Oxite做的,唉,难不成大家都喜欢这样的布局么……

212/080

Flex-CandlestickChart

回到加有好长一段时间上不了网,SO,拿出Flex的书敲了段代码,。。
CandlestickChart组件是属于Flex图标组的组件之一,该组件主要用于表示有Open value,High value,Low value and Close value的数据,所以,比较适合用CandlestickChart来表示的数据,我想股票应该是再合适不过了。
下边是我做的一个实例,由于……我不知道怎么发不成点右键可以看源代码的调试版swf。。。

代码部分没什么好讲的,expensesAC给CandlestickChart提供数据,然后设置对应字段,一切OK。~~

Page 1 of 212