r-Studio

« メタルプラスネットで1万円引き | DQNは便利な単語 »

"A Tag-Suggest"導入法

文字サイズ変更:

文字サイズ大

文字サイズ標準

文字サイズ小

現在の文字サイズ:

文字サイズ大

文字サイズ標準

文字サイズ小

Top > Movable Type > "A Tag-Suggest"導入法

"Tagwire Plugin"導入法Movable TypeのカテゴリーをTag化することを紹介しましたが、TagはTagなりに悩みも生じてきます。
すなわち、Tagが増加してくると、過去に一体どんなTagを自分が作ったかを忘れてしまい、似たようなTagが乱立しかねないという懸念です。

その懸念を軽減してくれるのが、A Tag-Suggestです。
名前の通り"Google Suggest"のように、キーワード欄に文字を入力すると、過去に自分が作ったTagの中から予想される単語を補完して表示してくれるという優れもの。

導入法はA Tag-Suggestを読めばわかりますが、英語なので簡単に説明します。

まず、Movable Typeの管理画面のテンプレートを開き、"テンプレートを新規作成"します。
ファイル名は"keywords_list.php"とし、内容は以下をコピペします。

<?php
// Put together a list of all keywords or tags.
$string = '<MTEntries lastn="10000"><MTEntryKeywords encode_php="q"> </MTEntries>';
// Remove duplicates and line endings, etc.
$rawkeywords = preg_split( '/¥s*[,| |¥n]¥s*/m', $string );
$keywords = array_unique ( $rawkeywords );
natcasesort( $keywords );
// Build an array for the JavaScript function to use.
echo 'var customarray = new Array( ';
foreach ($keywords as $value) {
echo "'$value', "; }
echo "'' );";
?>

次にactb.jsをダウンロードし、MTディレクトリのメインページのファイル等が置かれている場所にアップロードします。

そしてtmpl/cms/edit_entry.tmplを開き、以下の部分を

<TMPL_IF NAME=DISP_PREFS_SHOW_KEYWORDS>
<div class="field">
<label for="keywords"><MT_TRANS phrase="Keywords"></label> <a href="#" onclick="return openManual('entries', 'item_keywords')" class="help">?</a><br />
<textarea class="full-width" name="keywords" id="keywords" tabindex="6" rows="2"><TMPL_VAR NAME=KEYWORDS ESCAPE=HTML></textarea>
</div>
</TMPL_IF>

以下のように書き換えます。

<TMPL_IF NAME=DISP_PREFS_SHOW_KEYWORDS>
<div class="field">
<label for="keywords"><MT_TRANS phrase="Keywords"></label> <a href="#" onclick="return openManual('entries', 'item_keywords')" class="help">?</a><br />
<script language="javascript" type="text/javascript" src="http://あなたのブログURL/actb.js"></script>
<script language="javascript" type="text/javascript" src="http://あなたのブログURL/keywords_list.php"></script>
<input autocomplete="off" class="full-width" name="keywords" id="keywords" tabindex="6" onfocus="actb(this,event,customarray);" value="<TMPL_VAR NAME=KEYWORDS ESCAPE=HTML>" size="90" /><br />
</div>
</TMPL_IF>

これで完成。

ちなみにこのままでは、例えば"Movable Type"のように空白が存在するTagは別々のTagだと認識されてしまいます。
これについてはMovable Type 3.17-ja and customized interface with application templatesで解説されています。
"Movable Type 3.17-ja"となっていますが、"3.2-ja-2"でも動作を確認しました。

Tags : Movable Type
Posted by r on 2006年01月26日 10:29 edit


メールアドレスの入力は必須となっていますが、公開されることはありません。
URLは投稿者名からリンクが張られます。

また、短すぎるコメントはスパムと判断される恐れがあるのでご注意下さい。




Powered by Movable Type 3.35.
© 2006-2008 r-Studio. All rights reserved.