<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>蓝色的华 &#187; wordpress</title>
	<atom:link href="http://bluehua.org/tag/wordpress/feed" rel="self" type="application/rss+xml" />
	<link>http://bluehua.org</link>
	<description>分享所学,backup一切~</description>
	<lastBuildDate>Fri, 27 Aug 2010 08:41:16 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>why mail2blog</title>
		<link>http://bluehua.org/2010/08/13/1423.html</link>
		<comments>http://bluehua.org/2010/08/13/1423.html#comments</comments>
		<pubDate>Fri, 13 Aug 2010 04:50:10 +0000</pubDate>
		<dc:creator>小鹿</dc:creator>
				<category><![CDATA[soft]]></category>
		<category><![CDATA[mail2blog]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://bluehua.org/2010/08/13/1423.html</guid>
		<description><![CDATA[这阵子一直用email更新这个blog，很爽。
优点：
1. 客户端变得很多，比如我现在吃饭的空用e71码这篇blog，blog变得可以随时随地。
2. 更稳定得编辑器，worpress自带得编辑器给我特不稳定得感觉，而且添加附件不方便。
3. 不用再备份blog，全在已发邮件里了，包括附件。
从我的e71发送superscreenshot0029.jpg
&#8212;&#8212;&#8212;&#8211;
post by gmail~
]]></description>
			<content:encoded><![CDATA[<p>这阵子一直用email更新这个blog，很爽。</p>
<p>优点：<br />
1. 客户端变得很多，比如我现在吃饭的空用e71码这篇blog，blog变得可以随时随地。<br />
2. 更稳定得编辑器，worpress自带得编辑器给我特不稳定得感觉，而且添加附件不方便。<br />
3. 不用再备份blog，全在已发邮件里了，包括附件。</p>
<p>从我的e71发送<br /><a href="http://bluehua.org/wp-content/uploads/2010/08/superscreenshot0029.jpg">superscreenshot0029.jpg</a><br />
&#8212;&#8212;&#8212;&#8211;<br />
post by gmail~</p>
]]></content:encoded>
			<wfw:commentRss>http://bluehua.org/2010/08/13/1423.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>wordpress api的js实现版本</title>
		<link>http://bluehua.org/2010/04/10/1084.html</link>
		<comments>http://bluehua.org/2010/04/10/1084.html#comments</comments>
		<pubDate>Fri, 09 Apr 2010 16:43:32 +0000</pubDate>
		<dc:creator>小鹿</dc:creator>
				<category><![CDATA[web dev]]></category>
		<category><![CDATA[action]]></category>
		<category><![CDATA[filter]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://bluehua.org/?p=1084</guid>
		<description><![CDATA[上次提到的一个想法的实现版本,正在应用到偶开发的项目当中~
比wordpress的action和filter增加两个特性

能够添加一个只运行一次的action或者filter
可以通过返回{end:true}这种特殊对象来结束一个action或者filter

这两个特性在web开发里灰常有用

&#60;html&#62;
&#60;script&#62;
//2010.4.10 第一版
&#40;function&#40;ns&#41;
&#123;
    var filters = &#123;&#125;;
    var max_priority = 10;
    var default_priority = 10;
&#160;
    var array_include = function&#40;a, v&#41;
    &#123;
        for &#40; var i = 0, j = a.length; i &#60; j; i [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://bluehua.org/2009/12/22/751.html">上次提到的一个想法的实现版本</a>,正在应用到偶开发的项目当中~<br />
比wordpress的action和filter增加两个特性</p>
<ul>
<li>能够添加一个只运行一次的action或者filter</li>
<li>可以通过返回{end:true}这种特殊对象来结束一个action或者filter</li>
</ul>
<p>这两个特性在web开发里灰常有用</p>

<div class="wp_syntax"><div class="code overflow"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>html<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>script<span style="color: #339933;">&gt;</span>
<span style="color: #006600; font-style: italic;">//2010.4.10 第一版</span>
<span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>ns<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    <span style="color: #003366; font-weight: bold;">var</span> filters <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
    <span style="color: #003366; font-weight: bold;">var</span> max_priority <span style="color: #339933;">=</span> <span style="color: #CC0000;">10</span><span style="color: #339933;">;</span>
    <span style="color: #003366; font-weight: bold;">var</span> default_priority <span style="color: #339933;">=</span> <span style="color: #CC0000;">10</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #003366; font-weight: bold;">var</span> array_include <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>a<span style="color: #339933;">,</span> v<span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span> <span style="color: #003366; font-weight: bold;">var</span> i <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> j <span style="color: #339933;">=</span> a.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> j<span style="color: #339933;">;</span> i <span style="color: #339933;">++</span> <span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#123;</span>
            <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span> a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> v <span style="color: #009900;">&#41;</span> <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #003366; font-weight: bold;">var</span> to_array <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>a<span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #003366; font-weight: bold;">var</span> rt <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span> <span style="color: #003366; font-weight: bold;">var</span> i <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> j <span style="color: #339933;">=</span> a.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> j<span style="color: #339933;">;</span> i <span style="color: #339933;">++</span> <span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#123;</span>
           rt.<span style="color: #660066;">push</span><span style="color: #009900;">&#40;</span>a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
        <span style="color: #009900;">&#125;</span>
        <span style="color: #000066; font-weight: bold;">return</span> rt<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #003366; font-weight: bold;">function</span> _set<span style="color: #009900;">&#40;</span>func<span style="color: #339933;">,</span> tag<span style="color: #339933;">,</span> priority<span style="color: #339933;">,</span> key<span style="color: #339933;">,</span> value<span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        func<span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'__filter_'</span> <span style="color: #339933;">+</span> tag <span style="color: #339933;">+</span> <span style="color: #3366CC;">'_'</span> <span style="color: #339933;">+</span> priority <span style="color: #339933;">+</span> <span style="color: #3366CC;">'_'</span> <span style="color: #339933;">+</span> key<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> value<span style="color: #339933;">;</span> 
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #003366; font-weight: bold;">function</span> _get<span style="color: #009900;">&#40;</span>func<span style="color: #339933;">,</span> tag<span style="color: #339933;">,</span> priority<span style="color: #339933;">,</span> key<span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">return</span> func<span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'__filter_'</span> <span style="color: #339933;">+</span> tag <span style="color: #339933;">+</span> <span style="color: #3366CC;">'_'</span> <span style="color: #339933;">+</span> priority <span style="color: #339933;">+</span> <span style="color: #3366CC;">'_'</span> <span style="color: #339933;">+</span> key<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> 
    <span style="color: #009900;">&#125;</span>
&nbsp;
    ns.<span style="color: #660066;">add_filter</span> <span style="color: #339933;">=</span> ns.<span style="color: #660066;">add_action</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>tag<span style="color: #339933;">,</span> func<span style="color: #339933;">,</span> priority<span style="color: #339933;">,</span> run_once<span style="color: #009900;">&#41;</span> 
    <span style="color: #009900;">&#123;</span>
        run_once <span style="color: #339933;">=</span> run_once <span style="color: #339933;">===</span> undefined <span style="color: #339933;">?</span> <span style="color: #003366; font-weight: bold;">false</span> <span style="color: #339933;">:</span> run_once<span style="color: #339933;">;</span>
        priority <span style="color: #339933;">=</span> priority <span style="color: #339933;">||</span> default_priority<span style="color: #339933;">;</span> 
        <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span>filters<span style="color: #009900;">&#91;</span>tag<span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span> filters<span style="color: #009900;">&#91;</span>tag<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>   
        <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span>filters<span style="color: #009900;">&#91;</span>tag<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>priority<span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span> filters<span style="color: #009900;">&#91;</span>tag<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>priority<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span>array_include<span style="color: #009900;">&#40;</span>filters<span style="color: #009900;">&#91;</span>tag<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>priority<span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> func<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#123;</span>
            filters<span style="color: #009900;">&#91;</span>tag<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>priority<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">push</span><span style="color: #009900;">&#40;</span>func<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
&nbsp;
        _set<span style="color: #009900;">&#40;</span>func<span style="color: #339933;">,</span> tag<span style="color: #339933;">,</span> priority<span style="color: #339933;">,</span> <span style="color: #3366CC;">'run_once'</span><span style="color: #339933;">,</span> run_once<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
    ns.<span style="color: #660066;">add_once_filter</span> <span style="color: #339933;">=</span> ns.<span style="color: #660066;">add_once_action</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>tag<span style="color: #339933;">,</span> func<span style="color: #339933;">,</span> priority<span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        ns.<span style="color: #660066;">add_filter</span><span style="color: #009900;">&#40;</span>tag<span style="color: #339933;">,</span> func<span style="color: #339933;">,</span> priority<span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #003366; font-weight: bold;">function</span> filter_or_action<span style="color: #009900;">&#40;</span>ac<span style="color: #339933;">,</span> tag<span style="color: #339933;">,</span> value<span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>filters<span style="color: #009900;">&#91;</span>tag<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #000066; font-weight: bold;">return</span> value<span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span> ac <span style="color: #339933;">==</span> <span style="color: #3366CC;">'action'</span> <span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#123;</span>
            <span style="color: #003366; font-weight: bold;">var</span> args <span style="color: #339933;">=</span> to_array<span style="color: #009900;">&#40;</span>arguments<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            args.<span style="color: #660066;">shift</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            args.<span style="color: #660066;">shift</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #003366; font-weight: bold;">var</span> _cfs <span style="color: #339933;">=</span> filters<span style="color: #009900;">&#91;</span>tag<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
        <span style="color: #003366; font-weight: bold;">var</span> i <span style="color: #339933;">=</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">,</span> func<span style="color: #339933;">;</span> 
        <span style="color: #003366; font-weight: bold;">var</span> rt <span style="color: #339933;">=</span> value<span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span> i <span style="color: #339933;">&lt;=</span> max_priority <span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#123;</span>
            <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span>_cfs<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">||</span> _cfs<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">length</span> <span style="color: #339933;">===</span> <span style="color: #CC0000;">0</span> <span style="color: #009900;">&#41;</span> 
            <span style="color: #009900;">&#123;</span>
                i <span style="color: #339933;">++;</span>
                <span style="color: #000066; font-weight: bold;">continue</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
&nbsp;
            <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span> <span style="color: #003366; font-weight: bold;">var</span> j <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> length <span style="color: #339933;">=</span> _cfs<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> j <span style="color: #339933;">&lt;</span> length<span style="color: #339933;">;</span> j <span style="color: #339933;">++</span> <span style="color: #009900;">&#41;</span>
            <span style="color: #009900;">&#123;</span>
                func <span style="color: #339933;">=</span> _cfs<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
                <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span> ac <span style="color: #339933;">==</span> <span style="color: #3366CC;">'action'</span> <span style="color: #009900;">&#41;</span>
                <span style="color: #009900;">&#123;</span>
                    rt <span style="color: #339933;">=</span> func.<span style="color: #660066;">apply</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">null</span><span style="color: #339933;">,</span> args<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span>
                <span style="color: #000066; font-weight: bold;">else</span>
                <span style="color: #009900;">&#123;</span>
                    rt <span style="color: #339933;">=</span> func.<span style="color: #660066;">call</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">null</span><span style="color: #339933;">,</span> rt<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span>
&nbsp;
                <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span> _get<span style="color: #009900;">&#40;</span>func<span style="color: #339933;">,</span> tag<span style="color: #339933;">,</span> i<span style="color: #339933;">,</span> <span style="color: #3366CC;">'run_once'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> 
                <span style="color: #009900;">&#123;</span>
                    _cfs<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">splice</span><span style="color: #009900;">&#40;</span>j<span style="color: #339933;">,</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    j <span style="color: #339933;">--;</span>
                    length <span style="color: #339933;">--;</span>
                <span style="color: #009900;">&#125;</span>
                <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span> rt <span style="color: #339933;">&amp;&amp;</span> rt<span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'end'</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span> <span style="color: #000066; font-weight: bold;">return</span> rt<span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'value'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">||</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
&nbsp;
            i <span style="color: #339933;">++;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #000066; font-weight: bold;">return</span> rt<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
    ns.<span style="color: #660066;">apply_filters</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>tag<span style="color: #339933;">,</span> value<span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">return</span> filter_or_action<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'fitler'</span><span style="color: #339933;">,</span> tag<span style="color: #339933;">,</span> value<span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
    ns.<span style="color: #660066;">do_action</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>tag<span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #003366; font-weight: bold;">var</span> args <span style="color: #339933;">=</span> to_array<span style="color: #009900;">&#40;</span>arguments<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        filter_or_action.<span style="color: #660066;">apply</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">null</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#91;</span><span style="color: #3366CC;">'action'</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">concat</span><span style="color: #009900;">&#40;</span>args<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span>window<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> log<span style="color: #009900;">&#40;</span>str<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    document.<span style="color: #000066; font-weight: bold;">write</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'&lt;p&gt;'</span> <span style="color: #339933;">+</span> str <span style="color: #339933;">+</span> <span style="color: #3366CC;">'&lt;/p&gt;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">//普通的filter</span>
add_filter<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'status'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>text<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    <span style="color: #000066; font-weight: bold;">return</span> text.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/orz/g</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'超人'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
log<span style="color: #009900;">&#40;</span>apply_filters<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'status'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'orzorz'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #006600; font-style: italic;">//再添加一个filter</span>
add_filter<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'status'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>text<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    <span style="color: #000066; font-weight: bold;">return</span> text.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'超人'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'动感'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
log<span style="color: #009900;">&#40;</span>apply_filters<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'status'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'orzorz'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">//添加一个优先级较高的filter,并通过返回包含end字段的对象结束过滤器</span>
add_filter<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'status'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>text<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #009900;">&#123;</span>end<span style="color: #339933;">:</span><span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">,</span> value<span style="color: #339933;">:</span>text<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
log<span style="color: #009900;">&#40;</span>apply_filters<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'status'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'orzorz'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">//但是下面这个优先级较高的会执行</span>
add_filter<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'status'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>text<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    <span style="color: #000066; font-weight: bold;">return</span> text <span style="color: #339933;">+</span> <span style="color: #3366CC;">'管不着我'</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
log<span style="color: #009900;">&#40;</span>apply_filters<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'status'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'orzorz'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
log<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'-----------------------------'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
log<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'action测试'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
log<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'-----------------------------'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">//下面是action</span>
add_action<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'ac_success'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>a<span style="color: #339933;">,</span> b<span style="color: #339933;">,</span> c<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    log<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'返回数据:'</span> <span style="color: #339933;">+</span>  a <span style="color: #339933;">+</span> b <span style="color: #339933;">+</span> c<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">//添加一个只会执行一次的action回调</span>
add_once_action<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'ac_success'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>a<span style="color: #339933;">,</span> b<span style="color: #339933;">,</span> c<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    log<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'我只会执行一次的'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
add_action<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'ac_success'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>a<span style="color: #339933;">,</span> b<span style="color: #339933;">,</span> c<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    log<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'俺的优先级比较高'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
log<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'----------第一次执行----------------'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
do_action<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'ac_success'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'1'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'2'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'3'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
log<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'----------第二次执行----------------'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
do_action<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'ac_success'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'4'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'5'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'6'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
add_action<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'ac_success'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>a<span style="color: #339933;">,</span> b<span style="color: #339933;">,</span> c<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    log<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'全部屏蔽'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #009900;">&#123;</span>end<span style="color: #339933;">:</span><span style="color: #003366; font-weight: bold;">true</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span> 
<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
log<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'----------第三次执行----------------'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
do_action<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'ac_success'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'1'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'2'</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'3'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;/</span>html<span style="color: #339933;">&gt;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://bluehua.org/2010/04/10/1084.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>准备做一个wordpress的离线编辑器</title>
		<link>http://bluehua.org/2010/01/24/886.html</link>
		<comments>http://bluehua.org/2010/01/24/886.html#comments</comments>
		<pubDate>Sun, 24 Jan 2010 07:47:26 +0000</pubDate>
		<dc:creator>小鹿</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[soft]]></category>
		<category><![CDATA[offline editor]]></category>
		<category><![CDATA[pyqt4]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://bluehua.org/?p=886</guid>
		<description><![CDATA[2010.3.6 更新
由于最近的学习充电计划,这个东西暂时搁置了,现在已经可以自动保存了~
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;
linux平台上一直没有这样一个所见即所得的blog离线编辑器,昨天试着用pyqt4写了一个小脚本,发现原来python做客户端软件是如此容易.然后下定决心要利用n个周末的时间自己写一个.
开始打算用纯qt的ui控件实现,但是感觉没有wordpress的编辑器这么亲切,于是想到一个界面亲切,实现也方便的方案: ui部分直接用web,框在一个pyqt的webkit组件里,逻辑部分用python的cgihttpserver在本地开一个cgi.
这个东西搞到今天雏形已经有了,可以实现跟wordress完全相同的书写体验.

顺带发那个pyqt的练手之作 :　emlreader.py 一个可以查看eml附件的脚本
]]></description>
			<content:encoded><![CDATA[<p>2010.3.6 更新<br />
由于最近的学习充电计划,这个东西暂时搁置了,现在已经可以自动保存了~<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
linux平台上一直没有这样一个所见即所得的blog离线编辑器,昨天试着用pyqt4写了一个小脚本,发现原来python做客户端软件是如此容易.然后下定决心要利用n个周末的时间自己写一个.</p>
<p>开始打算用纯qt的ui控件实现,但是感觉没有wordpress的编辑器这么亲切,于是想到一个界面亲切,实现也方便的方案: ui部分直接用web,框在一个pyqt的webkit组件里,逻辑部分用python的cgihttpserver在本地开一个cgi.</p>
<p>这个东西搞到今天雏形已经有了,可以实现跟wordress完全相同的书写体验.</p>
<p><a href="http://bluehua.org/wp-content/uploads/2010/01/screenshot_048.png"><img class="alignnone size-medium wp-image-887" title="screenshot_048" src="http://bluehua.org/wp-content/uploads/2010/01/screenshot_048-300x240.png" alt="" width="300" height="240" /></a></p>
<p>顺带发那个pyqt的练手之作 :　<a href="http://bluehua.org/wp-content/uploads/2010/01/emlreader.py_.zip">emlreader.py</a> 一个可以查看eml附件的脚本</p>
]]></content:encoded>
			<wfw:commentRss>http://bluehua.org/2010/01/24/886.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>wordpress的插件机制用于产品js代码的解耦</title>
		<link>http://bluehua.org/2009/12/22/751.html</link>
		<comments>http://bluehua.org/2009/12/22/751.html#comments</comments>
		<pubDate>Tue, 22 Dec 2009 13:43:26 +0000</pubDate>
		<dc:creator>小鹿</dc:creator>
				<category><![CDATA[web dev]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://bluehua.org/?p=751</guid>
		<description><![CDATA[由于半路出家，设计模式几乎没有接触，一直为产品代码的耦合头疼，前两天忽然想到，wordpress区区数行代码便实现了强大的插件接口，何不借鉴一下呢，于是便有了下面的假想代码(不了解wordpress插件机制的同学可以先了解一下)：

/*
* 以一个相册浏览的产品为例
* 该应用可以实现无刷新的图片浏览，附加功能:新用户引导，图片评论，对图片处理的第三方应用，圈人
*/
//产品引导开始
addAction&#40;'photo_browser_init',function&#40;&#41;
&#123;
     guideManager.init&#40;&#41;;
&#125;&#41;;
addAction&#40;'photo_load_sucess',function&#40;photo&#41;
&#123;
    guideManager.step&#40;3, photo&#41;;
&#125;&#41;;
addAction&#40;'photo_change',function&#40;photo&#41;
&#123;
    guideManager.step&#40;4&#41;;
&#125;&#41;;
//产品引导结束
&#160;
//管理员ui开始
addAction&#40;'photo_browser_init',function&#40;&#41;
&#123;
    if &#40; !currentUser.isAdmin &#41; return;
    ......
&#125;&#41;;
//管理员ui结束
&#160;
//相册圈人开始
addAction&#40;'photo_browser_init', function&#40;&#41;
&#123;
    photo_tag.init&#40;&#41;;
&#125;&#41;;
addAction&#40;'photo_load&#124;photo_change', function&#40;photo&#41;
&#123;
    photo_tag.update&#40;photo&#41;;
&#125;&#41;;
//相册圈人结束
&#160;
//相片app
addAction&#40;'photo_browser_init',function&#40;photo&#41;
&#123;
    photo_apps.init&#40;photo&#41;;
&#125;&#41;;
addAction&#40;'photo_load&#124;photo_change',function&#40;photo&#41;
&#123;
    photo_apps.update&#40;photo&#41;;
&#125;&#41;;
//相片app结束
&#160;
//相片评论开始
addAction&#40;'photo_browser_init',function&#40;photo&#41;
&#123;
    photo_comment.init&#40;photo&#41;;
&#125;&#41;;
addAction&#40;'photo_load&#124;photo_change',function&#40;photo&#41;
&#123;
    photo_comment.update&#40;photo&#41;;
&#125;&#41;;
//相片评论结束
&#160;
//相片浏览核心功能开始
var [...]]]></description>
			<content:encoded><![CDATA[<p>由于半路出家，设计模式几乎没有接触，一直为产品代码的耦合头疼，前两天忽然想到，wordpress区区数行代码便实现了强大的插件接口，何不借鉴一下呢，于是便有了下面的假想代码(<a href="http://www.google.cn/search?hl=zh-CN&amp;q=wordpress+%E6%8F%92%E4%BB%B6%E6%9C%BA%E5%88%B6&amp;sourceid=navclient-ff&amp;rlz=1B6_____zh-CNCN346CN346&amp;ie=UTF-8" target="_blank">不了解wordpress插件机制的同学可以先了解一下</a>)：</p>

<div class="wp_syntax"><div class="code overflow"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">/*
* 以一个相册浏览的产品为例
* 该应用可以实现无刷新的图片浏览，附加功能:新用户引导，图片评论，对图片处理的第三方应用，圈人
*/</span>
<span style="color: #006600; font-style: italic;">//产品引导开始</span>
addAction<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'photo_browser_init'</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
     guideManager.<span style="color: #660066;">init</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
addAction<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'photo_load_sucess'</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>photo<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    guideManager.<span style="color: #660066;">step</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">3</span><span style="color: #339933;">,</span> photo<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
addAction<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'photo_change'</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>photo<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    guideManager.<span style="color: #660066;">step</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">4</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #006600; font-style: italic;">//产品引导结束</span>
&nbsp;
<span style="color: #006600; font-style: italic;">//管理员ui开始</span>
addAction<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'photo_browser_init'</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span>currentUser.<span style="color: #660066;">isAdmin</span> <span style="color: #009900;">&#41;</span> <span style="color: #000066; font-weight: bold;">return</span><span style="color: #339933;">;</span>
    ......
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #006600; font-style: italic;">//管理员ui结束</span>
&nbsp;
<span style="color: #006600; font-style: italic;">//相册圈人开始</span>
addAction<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'photo_browser_init'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    photo_tag.<span style="color: #660066;">init</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
addAction<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'photo_load|photo_change'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>photo<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    photo_tag.<span style="color: #660066;">update</span><span style="color: #009900;">&#40;</span>photo<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #006600; font-style: italic;">//相册圈人结束</span>
&nbsp;
<span style="color: #006600; font-style: italic;">//相片app</span>
addAction<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'photo_browser_init'</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>photo<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    photo_apps.<span style="color: #660066;">init</span><span style="color: #009900;">&#40;</span>photo<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
addAction<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'photo_load|photo_change'</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>photo<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    photo_apps.<span style="color: #660066;">update</span><span style="color: #009900;">&#40;</span>photo<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #006600; font-style: italic;">//相片app结束</span>
&nbsp;
<span style="color: #006600; font-style: italic;">//相片评论开始</span>
addAction<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'photo_browser_init'</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>photo<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    photo_comment.<span style="color: #660066;">init</span><span style="color: #009900;">&#40;</span>photo<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
addAction<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'photo_load|photo_change'</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>photo<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    photo_comment.<span style="color: #660066;">update</span><span style="color: #009900;">&#40;</span>photo<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #006600; font-style: italic;">//相片评论结束</span>
&nbsp;
<span style="color: #006600; font-style: italic;">//相片浏览核心功能开始</span>
<span style="color: #003366; font-weight: bold;">var</span> photo_browser <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span>...<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
photo_browser.<span style="color: #660066;">init</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #006600; font-style: italic;">//相片浏览核心功能结束</span></pre></div></div>

<p>其实跟自定义事件有点类似，但是比自定义事件更强大：</p>
<ul>
<li> 自定义依赖于对象，对脚本的加载顺序会有要求，而wordpress里的addFilter和addAction可以完美解决这个缺点。</li>
<li> filter可以实现数据过滤，而自定义事件不能</li>
</ul>
<p>经过解耦之后的产品更方便多人协作开发，代码块清晰，有效避免svn冲突，还有种种其他好处。。</p>
<p>仅仅是个想法，未经实践，实践ing~</p>
]]></content:encoded>
			<wfw:commentRss>http://bluehua.org/2009/12/22/751.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WP-Syntax + ZeroClipboard增强版</title>
		<link>http://bluehua.org/2009/08/25/402.html</link>
		<comments>http://bluehua.org/2009/08/25/402.html#comments</comments>
		<pubDate>Tue, 25 Aug 2009 00:22:37 +0000</pubDate>
		<dc:creator>小鹿</dc:creator>
				<category><![CDATA[soft]]></category>
		<category><![CDATA[highlight]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://bluehua.org/?p=402</guid>
		<description><![CDATA[上次发过一个增强版本,但是使用的复制脚本在flash升级到10版之后就失效了.
这次同样也是修改的0.9版的wp-syntax,跟上一个修改版本不同的就是

删除了存在漏洞的test目录
使用wp内置函数判断是否输出工具栏,使用url rewrite不会出问题
代码复制使用ZeroClipboard,可以兼容所有主流浏览器

效果:

&#60;html&#62;
&#60;script&#62;
alert&#40;'ooxx~'&#41;;
&#60;/script&#62;
&#60;/html&#62;

使用方法跟上一个版本一样
&#60;pre lang=&#8221;javascript&#8221; line=&#8221;1&#8243; run=&#8221;1&#8243;&#62;
把第三个参数设为1即可显示run Code的按钮.
下载点这里:wp-syntax-plus.zip
留言里有个叫whisperer 的同学问我用的啥插件,俺才想起来发一下,一大早起来发我也真不容易
]]></description>
			<content:encoded><![CDATA[<p><a href="http://bluehua.org/2008/08/30/52.html" target="_self">上次发过一个增强版本</a>,但是使用的复制脚本在flash升级到10版之后就失效了.</p>
<p>这次同样也是修改的0.9版的wp-syntax,跟上一个修改版本不同的就是</p>
<ul>
<li>删除了存在漏洞的test目录</li>
<li>使用wp内置函数判断是否输出工具栏,使用url rewrite不会出问题</li>
<li>代码复制使用<a href="http://code.google.com/p/zeroclipboard/" target="_blank">ZeroClipboard</a>,可以兼容所有主流浏览器</li>
</ul>
<p>效果:</p>

<div class="wp_syntax"><div class="code overflow"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>html<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>script<span style="color: #339933;">&gt;</span>
<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'ooxx~'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;/</span>html<span style="color: #339933;">&gt;</span></pre></div></div>

<p>使用方法跟上一个版本一样</p>
<p>&lt;pre lang=&#8221;javascript&#8221; line=&#8221;1&#8243; run=&#8221;1&#8243;&gt;</p>
<p>把第三个参数设为1即可显示run Code的按钮.</p>
<p>下载点这里:<a href="../wp-content/uploads/2009/08/wp-syntax-plus.zip">wp-syntax-plus.zip</a></p>
<p>留言里有个叫<span><cite></cite></span><a rel="external nofollow" href="http://bluehua.org/2009/07/31/355.html/comment-page-1#comment-3488">whisperer</a> 的同学问我用的啥插件,俺才想起来发一下,一大早起来发我也真不容易<img class="xemotion" src="http://bluehua.org/wp-content/plugins/x-emotions/emotions/msn/bofu2_23.gif" border="0" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://bluehua.org/2009/08/25/402.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>wordpress plugin:搜索引擎关键词高亮</title>
		<link>http://bluehua.org/2009/07/22/333.html</link>
		<comments>http://bluehua.org/2009/07/22/333.html#comments</comments>
		<pubDate>Wed, 22 Jul 2009 15:14:30 +0000</pubDate>
		<dc:creator>小鹿</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[highlight]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://bluehua.org/?p=333</guid>
		<description><![CDATA[下载地址更新 2009.11.8
http://wordpress.org/extend/plugins/keywords-highlight-tool/
&#8212;&#8212;&#8212;-
由于blog的访客多来自搜索引擎,所以关键词高亮会大大的增强访客的浏览体验,帮助访客快速定位感兴趣的内容.
类似插件已有很多,但俺绝不是再造普通的轮子,一定要用浏览器兼容性最好的插件,没有就自己搞..
现存插件的实现方式有两种,一种用php在后端实现,另一种用js在前端实现.
php实现高亮,浏览器兼容性最好,但是有两个问题:
1.效率问题,不如用js实现,将压力分到前端; 2.不支持cache类插件,当然这个问题可以通过hack cache插件解决,但是不可取.
js实现高亮:
比较理想的实现方法,搜到一篇文章叫也谈Wordpress关键词高亮 里面讲到用js高亮关键词,但是中文gb转码使用了vbscript,所以仅支持ie浏览器
于是用自己的想法简单实现了一下这个功能, 点击搜索测试 第一个结果就应该是了
screenshot:

跟上面提到插件的主要不同点:

改进了高亮的实现方法,仅替换元素的text节点,防止造成元素事件失效
判断如果不是外链过来的访客将不加载高亮的js脚本
百度链接过来,中文gb转码时使用php后台转码,兼容所有主流浏览器

目前仅添加了对google,yahoo,baidu三个搜索引擎的支持,如果想支持更多,自行修改highlight.js即可
插件下载点这里
]]></description>
			<content:encoded><![CDATA[<p>下载地址更新 2009.11.8<br />
<a href="http://wordpress.org/extend/plugins/keywords-highlight-tool/">http://wordpress.org/extend/plugins/keywords-highlight-tool/</a><br />
&#8212;&#8212;&#8212;-<br />
由于blog的访客多来自搜索引擎,所以关键词高亮会大大的增强访客的浏览体验,帮助访客快速定位感兴趣的内容.</p>
<p>类似插件已有很多,但俺绝不是再造普通的轮子,一定要用浏览器兼容性最好的插件,没有就自己搞..</p>
<p>现存插件的实现方式有两种,一种用php在后端实现,另一种用js在前端实现.</p>
<p>php实现高亮,浏览器兼容性最好,但是有两个问题:</p>
<p>1.效率问题,不如用js实现,将压力分到前端; 2.不支持cache类插件,当然这个问题可以通过hack cache插件解决,但是不可取.</p>
<p>js实现高亮:</p>
<p>比较理想的实现方法,搜到一篇文章叫<a href="http://www.jefflei.com/post/1041.html" target="_blank">也谈Wordpress关键词高亮</a> 里面讲到用js高亮关键词,但是中文gb转码使用了vbscript,所以仅支持ie浏览器</p>
<p>于是用自己的想法简单实现了一下这个功能, <a href="http://www.google.cn/search?hl=zh-CN&amp;rlz=1B3GGGL_zh-CNCN330CN331&amp;newwindow=1&amp;q=ajax+document+write+%E6%9D%8E%E5%AE%81+%E5%86%85%E8%81%94%E8%84%9A%E6%9C%AC+%E8%84%9A%E6%9C%AC&amp;btnG=Google+%E6%90%9C%E7%B4%A2" target="_blank">点击搜索测试</a> 第一个结果就应该是了<img class="xemotion" src="http://bluehua.org/wp-content/plugins/x-emotions/emotions/char/icon_lol.gif" border="0" alt="" /></p>
<p>screenshot:</p>
<p><a href="http://bluehua.org/wp-content/uploads/2009/07/2009-7-21-21-48-56.png"><img class="alignnone size-full wp-image-336" title="2009-7-21-21-48-56" src="http://bluehua.org/wp-content/uploads/2009/07/2009-7-21-21-48-56.png" alt="2009-7-21-21-48-56" width="565" height="518" /></a></p>
<p>跟上面提到插件的主要不同点:</p>
<ul>
<li>改进了高亮的实现方法,仅替换元素的text节点,防止造成元素事件失效</li>
<li>判断如果不是外链过来的访客将不加载高亮的js脚本</li>
<li>百度链接过来,中文gb转码时使用php后台转码,兼容所有主流浏览器</li>
</ul>
<p>目前仅添加了对google,yahoo,baidu三个搜索引擎的支持,如果想支持更多,自行修改highlight.js即可</p>
<p><a href="http://sites.google.com/site/sharemyidea09/wordpress-keywords-highlight-tool" target="_blank">插件下载点这里</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bluehua.org/2009/07/22/333.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Gmail to wordpress：通过mail更新wordpress</title>
		<link>http://bluehua.org/2009/06/02/312.html</link>
		<comments>http://bluehua.org/2009/06/02/312.html#comments</comments>
		<pubDate>Tue, 02 Jun 2009 13:51:10 +0000</pubDate>
		<dc:creator>小鹿</dc:creator>
				<category><![CDATA[soft]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://bluehua.org/2009/06/02/312.html</guid>
		<description><![CDATA[个人比较习惯用email更新博客，写日记用的blogger一直是手机写邮件更新，于是打算这个工作blog也要这么搞






wordpress自身有个通过邮件更新的功能，但是很弱，不支持附件.所以俺再次拿python做练习
实现方式：
发布blog时只要写信给somebody+xxoo@gmail.com
脚本会定时检查somebody@gmail邮箱，
取出收信人是somebody+xxoo@gmail.com的未读邮件（加xxoo为了防止垃圾邮件），然后将邮件正文中引用的图片取出，上传到blog或着picasa，将返回的地址作为图片的新地址，然后通过wordpress的metaWeblog api 发布到wordpress

实现特性：


可以通过添加&#34;[[tag:t1,t2,t3]]&#34;设定文章的标签
可以通过添加&#34;[[cat:c1,c2]]&#34;设定文章分类
可以添加&#34;[[end]]&#34;标记文章结尾，标记后面的字符将被忽略
可以添加[[html]][[/html]]块发布纯html代码块

可以将邮件中的图片提取，并上传到picasa或者wp



(备注：&#34;[[&#34;实际使用用时要用三个，即&#34;[[[xxxx]]]&#34;这里用两个是因为本文也是通过这个脚本发布的）



运行环境：python2.6(ubuntu)（其他版本未测)，gdata库

部分代码：

def after_publish&#40; self, mid &#41;:
&#160;
        self.mail.read&#40; mid &#41;
&#160;
&#160;
#实例化一个Gmail2Blog，参数依次为：gmail帐号，gmail密码，wp帐号，wp密码，blog的xmlrpc地址
myG2B = Gmail2Blog&#40; 'somebody@gmail.com', 'xxxx', 'admin', 'xxxx', 'http://xxoo.com/xmlrpc.php' &#41;
&#160;
&#160;
&#160;
#将处理完的邮件标记为已读
myG2B.publish_callback = after_publish
&#160;
#设置图片的上传方式，'picasa':上传到账户的picasa相册，'wp':上传到blog
myG2B.upload2 = 'picasa'
    
while True:
    #将收件箱中发送给'somebody+blog@gmail.com'的未读邮件发送到blog
&#160;
&#160;
    myG2B.publish_mail&#40; 'INBOX' , '(UNSEEN) (TO \&#34;somebody+blog@gmail.com\&#34;)' &#41;
    #每隔十分钟检查一次
    time.sleep&#40; 60 * 10 &#41;


源码下载：非常不靠谱版本（等靠谱了就放到vps上长期运行)
gmail2blog-sbeta.tar.gz


Gmail撰写截图：










]]></description>
			<content:encoded><![CDATA[<p>个人比较习惯用email更新博客，写日记用的blogger一直是手机写邮件更新，于是打算这个工作blog也要这么搞<img goomoji="338" style="margin: 0pt 0.2ex; vertical-align: middle;" src="http://lh4.ggpht.com/_l8FcMjS-xnI/SiUuIXS5nXI/AAAAAAAAFG0/W1vfUhNmGVc/new%20photo.gif?imgmax=640"></p>
<div class="gmail_quote">
<div class="gmail_quote">
<div class="gmail_quote">
<div class="gmail_quote">
<div>
<div class="im">
wordpress自身有个通过邮件更新的功能，但是很弱，不支持附件.所以俺再次拿python做练习</p>
<p>实现方式：</p>
<p>发布blog时只要写信给<a href="mailto:somebody%2Bxxoo@gmail.com">somebody+xxoo@gmail.com</a></p>
<p>脚本会定时检查somebody@gmail邮箱，
<div class="im">取出收信人是<a href="mailto:somebody%2Bxxoo@gmail.com" target="_blank">somebody+xxoo@gmail.com</a>的未读邮件（加xxoo为了防止垃圾邮件），然后将邮件正文中引用的图片取出，上传到blog或着picasa，将返回的地址作为图片的新地址，然后通过wordpress的<a href="http://codex.wordpress.org/XML-RPC_Support" target="_blank">metaWeblog api</a> 发布到wordpress</p>
</div>
<p>实现特性：</div>
<ul>
<div class="im">
<li>可以通过添加&quot;[[tag:t1,t2,t3]]&quot;设定文章的标签</li>
<li>可以通过添加&quot;[[cat:c1,c2]]&quot;设定文章分类</li>
<li>可以添加&quot;[[end]]&quot;标记文章结尾，标记后面的字符将被忽略</li>
<li>可以添加[[html]][[/html]]块发布纯html代码块</li>
</div>
<li>可以将邮件中的图片提取，并上传到picasa或者wp
</li>
</ul>
</div>
<div class="im">(备注：&quot;[[&quot;实际使用用时要用三个，即&quot;[[[xxxx]]]&quot;这里用两个是因为本文也是通过这个脚本发布的）</div>
<div>
<div class="im">
</div>
<p>运行环境：<br />python2.6(ubuntu)（其他版本未测)，<a href="http://code.google.com/apis/gdata/" target="_blank">gdata库</a>
<div class="im">
<p>部分代码：</p>

<div class="wp_syntax"><div class="code overflow"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">def</span> after_publish<span style="color: black;">&#40;</span> <span style="color: #008000;">self</span>, mid <span style="color: black;">&#41;</span>:
&nbsp;
        <span style="color: #008000;">self</span>.<span style="color: black;">mail</span>.<span style="color: black;">read</span><span style="color: black;">&#40;</span> mid <span style="color: black;">&#41;</span>
&nbsp;
&nbsp;
<span style="color: #808080; font-style: italic;">#实例化一个Gmail2Blog，参数依次为：gmail帐号，gmail密码，wp帐号，wp密码，blog的xmlrpc地址</span>
myG2B = Gmail2Blog<span style="color: black;">&#40;</span> <span style="color: #483d8b;">'somebody@gmail.com'</span>, <span style="color: #483d8b;">'xxxx'</span>, <span style="color: #483d8b;">'admin'</span>, <span style="color: #483d8b;">'xxxx'</span>, <span style="color: #483d8b;">'http://xxoo.com/xmlrpc.php'</span> <span style="color: black;">&#41;</span>
&nbsp;
&nbsp;
&nbsp;
<span style="color: #808080; font-style: italic;">#将处理完的邮件标记为已读</span>
myG2B.<span style="color: black;">publish_callback</span> = after_publish
&nbsp;
<span style="color: #808080; font-style: italic;">#设置图片的上传方式，'picasa':上传到账户的picasa相册，'wp':上传到blog</span>
myG2B.<span style="color: black;">upload2</span> = <span style="color: #483d8b;">'picasa'</span>
    
<span style="color: #ff7700;font-weight:bold;">while</span> <span style="color: #008000;">True</span>:
    <span style="color: #808080; font-style: italic;">#将收件箱中发送给'somebody+blog@gmail.com'的未读邮件发送到blog</span>
&nbsp;
&nbsp;
    myG2B.<span style="color: black;">publish_mail</span><span style="color: black;">&#40;</span> <span style="color: #483d8b;">'INBOX'</span> , <span style="color: #483d8b;">'(UNSEEN) (TO <span style="color: #000099; font-weight: bold;">\&quot;</span>somebody+blog@gmail.com<span style="color: #000099; font-weight: bold;">\&quot;</span>)'</span> <span style="color: black;">&#41;</span>
    <span style="color: #808080; font-style: italic;">#每隔十分钟检查一次</span>
    <span style="color: #dc143c;">time</span>.<span style="color: black;">sleep</span><span style="color: black;">&#40;</span> <span style="color: #ff4500;">60</span> <span style="color: #66cc66;">*</span> <span style="color: #ff4500;">10</span> <span style="color: black;">&#41;</span></pre></div></div>

</div>
<p>源码下载：<br />非常不靠谱版本（等靠谱了就放到vps上长期运行<img goomoji="32B" style="margin: 0pt 0.2ex; vertical-align: middle;" src="http://lh3.ggpht.com/_l8FcMjS-xnI/SiUuIRok4wI/AAAAAAAAFG4/XynMbvPzi_0/new%20photo.gif?imgmax=640">)</p>
<p><a href="http://sites.google.com/site/sharemyidea09/gmail-2-blog" target="_blank">gmail2blog-sbeta.tar.gz</a>
<div class="im">
<p></div>
<p>Gmail撰写截图：</p>
<p><img title="screenshot_016.png" alt="screenshot_016.png" src="http://lh5.ggpht.com/_l8FcMjS-xnI/SiUuI1KgYkI/AAAAAAAAFG8/tji9lyc-Oss/new%20photo.png?imgmax=640"></p>
</div>
</div>
<p>
</div>
<p>
</div>
<p>
</div>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://bluehua.org/2009/06/02/312.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>偶的又一wp插件:超级表情</title>
		<link>http://bluehua.org/2008/11/09/106.html</link>
		<comments>http://bluehua.org/2008/11/09/106.html#comments</comments>
		<pubDate>Sun, 09 Nov 2008 08:33:42 +0000</pubDate>
		<dc:creator>小鹿</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://bluehua.org/?p=106</guid>
		<description><![CDATA[8.29 2009
更新一下,没想到还有同学在下载这个东西哈哈~
最近加了一套柏夫表情,发现图片大小不一样会有错位的问题,修正一下
效果就看我现在用的就好了~
下载:x-emotions_0_1_3
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;
回复andy同学:如何自定义框的高度
请下载下面的样式文件
style.css
用记事本打开此文件

#xemotion_dialog_wraper&#123;
	width:100%;
	height:400px;/*把这个高度改成想要的高度*/
	position:absolute;
	text-align:left;
&#125;

然后传到插件的img目录覆盖原文件即可
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;
原来俺的emotion 一直都是拼错的,少了个c
&#8212;&#8212;&#8212;&#8212;&#62;emoticons
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;
有同学反映评论页没有生效,请确定一下评论框textarea元素的id是否为&#8217;comment&#8217;,是否安装了其他评论编辑插件
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;
更新到0.1.2
修正Maria同学提交的bug

为什么除了第一次，以后再用表情的分类都是乱码？

页面里没有指明编码方式,修正了~
下载:x-emotions_0_1_2
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-
更新一下:修正了 伊迭 同学反映的两个bug\

出现Fatal error: require_once() [function.require]: Failed opening required ‘../../../wp-load.php’ (include_path=’.:/usr/local/php5/lib/php’) in ……dialog_for_comment.php on line 69
在你这显示正常，在我那就掉位了…显示不全
几个浏览器都试遍了，就Opera好点….

0.1.1版本:x-emotions_0_1_1
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;
周末很无聊，写日志很无聊，额，于是写了一个插件：x-emotions
，啊哈哈哈哈，想贴就贴～
下载：　x-emotions_0_1
此插件最大的优点就是：可以添加多套表情，只要在表情目录新建一文件夹把新表情传到目录即可
安装时注意：里面的emotions文件夹的权限最好为777，cache文件要写到此目录
使用说明：
添加新表情：在插件的emotions目录新建一个目录（英文）然后把表情图片传到此目录，如果需要给此套新表情起个名字，则把名字写到一个utf-8编码的名为name.txt的文本文件里，并把此文件传到对应的表情目录．
注意：添加新表情之后必须删除emotions目录下的名字为&#8217;cache_for_editor.php&#8217;和&#8217;cache_for_comment.php&#8217;两个缓存文件，重建缓存之后才能看到新传的表情
自定义变量：
x-emotions.php 里的
$blue_emotions_enable_in_comments = true
//是否在留言启用此插件，默认为true，启用
screenshot
－－－－－－－－－－－－－－－－－－－－－－－－－
在编辑器使用

在编辑器使用时的对话框

在留言使用

在留言使用时的界面



]]></description>
			<content:encoded><![CDATA[<p>8.29 2009<br />
更新一下,没想到还有同学在下载这个东西哈哈~<br />
最近加了一套柏夫表情,发现图片大小不一样会有错位的问题,修正一下<br />
效果就看我现在用的就好了~</p>
<p>下载:<a href='http://bluehua.org/wp-content/uploads/2008/11/x-emotions_0_1_3.zip'>x-emotions_0_1_3</a></p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>回复andy同学:如何自定义框的高度</p>
<p>请下载下面的样式文件</p>
<p><a href="http://bluehua.org/wp-content/uploads/2008/11/style.css">style.css</a></p>
<p>用记事本打开此文件</p>

<div class="wp_syntax"><div class="code overflow"><pre class="css" style="font-family:monospace;"><span style="color: #cc00cc;">#xemotion_dialog_wraper</span><span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;"><span style="color: #cc66cc;">100</span>%</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">400px</span><span style="color: #00AA00;">;</span><span style="color: #808080; font-style: italic;">/*把这个高度改成想要的高度*/</span>
	<span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span><span style="color: #993333;">absolute</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">text-align</span><span style="color: #00AA00;">:</span><span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>然后传到插件的img目录覆盖原文件即可<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>原来俺的emotion 一直都是拼错的<img class="xemotion" src="http://bluehua.org/wp-content/plugins/x-emotions/emotions/daola/dora_jianzha.png" border="0" alt="" />,少了个c<br />
&#8212;&#8212;&#8212;&#8212;&gt;emoticons<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>有同学反映评论页没有生效,请确定一下评论框textarea元素的id是否为&#8217;comment&#8217;,是否安装了其他评论编辑插件</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>更新到0.1.2</p>
<p>修正Maria同学提交的bug</p>
<ul>
<li>为什么除了第一次，以后再用表情的分类都是乱码？</li>
</ul>
<p><img class="xemotion" src="http://bluehua.org/wp-content/plugins/x-emotions/emotions/daola/dora_jianzha.png" border="0" alt="" />页面里没有指明编码方式,修正了~</p>
<p>下载:<a href="http://bluehua.org/wp-content/uploads/2008/11/x-emotions_0_1_2.rar">x-emotions_0_1_2</a></p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>更新一下:修正了<span class="comment_author"> <cite><a rel="external nofollow" href="http://www.yidie.org/">伊迭</a></cite></span> 同学反映的两个bug\</p>
<ul>
<li>出现Fatal error: require_once() [function.require]: Failed opening required ‘../../../wp-load.php’ (include_path=’.:/usr/local/php5/lib/php’) in ……dialog_for_comment.php on line 69</li>
<li>在你这显示正常，在我那就掉位了…显示不全<br />
几个浏览器都试遍了，就Opera好点….</li>
</ul>
<p>0.1.1版本:<a href="http://bluehua.org/wp-content/uploads/2008/11/x-emotions_0_1_11.rar">x-emotions_0_1_1</a></p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>周末很无聊，写日志很无聊，额，于是写了一个插件：x-emotions</p>
<p><img class="xemotion" src="http://bluehua.org/wp-content/plugins/x-emotions/emotions/maomao/11.gif" border="0" alt="" />，啊哈哈哈哈，想贴就贴～</p>
<p>下载：　<a href="http://bluehua.org/wp-content/uploads/2008/11/x-emotions_0_1.rar">x-emotions_0_1</a></p>
<p>此插件最大的优点就是：可以添加多套表情，只要在表情目录新建一文件夹把新表情传到目录即可</p>
<p>安装时注意：里面的emotions文件夹的权限最好为777，cache文件要写到此目录</p>
<p>使用说明：</p>
<p>添加新表情：在插件的emotions目录新建一个目录（英文）然后把表情图片传到此目录，如果需要给此套新表情起个名字，则把名字写到一个utf-8编码的名为name.txt的文本文件里，并把此文件传到对应的表情目录．</p>
<p><strong><span style="color: #000000;">注意</span></strong>：添加新表情之后必须删除emotions目录下的名字为&#8217;cache_for_editor.php&#8217;和&#8217;cache_for_comment.php&#8217;两个缓存文件，重建缓存之后才能看到新传的表情</p>
<p>自定义变量：</p>
<p>x-emotions.php 里的</p>
<p>$blue_emotions_enable_in_comments = true</p>
<p>//是否在留言启用此插件，默认为true，启用</p>
<p>screenshot</p>
<p>－－－－－－－－－－－－－－－－－－－－－－－－－</p>
<p>在编辑器使用</p>
<p><a href="http://bluehua.org/wp-content/uploads/2008/11/snag-0043.png"><img class="alignnone size-medium wp-image-107" title="snag-0043" src="http://bluehua.org/wp-content/uploads/2008/11/snag-0043-300x104.png" alt="" width="300" height="104" /></a></p>
<p>在编辑器使用时的对话框</p>
<p><a href="http://bluehua.org/wp-content/uploads/2008/11/snag-0042.png"><img class="alignnone size-medium wp-image-110" title="snag-0042" src="http://bluehua.org/wp-content/uploads/2008/11/snag-0042-300x253.png" alt="" width="300" height="253" /></a></p>
<p>在留言使用</p>
<p><a href="http://bluehua.org/wp-content/uploads/2008/11/snag-0040.png"><img class="alignnone size-medium wp-image-108" title="snag-0040" src="http://bluehua.org/wp-content/uploads/2008/11/snag-0040-249x300.png" alt="" width="249" height="300" /></a></p>
<p>在留言使用时的界面</p>
<p><a href="http://bluehua.org/wp-content/uploads/2008/11/snag-0041.png"><img class="alignnone size-medium wp-image-109" title="snag-0041" src="http://bluehua.org/wp-content/uploads/2008/11/snag-0041-300x124.png" alt="" width="300" height="124" /></a></p>
<p><a href="http://bluehua.org/wp-content/uploads/2008/11/snag-0040.png"><br />
</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bluehua.org/2008/11/09/106.html/feed</wfw:commentRss>
		<slash:comments>67</slash:comments>
		</item>
		<item>
		<title>无聊写个wp插件:给日志添加当天天气-blueweather</title>
		<link>http://bluehua.org/2008/09/01/61.html</link>
		<comments>http://bluehua.org/2008/09/01/61.html#comments</comments>
		<pubDate>Sun, 31 Aug 2008 16:38:17 +0000</pubDate>
		<dc:creator>小鹿</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://bluehua.org/?p=61</guid>
		<description><![CDATA[北京:晴,19.5℃,西西北风1级
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-
又改了一下,直接使用class-snoopy.php~~
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-
这个周末有点无聊,本来打算看看c++,给手机搞个可以同步时间的软件,但是看了半天,symbian远比我想象的麻烦,装了开发环境,但是一编译vc就挂了~
逛了一下wordpress中文站,发现有个想法不错,就是在日志编辑器直接插入当天的天气,遂实现之~~
实现过程很简单:通过ip查询地名,然后根据地名获取天气.
这个版本需要curl库的支持,但是装curl的虚拟主机好像也不是很多(shit,竟然不给装soap~),有时间改个fsocket版的再发~~
]]></description>
			<content:encoded><![CDATA[<p>北京:晴,19.5℃,西西北风1级</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>又改了一下,直接使用class-snoopy.php~~</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>这个周末有点无聊,本来打算看看c++,给手机搞个可以同步时间的软件,但是看了半天,symbian远比我想象的麻烦,装了开发环境,但是一编译vc就挂了~</p>
<p>逛了一下wordpress中文站,发现有个想法不错,就是在日志编辑器直接插入当天的天气,遂实现之~~</p>
<p>实现过程很简单:通过ip查询地名,然后根据地名获取天气.</p>
<p>这个版本需要curl库的支持,但是装curl的虚拟主机好像也不是很多(shit,竟然不给装soap~),有时间改个fsocket版的再发~~</p>
<div id="attachment_60" class="wp-caption alignnone" style="width: 510px"><a href="http://bluehua.org/wp-content/uploads/2008/09/snag-0017.png"><img class="size-full wp-image-60" title="snag-0017" src="http://bluehua.org/wp-content/uploads/2008/09/snag-0017.png" alt="blueweather" width="500" height="104" /></a><p class="wp-caption-text">blueweather</p></div>
]]></content:encoded>
			<wfw:commentRss>http://bluehua.org/2008/09/01/61.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>WP-Syntax 0.9 增强版</title>
		<link>http://bluehua.org/2008/08/30/52.html</link>
		<comments>http://bluehua.org/2008/08/30/52.html#comments</comments>
		<pubDate>Sat, 30 Aug 2008 08:24:44 +0000</pubDate>
		<dc:creator>小鹿</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://bluehua.org/?p=52</guid>
		<description><![CDATA[agin想起来了,mod_rewrite最后还是会给普通的参数形式,所以木问题~
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;
想起来了,如果启用了URL静态化下面的视图屏蔽就不起作用了,再说了~~
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;
恩,增加了代码的copy和runHTML功能
&#60;pre lang=&#8221;javascript&#8221; line=&#8221;1&#8243; run=&#8221;1&#8243;&#62;
把第三个参数设为1即可显示run Code的按钮.
此外在分类,tag和搜索视图禁用了语法高亮,在feed输出时将不显示两个功能按钮.
下载:wp-syntax
]]></description>
			<content:encoded><![CDATA[<div id="attachment_51" class="wp-caption alignnone" style="width: 310px"><a href="http://bluehua.org/wp-content/uploads/2008/08/snag-0016.png"><img class="size-medium wp-image-51" title="snag-0016" src="http://bluehua.org/wp-content/uploads/2008/08/snag-0016-300x119.png" alt="WP-Syntax" width="300" height="119" /></a><p class="wp-caption-text">WP-Syntax</p></div>
<p>agin想起来了,mod_rewrite最后还是会给普通的参数形式,所以木问题~</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>想起来了,如果启用了URL静态化下面的视图屏蔽就不起作用了,再说了~~</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>恩,增加了代码的copy和runHTML功能</p>
<p>&lt;pre lang=&#8221;javascript&#8221; line=&#8221;1&#8243; run=&#8221;1&#8243;&gt;</p>
<p>把第三个参数设为1即可显示run Code的按钮.</p>
<p>此外在分类,tag和搜索视图禁用了语法高亮,在feed输出时将不显示两个功能按钮.</p>
<p>下载:<a href="http://bluehua.org/wp-content/uploads/2008/08/wp-syntax.rar">wp-syntax</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bluehua.org/2008/08/30/52.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.334 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2010-09-10 18:32:42 -->
