2010-09
19

非真金的蝴蝶

By xrspook @ 22:43:51 归类于: 烂日记

金蝶,专业会计软件,一直以来我们都被灌输这样的理念。要用金蝶,还得用Windows 2003,还必须得分开内外网,屏幕要超大。金蝶,一直以来我都觉得是会计必不可少的厉害东西,经过多年的发展,应该是个非常完善的专业软件,不过,今晚的遭遇却让我觉得它并没有我期望中的完美。

很偶然地被邀请去解决一个凭证打印的问题,使用的是套打,啥是套打?我一个外行人觉得那就是一个已经做好的邮件合并功能,读取数据,在预定的格式中打印出来。没什么神奇的,平常得很。呵呵,因为我也是Word+Excel的套打老手。金蝶有很密集繁复的步骤去实现套打功能,什么打印设置、页面设置、套打模板设置、套打设置……而软件自带的帮助里却没有很明确地写出要实现一个目标,整套流程该怎么操作,可以说,帮助写得非常含糊。于是很囧地不断试验。让我极端无语的是设置好的模板在套用的时候会出状况,好不容易设置好的格式,到实际打印却会哑火,既然如此的话,为何还要显示一个你以为可以实现但却没有一点用处的功能呢???打印区域和内容区域设置也让人无语,按照MS Office的使用惯例,打印区域、内容区域应该可以随意控制,而且可同时使用填写式和可视式调整,但,很不幸的是,在填写式那里,无论你怎么折腾,是没有效果的。于是,你不得不一次又一次使用你精准的鼠标控制技把每次将打印的凭证在可视式那里准确调整到同一位置。

没见识过金蝶的其它功能,但在打印效果设置上,它应该向微软老大哥继续学习。

最后,经过一个多小时的奋斗,终于把适合实际需要的套打格式折腾了出来。

台风听说明天要到,天气异常闷热。

今天第一次煲昨天医生开的新药,要翻渣,感觉料特多,也比之前的难入口。还记得小时候喝中药的时候总要家长们千哄万哄,非常艰难才喝完,而且还要说好喝完有什么“奖励”。现在呢,已经没必要折磨别人欺骗自己了。

明天有NOC,嘿嘿嘿,PPV呢,期待中。

2010-08
26

当年今日入rss啦

By xrspook @ 23:02:56 归类于: 烂日记

众里寻他千百度,蓦然回首,那人却在灯火阑珊处。

上星期已经把“当年今日”功能加到blog里(详细见Arm 2 W),从一开始就打算要加入rss的,但费尽九牛二虎之力都没做到,但今天,终于攻克了!

到底什么原因呢?

首先,我们要看我当年今日的源代码,利用

< ?php wp_today();? >

完成插入,在function.php的代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
function wp_today(){
	$title = "<h3>当年今日</h3>";
	$limit = 10;
	$order = "latest";
	$post = 1;
	$feed = 1;
 
 
	global $wpdb;
	$post_year = get_the_time('Y');
	$post_month = get_the_time('m');
	$post_day = get_the_time('j');
	if($order == "latest"){ $order = "DESC";} else { $order = '';}
 
	$sql = "select ID, date(post_date_gmt) as h_date, post_title, comment_count FROM 
			$wpdb->posts WHERE post_password = '' AND post_type = 'post' AND post_status = 'publish'
			AND year(post_date_gmt)!='$post_year' AND month(post_date_gmt)='$post_month' AND day(post_date_gmt)='$post_day'
			order by post_date_gmt $order limit $limit";
	$histtory_post = $wpdb->get_results($sql);
	if( $histtory_post ){
		foreach( $histtory_post as $post ){
			$h_date = $post->h_date;
			$h_post_title = $post->post_title;
			$h_permalink = get_permalink( $post->ID );
			$h_comments = $post->comment_count;
			$h_post .= "<li>$h_date -- <a href='".$h_permalink."' title='Permanent Link to ".$h_post_title."'>$h_post_title</a> <!--($h_comments) --></li>";
		}
	}
 
	if ( $h_post ){
		$result = "".$title."<ul>".$h_post."</ul>";
	}
	echo $result;	
}

这堆代码,要实现在blog的某个位置输出当年今日没有任何问题,但要注意,数据是用“echo $result;”完结的,这就埋下了伏笔。

我试过很多回,试图在function.php加入以下这堆代码调用上面的代码实现当年今日在rss中的输出:

1
2
3
4
5
6
7
8
9
10
function wp_today_rss($content){
    if (is_feed()){
		$content = $content.wp_today();
		return $content;
	}
	else {
		return $content;
	}
}
add_filter('the_content', 'wp_today_rss');

输出是能输出了,但结果很囧,见图:

当年今日输出在了正文前面!(那堆乱码东西是正文),但代码中我明明是这般写的“$content = $content.wp_today();”,东西应该加在后面的,但实际上却在前面,这让我百思不得其解。

无可奈何,今天试过用最笨的方法把wp_today()除echo $result;以外的数据全部往function wp_today_rss里放,能实现了我希望的效果,见图:

到底怎么办呢?难道要很笨地把同1段代码写2回?????

狂抓不已,于是就去请教别人了,但一请教,人家还没回答我就有了头绪,不如把上面两段代码拆分为3段,即:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
function get_today(){
	$title = "<h3>当年今日</h3>";
	$limit = 10;
	$order = "latest";
	$post = 1;
	$feed = 1;
 
 
	global $wpdb;
	$post_year = get_the_time('Y');
	$post_month = get_the_time('m');
	$post_day = get_the_time('j');
	if($order == "latest"){ $order = "DESC";} else { $order = '';}
 
	$sql = "select ID, date(post_date_gmt) as h_date, post_title, comment_count FROM 
			$wpdb->posts WHERE post_password = '' AND post_type = 'post' AND post_status = 'publish'
			AND year(post_date_gmt)!='$post_year' AND month(post_date_gmt)='$post_month' AND day(post_date_gmt)='$post_day'
			order by post_date_gmt $order limit $limit";
	$histtory_post = $wpdb->get_results($sql);
	if( $histtory_post ){
		foreach( $histtory_post as $post ){
			$h_date = $post->h_date;
			$h_post_title = $post->post_title;
			$h_permalink = get_permalink( $post->ID );
			$h_comments = $post->comment_count;
			$h_post .= "<li>$h_date -- <a href='".$h_permalink."' title='Permanent Link to ".$h_post_title."'>$h_post_title</a> <!--($h_comments) --></li>";
		}
	}
 
	if ( $h_post ){
		$result = "".$title."<ul>".$h_post."</ul>";
	}
	return $result;
}
function wp_today(){
	echo get_today();
}
function wp_today_rss($content){
    if (is_feed()){
		$content = $content.get_today();
		return $content;
	}
	else {
		return $content;
	}
}
add_filter('the_content', 'wp_today_rss');

嘿嘿,对味!function get_today()是核心代码,function wp_today()用作来打印输出,function wp_today_rss()使之能加入到rss中。哈,“echo $result;”换成了“return $result;”解决了纠结我很久的千古难题。只能叹一句,从前的函数调用没领会透,也没有认真留意数据返回那些事。

最后,终于把问题解决了,爽得飞天,哈哈哈~~~~

PS:感谢SH童鞋的鼎力支持!

PS2:代码可能在rss中不能全部显示,有需要者请移步网页。

2010-08
21

首秀击倒619

By xrspook @ 23:59:10 归类于: 烂日记

不知从哪个星期开始,除了追电信数字电视上的WWE意外我开始关注实时的比赛,一个星期下来,基本上天天都可以让你忙不停,但并不是所有比赛都能提起你的兴趣,特别是那些打不死的老冤家们。几个星期下来,对现役的老面孔和他们的招牌动作都有所熟知后尤为如此。

但昨天有个WWE新人的SmackDown首演,他在那里的名字叫做Alberto Del Rio,嘿,西语呢,墨西哥人呢,Rey Mysterio的老乡啊!为什么对这个人我会感觉怪怪,特别想知道这大叔是谁呢?首先,对西语我有种莫名的求知感,这个人首先拽是在SD近几个星期的广告中(我是这两周才发现的,但实际上,第一次亮相是在2010-06-26的SD广告中),SD插播Dashing Cody Rhodes耍帅教人家怎么才能Dashing这个我可以理解,但那个大叔是谁呢?我第一次看到的时候蒙了。显然,即便在中文版的视频中,那段大叔视频一句都没有被翻译,因为,他说着半英半西的混合语,一般粉怎么可能摸得出来呢?即便是我这个混迹多年西语网站的小白也是o嘴发呆的。我的第一个反应,难道那是摘掉面具的619大师?观察了好久,才觉得不可能,因为619没有那么高大,面形不是那样,发音也不像,且那人很嚣张自大,但大师绝不会。但在现役的WWE当红大明星中只有619会说不咸不淡的英语啊,那人到底是谁?!终于,在上周的SD中,宣布了这个名叫Alberto Del Rio会在这周的SD中DEBUTS(首演),哎,终于真相大白了。

一开场,619上台说话,Del Rio中途打断,一副有钱有势的样子,顺理成章,619挑战他one on one,结果,很假地,他们的墨西哥WWE新老人之战成为了20100820SD主战赛,摊手,编剧,你们太懒了~~~

无语,主战赛中,Del Rio弄了个说西语的小丑级僵尸面来主持,在介绍他出场的时候把Alberto Del Rio把Rio的“R”颤舌音发得超长,我那个抓啊,从前不知试了多少水,含一口水时试过,自习课发呆的时候试过,用力吹到头痛都没把这个该死的音发出来,现在,那只鬼居然把我已经愈合多年的伤疤重新揭开,邪恶!接着,Del Rio开着黑色闪亮亮的劳斯莱斯,按着喇叭进场。平时选手们劲爆音乐、大爆火花、唱歌、跳舞、装酷摆姿势出场是常事,但这下,我又o了。还要挂着那条像哈达又不是哈达的东西,浑身浅金色摔角服,在擂台中央装神,外加一副欠揍、让人发寒的笑容,摄影师还不断面部特写,别说619,荧屏前的各位都想揍扁他了。比赛开始不久,他狂锤619,裁判上场制止,想把他拉开,他还让裁判别碰他,这个细节,恶心啊,以为他是神绝不让人类说玷污呢。

故意引诱Rey出619,然后伺机破解,这个Jack Swagger也干过,但却没有Del Rio那么故意。

作为一个算是身材较高的选手(1.96m),通常是不会采用飞踢的,而Del Rio居然用飞踢攻击以空中动作、凌空飞踢漂亮华丽著称的619大师,虽然不高,没有中大师的头部,但却让人感到微微震惊。高大选手下盘不行的弱点在他身上似乎不成问题。造成这样的其中一个原因大概是他的体重没有传统高大选手那么重,起码轻了30公斤。由此可见,他应该不是一个像Big Show那样使用致命铁拳,或和KaneUndertaker那样使用锁喉抛甩、墓碑低头的重量级。

最后,Rey居然是在Del Rio的锁肩锁喉后拍地求饶结束比赛,拍地啊!619是不会轻易拍地的!除非故意放水。

这是一场水分超过98%的主战赛,平时钢铁顽强的619大师在Del Rio面前变得毫无办法,绝招被多次压制,连终结技619都被轻易破解,极无语啊!Rey Mysterio和Alberto Del Rio的区区几分钟缠斗并轻松击倒老乡只是个开场绰头。我有点期待到底这个新人还有什么招呢?在这场身高体重不等且严重造假赛中,他并没有施展开来,真想看看,当他遇上大型重磅炸弹会表现如何,可能打法会很不同呢,或许,这个来自墨西哥的人也精通上绳技巧和619。

其实在看到这集SD视频之前我已经看过文章“619恐因伤退休 Alberto Del Rio为其接班人?”,我的第一个反应是不会吧!619可是个连The All-American American都能多次击败,敢于挑战Kane的顽强face啊,但显然,这个Del Rio 99%是个大大的heel,正邪不平衡啊~~~

以后剧情如何发展,还需密切关注。

PS1:Alberto Del Rio在wiki上的资料(最响当当的艺名叫做Dos Caras, Jr.[小双面人?])表明,他家族来头不小,Dos Caras的儿子,Mil Mascaras的侄子,而且,2000年出道以来,曾在日本、墨西哥等地大红大紫,所以他会一副万人迷的样子。在他的履历中有一项很有意思,2000年他本会代表墨西哥参加悉尼奥运会,结果却因政府经费问题,墨西哥没有组摔角队参加,如果他真参加了奥运会,那么现在的这个拽人将会更拽更好玩。让人震惊的是,从前的Alberto Del Rio一直都是大face,在跟WWE发生关系以后他才转heel,而且是Rodríguez家族中(就是那堆caras名人)第一个转heel的成员,这样的一个决意要推翻祖辈们闯一番事业、为了赚钱不惜一切的人,不拽才怪。很好玩,他只有在SD和RAW中才以真面目示人,其它比赛,尤其是在墨西哥的比赛中,他依旧会很传统地戴面具。(西班牙语讲解——Dos Caras:two faces,双面人;Jr.:Junior,这是英语缩写呢;Mil Mascaras:A Thousand Masks,直译千面人。因为呢,从前墨西哥摔跤选手通常是戴面具比赛的,被对手摘掉面具是很严重的,好像生涯就要结束了。)

PS2:WWE官网图片获取
1、WWE官网图片是以flash形式播放的,从网页代码中找不到原始的.jpg代码。
2、以Rey Mysterio vs. Alberto Del Rio为例,它的网址是http://us.wwe.com/shows/smackdown/archive/08202010/photos/mysteriovsdelrio/,观察其中的内嵌flash代码能发现这样一个列表http://us.wwe.com/shows/smackdown/archive/08202010/photos/mysteriovsdelrio/view.xml,很庆幸对这个列表官网没有进行封堵,你能找到诸如/shows/smackdown/photos/15125102/mysteriovsdelrio/SD_574_Photo_073.jpg的链接,加上网址前面的部分“http://us.wwe.com/”,如http://us.wwe.com/shows/smackdown/archive/08202010/photos/mysteriovsdelrio/SD_574_Photo_073.jpg,就是flash中显示的各个大图。由于他们上传的图片是规律的,还能批量抓取下载。
3、大功告成,嘿嘿嘿。相比一些为flash而flash的网站,这般“隐藏”算是简单的了。

2010-08
19

Arm 2 W

By xrspook @ 22:22:57 归类于: 烂日记

还记得那个短语armed to the teeth?!武装到牙齿啊!(having many weapons 全副武装)这个“Arm 2 W”又是什么意思呢?Arm,作动词,继续表示装备;2,有二的意思,也有to的意思;W,亲爱的WordPress。今天为WordPress装备了2个新武器,大大增加阅读的延展性。

1、WordPress Related Posts:鼎鼎大名的相关文章插件,利用的是tags的相关性。这个插件我是直接装了,貌似很复杂,而且是水煮鱼的产品,一切都非常人性化,可以作widget也可以代码插入,想插哪里就插哪里,而且作者已经预留了一些可自定义的class,所以要格式化很简便。

2、WP-Today:历史上的今天,对于我的blog来说,历史悠久且记录齐全,历史上的今天很有必要摆出来show一show,嘿嘿。这个插件原理比较简单,而且由于作者并没有把插件小工具话,只能自动连到文章末端,也有手动设置,但我试了好多次都不成功,于是把代码经过修改后直接贴到自己Color3的function.php里了。

有图有真相。

第一个插件没费我多少心思就完成安装格式化了,但第二个,折腾了我好久。虽然玩wp的时间不短了,但对function.php还是不熟悉,那片土地对我来说简直就是亚马逊的原始森林。即便加个简单的function {}也会让我狠抓,因为修改这里和修改wp主题的其他文件不一样,一旦有任何差错无论前台后台都会一片空白,幸好我是脱机调试,在Notepad++上修改,所以还能经常重来。WP-Today这个插件原始版本是这样的,但如果插入主题的function.php就不需要全部,只需要部分,我只加了这些

我把它的默认条数限制从5条调整为10条,把只显示年份改为显示标准的Y-m-d(年年年年-月月-日日)。

关于function.php的代码插入法,很有必要简单总结一下:

一、若插入的function {}中间并无使用,可以直接把代码插到括号中;
二、若function {}中有使用,需要…,“…”代表那些含html和php格式的部分,不明白为什么要这么弄,但貌似都是这般折腾的。

我的天最重要的价值在于TA的坚持,希望这样的改进能让读者多转几分钟吧,嘻嘻。

2010-08
18

极速升级wp3.0.1

By xrspook @ 17:49:06 归类于: 烂日记

蠢蠢欲动之后,昨晚终于逮到机会,把wp给升了。

以前升级都是用FTP,首先把旧版本wp内除wp-content文件夹外的东西全部删除,然后把新版本的同样部分放上去,接着再把新翻译文件替换掉wp-content\languages的东西。这般折腾不是一般的费时。因为服务器上的文件都是非压缩状态的,同样大的文件,.zip压缩可以缩小70-80%,水分很大啊!当网速很一般的时候更是恐怖,一般的ADSL无论下载速度有多少M,上传通常只有50KB,而这里用的是光纤,上传才侥幸能达到2MB,但尽管如此,上传十几MB的零散东西还是很费时。于是,传统FTP方法下来,顺利的话也得折腾1.5-2小时。

但这次,我利用的是web传送,登录lighttpd的后台,选择FileManger,把要上传的东西打包.zip传到上面去。请注意,不要把从官网弄下来的.zip就直接传上去哦,如此一来,你在模板和插件上的修改就全部泡汤了!而那些东西都在wp-content文件夹内,所以,其它文件打包,这个除外。lighttpd的上传方式有3种,分别是本地上传,网址转传,还有就是FTP,因为需要修改,所以我用的是本地上传,再次强调,别以为很聪明就用官网的下载地址贴到网络转传那里!嘿嘿,以wordpress3.0.1大小约3MB的.zip文件为例,我上传只用了1秒不到,秒杀完成。

接着,在目录就能看你上传的.zip文件。为什么是.zip呢?因为Linux系统是不认.rar的。

点进.zip文件,系统能把.zip文件看透,我们来个解压(Extract Zip To Here)就万事大吉了。服务器那边的解压比我的电脑还要快,眨眼间就OK了。

接下来的事就是把旧版本的wp文件删掉,把新版本的剪切过去。

最后最后,如果你用的不是非官方英文版的话,记得把你的翻译文件放回wp-content\languages,就只有2个文件,用FTP也很好。

至此,wordpress的升级就大功告成。如果你手脚麻利,网络又通畅的话,绝对可以在5分钟内完成,大大的节省时间啊!最后,还是要不厌其烦地提醒一句,无论什么形式的升级,升级前最好先备份数据库,把所有插件停用掉,始终,避免数据丢失和各种冲突还是很有必要的。

上面的方法适用于lighttpd后台,因为lighttpd后台没有上传.zip文件的功能,但VistaPanel(很多免费空间都用这个)就更简单,因为那是允许上传zip,tar,tgz,gz并自解压的,所以能省掉上传、解压的过程。在免费空间对比利用上传压缩文件和传统FTP上传其优越性会更明显。

wp升级其实很轻松,哈哈哈~~~

终于升到了目标的3.0.1,看到那个界面却让我呆了。不知是不是用惯了2.*,到了3.*,那些纯粹的灰色让我觉得刺眼,同时,各种更新提示也从以前的橘红色变成了黑色了,囧,这个我不喜欢呢。有图有真相:

wordpress 3.0.1控制台

wordpress 2.9.2控制台

很好奇地翻了翻导航栏,只在外观里发现了个新条目——目录,一个排序的东东,对我没什么吸引力。哎~~~ 苦得我那么心急要升级,没什么让我眼前一亮的东西,有点扫兴。

但,总算跟上时代步伐了:)))

© 2004 - 2026 我的天 | Theme by xrspook | Power by WordPress