<?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>Bread &#38; Cup &#187; plugin</title>
	<atom:link href="http://blog.breadncup.com/tag/plugin/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.breadncup.com</link>
	<description></description>
	<lastBuildDate>Sat, 28 Jan 2012 11:25:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>WordPress Plugin: Keyword Link Plugin Modification (V0.6)</title>
		<link>http://blog.breadncup.com/2009/01/02/wordpress-plugin-keyword-link-plugin-modification-v06/</link>
		<comments>http://blog.breadncup.com/2009/01/02/wordpress-plugin-keyword-link-plugin-modification-v06/#comments</comments>
		<pubDate>Fri, 02 Jan 2009 23:47:13 +0000</pubDate>
		<dc:creator>Breadncup</dc:creator>
				<category><![CDATA[wordpress]]></category>
		<category><![CDATA[auto]]></category>
		<category><![CDATA[automatically]]></category>
		<category><![CDATA[keyword]]></category>
		<category><![CDATA[link]]></category>
		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://blog.breadncup.com/?p=64</guid>
		<description><![CDATA[While using Keyword Link Plugin for wordpress, I found one bug and made it to support utf-8 fully.]]></description>
			<content:encoded><![CDATA[<p>I have been researching to find keyword link plugin which is able to add a hyperlink automatically for a specific keyword, and finally, found that <a title="Wordpress Keyword Link Plugin" href="http://www.dijksterhuis.org/wordpress-plugins/keyword-link-plugin/" target="_blank">Keyword Link Plugin</a><sup>[<a href="http://blog.breadncup.com/2009/01/02/wordpress-plugin-keyword-link-plugin-modification-v06/#footnote_0_64" id="identifier_0_64" class="footnote-link footnote-identifier-link" title="Plugin Homepage: WordPress Keyword Link Plugin">1</a>]</sup><sup>[<a href="http://blog.breadncup.com/2009/01/02/wordpress-plugin-keyword-link-plugin-modification-v06/#footnote_1_64" id="identifier_1_64" class="footnote-link footnote-identifier-link" title="Wordpress Plugin Page: BlogMechanics KeywordLink">2</a>]</sup></p>
<p>This is great plugin what I have been looking for. The features I have focused when I search the plugin are</p>
<ul>
<li>Putting a keyword which will be added with hyperlink automatically.</li>
<li>Supporing UTF-8 encoding/decoding.</li>
<li>Opening target with _blank (new window).</li>
</ul>
<p>However, it does not seem to fully support UTF-8. In order to make it work correctly, I had to modify the plugin. Also, I found there is a bug in current 0.6 version when &#8220;EDIT&#8221; is clicked. So, here I note for myself to modify the plugin and want to share this with others.</p>
<p><strong>1. Bug: It does not record option correctly when it stores information.</strong></p>
<p>This is not a problem when import/export CSV is being used. This happens when adding/modifying in the form in the plugin setting page is being used. When it stores keyword with options, it writes them incorrect format in wordpress option table. For example, if you put like this in the plugin setting page,</p>
<p><img title="Wordpress keyword link plugin option selection" src="http://farm4.static.flickr.com/3259/3160761885_a1486fe4df.jpg" alt="Wordpress keyword link plugin option selection" /></p>
<p>then, the stored information for option is supposed to be &#8220;0|0|1|1|0&#8243;, but it stores like &#8220;||new window|ignore case|&#8221;, so when I click the &#8220;EDIT&#8221; button, it shows like this way always</p>
<p><img title="bug picture when edit button is clicked." src="http://farm4.static.flickr.com/3132/3161610102_f5ab4cf0e6.jpg" alt="bug picture when edit button is clicked." width="500" height="129" /></p>
<p>So, I have added following function of bm_getvalue() and modify bm_keywordlink_savenew() function like this:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> bm_getvalue<span style="color: #009900;">&#40;</span><span style="color: #000088;">$var</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
     <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$var</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	  <span style="color: #b1b100;">return</span> <span style="color: #0000ff;">&quot;1&quot;</span><span style="color: #339933;">;</span>
     <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
	  <span style="color: #b1b100;">return</span> <span style="color: #0000ff;">&quot;0&quot;</span><span style="color: #339933;">;</span>
     <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> bm_keywordlink_savenew<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
      <span style="color: #000088;">$links</span> <span style="color: #339933;">=</span> get_option<span style="color: #009900;">&#40;</span>BM_KEYWORDLINK_OPTION<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000088;">$keyword</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'keyword'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$link</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'link'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$nofollow</span> <span style="color: #339933;">=</span> bm_getvalue<span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'nofollow'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 		<span style="color: #000088;">$firstonly</span> <span style="color: #339933;">=</span> bm_getvalue<span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'firstonly'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 		<span style="color: #000088;">$newwindow</span> <span style="color: #339933;">=</span> bm_getvalue<span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'newwindow'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 		<span style="color: #000088;">$ignorecase</span> <span style="color: #339933;">=</span> bm_getvalue<span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'ignorecase'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 		<span style="color: #000088;">$isaffiliate</span> <span style="color: #339933;">=</span> bm_getvalue<span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'isaffiliate'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
&nbsp;
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$keyword</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">''</span> <span style="color: #339933;">||</span> <span style="color: #000088;">$link</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
		  bm_keywordlink_topbarmessage<span style="color: #009900;">&#40;</span>__<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Please enter both a keyword and URL'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		  <span style="color: #b1b100;">return</span><span style="color: #339933;">;</span>     		  
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$links</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$keyword</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
		  bm_keywordlink_topbarmessage<span style="color: #009900;">&#40;</span>__<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Existing keyword has been updated'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
 		<span style="color: #666666; font-style: italic;">/* Store the link */</span> 
	  <span style="color: #000088;">$links</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$keyword</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">implode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'|'</span><span style="color: #339933;">,</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$link</span><span style="color: #339933;">,</span><span style="color: #000088;">$nofollow</span><span style="color: #339933;">,</span><span style="color: #000088;">$firstonly</span><span style="color: #339933;">,</span><span style="color: #000088;">$newwindow</span><span style="color: #339933;">,</span><span style="color: #000088;">$ignorecase</span><span style="color: #339933;">,</span><span style="color: #000088;">$isaffiliate</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	  update_option<span style="color: #009900;">&#40;</span>BM_KEYWORDLINK_OPTION<span style="color: #339933;">,</span><span style="color: #000088;">$links</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>      
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>After this, it works.</p>
<p><strong>2. Support UTF-8</strong></p>
<p><strong>2-1. Following readme.txt suggestion in the plugin<br />
</strong></p>
<p>In readme.txt, it mentioned that if you want it to recognize Asian language, it requires modify $regEx variable in bm_keywordlink.php. Actually, it is needed to modify it. The part of function in the file is bm_keywordlink_replace(), and go to the end of the line, you can find where is needed to modify. You need to modify from</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$regEx</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'\'(?!((&lt;.*?)|(&lt;a.*?)))(\b'</span><span style="color: #339933;">.</span> <span style="color: #000088;">$cleankeyword</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'\b)(?!(([^&lt;&gt;]*?)&gt;)|([^&gt;]*?&lt;/a&gt;))\'s'</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$case</span><span style="color: #339933;">;</span></pre></div></div>

<p>to</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$regEx</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'\'(?!((&lt;.*?)|(&lt;a.*?)))('</span><span style="color: #339933;">.</span> <span style="color: #000088;">$cleankeyword</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">')(?!(([^&lt;&gt;]*?)&gt;)|([^&gt;]*?&lt;/a&gt;))\'s'</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$case</span><span style="color: #339933;">;</span></pre></div></div>

<p>as readme.txt suggestion.</p>
<p><strong>2-2. Adding decode64 for UTF-8 support</strong></p>
<p>It already provides decode64() javascript function there, but it does not seems to work with Asian language. In order to work with utf-8 correctly, I brought the decode javascript code from <a title="WebToolKit Javascript base64" href="http://www.webtoolkit.info/javascript-base64.html" target="_blank">WebToolKit site</a>. Here is the part of it</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #009933; font-style: italic;">/**
/**
*
*  Base64 encode / decode
*  http://www.webtoolkit.info/
*
**/</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">var</span> Base64 <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">// private property</span>
    _keyStr <span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=&quot;</span><span style="color: #339933;">,</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">// public method for encoding</span>
    encode <span style="color: #339933;">:</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span>input<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">var</span> output <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">var</span> chr1<span style="color: #339933;">,</span> chr2<span style="color: #339933;">,</span> chr3<span style="color: #339933;">,</span> enc1<span style="color: #339933;">,</span> enc2<span style="color: #339933;">,</span> enc3<span style="color: #339933;">,</span> enc4<span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">var</span> i <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
&nbsp;
        input <span style="color: #339933;">=</span> Base64<span style="color: #339933;">.</span>_utf8_encode<span style="color: #009900;">&#40;</span>input<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span>i <span style="color: #339933;">&lt;</span> input<span style="color: #339933;">.</span>length<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
            chr1 <span style="color: #339933;">=</span> input<span style="color: #339933;">.</span>charCodeAt<span style="color: #009900;">&#40;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            chr2 <span style="color: #339933;">=</span> input<span style="color: #339933;">.</span>charCodeAt<span style="color: #009900;">&#40;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            chr3 <span style="color: #339933;">=</span> input<span style="color: #339933;">.</span>charCodeAt<span style="color: #009900;">&#40;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
            enc1 <span style="color: #339933;">=</span> chr1 <span style="color: #339933;">&gt;&gt;</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">;</span>
            enc2 <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>chr1 <span style="color: #339933;">&amp;</span> <span style="color: #cc66cc;">3</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;&lt;</span> <span style="color: #cc66cc;">4</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">|</span> <span style="color: #009900;">&#40;</span>chr2 <span style="color: #339933;">&gt;&gt;</span> <span style="color: #cc66cc;">4</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            enc3 <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>chr2 <span style="color: #339933;">&amp;</span> <span style="color: #cc66cc;">15</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;&lt;</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">|</span> <span style="color: #009900;">&#40;</span>chr3 <span style="color: #339933;">&gt;&gt;</span> <span style="color: #cc66cc;">6</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            enc4 <span style="color: #339933;">=</span> chr3 <span style="color: #339933;">&amp;</span> <span style="color: #cc66cc;">63</span><span style="color: #339933;">;</span>
&nbsp;
            <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>isNaN<span style="color: #009900;">&#40;</span>chr2<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                enc3 <span style="color: #339933;">=</span> enc4 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">64</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>isNaN<span style="color: #009900;">&#40;</span>chr3<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                enc4 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">64</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
&nbsp;
            output <span style="color: #339933;">=</span> output <span style="color: #339933;">+</span>
            this<span style="color: #339933;">.</span>_keyStr<span style="color: #339933;">.</span>charAt<span style="color: #009900;">&#40;</span>enc1<span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> this<span style="color: #339933;">.</span>_keyStr<span style="color: #339933;">.</span>charAt<span style="color: #009900;">&#40;</span>enc2<span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span>
            this<span style="color: #339933;">.</span>_keyStr<span style="color: #339933;">.</span>charAt<span style="color: #009900;">&#40;</span>enc3<span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> this<span style="color: #339933;">.</span>_keyStr<span style="color: #339933;">.</span>charAt<span style="color: #009900;">&#40;</span>enc4<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #009900;">&#125;</span>
&nbsp;
        <span style="color: #b1b100;">return</span> output<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">// public method for decoding</span>
    decode <span style="color: #339933;">:</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span>input<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">var</span> output <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">var</span> chr1<span style="color: #339933;">,</span> chr2<span style="color: #339933;">,</span> chr3<span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">var</span> enc1<span style="color: #339933;">,</span> enc2<span style="color: #339933;">,</span> enc3<span style="color: #339933;">,</span> enc4<span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">var</span> i <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
&nbsp;
        input <span style="color: #339933;">=</span> input<span style="color: #339933;">.</span>replace<span style="color: #009900;">&#40;</span><span style="color: #339933;">/</span><span style="color: #009900;">&#91;</span>^A<span style="color: #339933;">-</span>Za<span style="color: #339933;">-</span>z0<span style="color: #339933;">-</span><span style="color: #cc66cc;">9</span>\<span style="color: #339933;">+</span>\<span style="color: #339933;">/</span>\<span style="color: #339933;">=</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">/</span>g<span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span>i <span style="color: #339933;">&lt;</span> input<span style="color: #339933;">.</span>length<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
            enc1 <span style="color: #339933;">=</span> this<span style="color: #339933;">.</span>_keyStr<span style="color: #339933;">.</span>indexOf<span style="color: #009900;">&#40;</span>input<span style="color: #339933;">.</span>charAt<span style="color: #009900;">&#40;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            enc2 <span style="color: #339933;">=</span> this<span style="color: #339933;">.</span>_keyStr<span style="color: #339933;">.</span>indexOf<span style="color: #009900;">&#40;</span>input<span style="color: #339933;">.</span>charAt<span style="color: #009900;">&#40;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            enc3 <span style="color: #339933;">=</span> this<span style="color: #339933;">.</span>_keyStr<span style="color: #339933;">.</span>indexOf<span style="color: #009900;">&#40;</span>input<span style="color: #339933;">.</span>charAt<span style="color: #009900;">&#40;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            enc4 <span style="color: #339933;">=</span> this<span style="color: #339933;">.</span>_keyStr<span style="color: #339933;">.</span>indexOf<span style="color: #009900;">&#40;</span>input<span style="color: #339933;">.</span>charAt<span style="color: #009900;">&#40;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
            chr1 <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>enc1 <span style="color: #339933;">&lt;&lt;</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">|</span> <span style="color: #009900;">&#40;</span>enc2 <span style="color: #339933;">&gt;&gt;</span> <span style="color: #cc66cc;">4</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            chr2 <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>enc2 <span style="color: #339933;">&amp;</span> <span style="color: #cc66cc;">15</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;&lt;</span> <span style="color: #cc66cc;">4</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">|</span> <span style="color: #009900;">&#40;</span>enc3 <span style="color: #339933;">&gt;&gt;</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            chr3 <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>enc3 <span style="color: #339933;">&amp;</span> <span style="color: #cc66cc;">3</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;&lt;</span> <span style="color: #cc66cc;">6</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">|</span> enc4<span style="color: #339933;">;</span>
&nbsp;
            output <span style="color: #339933;">=</span> output <span style="color: #339933;">+</span> String<span style="color: #339933;">.</span>fromCharCode<span style="color: #009900;">&#40;</span>chr1<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
            <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>enc3 <span style="color: #339933;">!=</span> <span style="color: #cc66cc;">64</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                output <span style="color: #339933;">=</span> output <span style="color: #339933;">+</span> String<span style="color: #339933;">.</span>fromCharCode<span style="color: #009900;">&#40;</span>chr2<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
            <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>enc4 <span style="color: #339933;">!=</span> <span style="color: #cc66cc;">64</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                output <span style="color: #339933;">=</span> output <span style="color: #339933;">+</span> String<span style="color: #339933;">.</span>fromCharCode<span style="color: #009900;">&#40;</span>chr3<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
&nbsp;
        <span style="color: #009900;">&#125;</span>
&nbsp;
        output <span style="color: #339933;">=</span> Base64<span style="color: #339933;">.</span>_utf8_decode<span style="color: #009900;">&#40;</span>output<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #b1b100;">return</span> output<span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">// private method for UTF-8 encoding</span>
    _utf8_encode <span style="color: #339933;">:</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span>string<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        string <span style="color: #339933;">=</span> string<span style="color: #339933;">.</span>replace<span style="color: #009900;">&#40;</span><span style="color: #339933;">/</span>\r\n<span style="color: #339933;">/</span>g<span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">var</span> utftext <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> n <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> n <span style="color: #339933;">&lt;</span> string<span style="color: #339933;">.</span>length<span style="color: #339933;">;</span> n<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
            <span style="color: #000000; font-weight: bold;">var</span> c <span style="color: #339933;">=</span> string<span style="color: #339933;">.</span>charCodeAt<span style="color: #009900;">&#40;</span>n<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
            <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>c <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">128</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                utftext <span style="color: #339933;">+=</span> String<span style="color: #339933;">.</span>fromCharCode<span style="color: #009900;">&#40;</span>c<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
            <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>c <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">127</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #009900;">&#40;</span>c <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">2048</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                utftext <span style="color: #339933;">+=</span> String<span style="color: #339933;">.</span>fromCharCode<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>c <span style="color: #339933;">&gt;&gt;</span> <span style="color: #cc66cc;">6</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">|</span> <span style="color: #cc66cc;">192</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                utftext <span style="color: #339933;">+=</span> String<span style="color: #339933;">.</span>fromCharCode<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>c <span style="color: #339933;">&amp;</span> <span style="color: #cc66cc;">63</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">|</span> <span style="color: #cc66cc;">128</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
            <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
                utftext <span style="color: #339933;">+=</span> String<span style="color: #339933;">.</span>fromCharCode<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>c <span style="color: #339933;">&gt;&gt;</span> <span style="color: #cc66cc;">12</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">|</span> <span style="color: #cc66cc;">224</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                utftext <span style="color: #339933;">+=</span> String<span style="color: #339933;">.</span>fromCharCode<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>c <span style="color: #339933;">&gt;&gt;</span> <span style="color: #cc66cc;">6</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span> <span style="color: #cc66cc;">63</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">|</span> <span style="color: #cc66cc;">128</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                utftext <span style="color: #339933;">+=</span> String<span style="color: #339933;">.</span>fromCharCode<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>c <span style="color: #339933;">&amp;</span> <span style="color: #cc66cc;">63</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">|</span> <span style="color: #cc66cc;">128</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
&nbsp;
        <span style="color: #009900;">&#125;</span>
&nbsp;
        <span style="color: #b1b100;">return</span> utftext<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">// private method for UTF-8 decoding</span>
    _utf8_decode <span style="color: #339933;">:</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span>utftext<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">var</span> string <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">var</span> i <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">var</span> c <span style="color: #339933;">=</span> c1 <span style="color: #339933;">=</span> c2 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span> i <span style="color: #339933;">&lt;</span> utftext<span style="color: #339933;">.</span>length <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
            c <span style="color: #339933;">=</span> utftext<span style="color: #339933;">.</span>charCodeAt<span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
            <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>c <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">128</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                string <span style="color: #339933;">+=</span> String<span style="color: #339933;">.</span>fromCharCode<span style="color: #009900;">&#40;</span>c<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                i<span style="color: #339933;">++;</span>
            <span style="color: #009900;">&#125;</span>
            <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>c <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">191</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #009900;">&#40;</span>c <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">224</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                c2 <span style="color: #339933;">=</span> utftext<span style="color: #339933;">.</span>charCodeAt<span style="color: #009900;">&#40;</span>i<span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                string <span style="color: #339933;">+=</span> String<span style="color: #339933;">.</span>fromCharCode<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>c <span style="color: #339933;">&amp;</span> <span style="color: #cc66cc;">31</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;&lt;</span> <span style="color: #cc66cc;">6</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">|</span> <span style="color: #009900;">&#40;</span>c2 <span style="color: #339933;">&amp;</span> <span style="color: #cc66cc;">63</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                i <span style="color: #339933;">+=</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
            <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
                c2 <span style="color: #339933;">=</span> utftext<span style="color: #339933;">.</span>charCodeAt<span style="color: #009900;">&#40;</span>i<span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                c3 <span style="color: #339933;">=</span> utftext<span style="color: #339933;">.</span>charCodeAt<span style="color: #009900;">&#40;</span>i<span style="color: #339933;">+</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                string <span style="color: #339933;">+=</span> String<span style="color: #339933;">.</span>fromCharCode<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>c <span style="color: #339933;">&amp;</span> <span style="color: #cc66cc;">15</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;&lt;</span> <span style="color: #cc66cc;">12</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">|</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>c2 <span style="color: #339933;">&amp;</span> <span style="color: #cc66cc;">63</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;&lt;</span> <span style="color: #cc66cc;">6</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">|</span> <span style="color: #009900;">&#40;</span>c3 <span style="color: #339933;">&amp;</span> <span style="color: #cc66cc;">63</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                i <span style="color: #339933;">+=</span> <span style="color: #cc66cc;">3</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
&nbsp;
        <span style="color: #009900;">&#125;</span>
&nbsp;
        <span style="color: #b1b100;">return</span> string<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>And, modify function of BMEditKeyword() like following:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">		<span style="color: #000000; font-weight: bold;">function</span> BMEditKeyword<span style="color: #009900;">&#40;</span>keyword<span style="color: #339933;">,</span>url<span style="color: #339933;">,</span>nofollow<span style="color: #339933;">,</span>firstonly<span style="color: #339933;">,</span>newwindow<span style="color: #339933;">,</span>ignorecase<span style="color: #339933;">,</span>isaffiliate<span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
 			 document<span style="color: #339933;">.</span>bm_keywordadd<span style="color: #339933;">.</span>keyword<span style="color: #339933;">.</span>value      <span style="color: #339933;">=</span> Base64<span style="color: #339933;">.</span>decode<span style="color: #009900;">&#40;</span>keyword<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			 document<span style="color: #339933;">.</span>bm_keywordadd<span style="color: #339933;">.</span><span style="color: #990000;">link</span><span style="color: #339933;">.</span>value         <span style="color: #339933;">=</span> Base64<span style="color: #339933;">.</span>decode<span style="color: #009900;">&#40;</span>url<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			 document<span style="color: #339933;">.</span>bm_keywordadd<span style="color: #339933;">.</span>nofollow<span style="color: #339933;">.</span>checked   <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>nofollow<span style="color: #339933;">==</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			 document<span style="color: #339933;">.</span>bm_keywordadd<span style="color: #339933;">.</span>firstonly<span style="color: #339933;">.</span>checked  <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>firstonly<span style="color: #339933;">==</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			 document<span style="color: #339933;">.</span>bm_keywordadd<span style="color: #339933;">.</span>newwindow<span style="color: #339933;">.</span>checked  <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>newwindow<span style="color: #339933;">==</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			 document<span style="color: #339933;">.</span>bm_keywordadd<span style="color: #339933;">.</span>ignorecase<span style="color: #339933;">.</span>checked <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>ignorecase<span style="color: #339933;">==</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			 document<span style="color: #339933;">.</span>bm_keywordadd<span style="color: #339933;">.</span>isaffiliate<span style="color: #339933;">.</span>checked<span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>isaffiliate<span style="color: #339933;">==</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			 window<span style="color: #339933;">.</span>location<span style="color: #339933;">.</span><span style="color: #990000;">hash</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;keywordeditor&quot;</span><span style="color: #339933;">;</span> 
		<span style="color: #009900;">&#125;</span></pre></div></div>

<p>2.1 and 2.2 are needed to support utf-8 fully. After this, when you click &#8220;EDIT&#8221; button, it will bring Asian Character correctly in the form.</p>
<p>I hope the author to add above, but until then, I am satisfied with it.</p>
 <img src="http://blog.breadncup.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=64" width="1" height="1" style="display: none;" /><ol class="footnotes"><li id="footnote_0_64" class="footnote">Plugin Homepage: <a title="Permanent Link to WordPress Keyword Link Plugin" rel="bookmark" href="http://www.dijksterhuis.org/wordpress-plugins/keyword-link-plugin/">WordPress Keyword Link Plugin</a></li><li id="footnote_1_64" class="footnote">WordPress Plugin Page: <a title="BlogMechanics KeywordLink" href="http://wordpress.org/extend/plugins/blog-mechanics-keyword-link-plugin-v01/" target="_blank">BlogMechanics KeywordLink</a></li></ol>]]></content:encoded>
			<wfw:commentRss>http://blog.breadncup.com/2009/01/02/wordpress-plugin-keyword-link-plugin-modification-v06/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

