タグ:MT便利プラグイン

アップロード先自動振り分けプラグイン(MT)

ちょっと感動したのでメモ。

こちらのサイトからダウンロードできるプラグインは、アップロードするファイルを自動的に判別して、ファイルの内容に沿ったアップロード先を選択してくれます。

MovableType用UploadDir Plugin Ver.0.62 (エムロジック放課後プロジェクトさんのサイト)

解凍してできる「MTUploadDir」フォルダの中にある「plugins」をmt設置フォルダにアップロードするだけ。

設定はmt管理画面のメニュー「ツール>プラグイン>UploadDir」から行えます。

デフォルト設定では

audio:mp3,wma,m4a,midi,wav,aiff
videos:mp4,m4v,mpeg,avi,mov,wmv
images:bmp,jpg,jpeg,gif,tif,tiff,png
text:txt
docs:pdf,doc,xls,ppt
src:pl,c,cc,pas,rb
archive:bz2,cab,gz,jar,lzh,rar,tar,taz,zip

見ていただければわかると思いますが、アップロードするファイルが「jpg」なら「images」フォルダ、「pdf」なら「docs」フォルダと自動で選択されます。

わざわざアップロード先を選択するのは面倒なので、このような補助ツールは非常にありがたいですね。

ちなみに今回の動作確認は「MTOS 5.031」で行いました。

nandani | 2010年12月10日 | コメント(0) | トラックバック(0) | CMS関連

MTで画像一括アップロード!

メモ

大量に画像をアップロードしなくてはならない場合、FTPで一気にアップロードする方法と、MTで1つ1つアップロードする方法の2つがありますが、前者は後々管理画面から削除ができなくなるし、後者は時間がかかる。

そんなとき便利なプラグインが「MultiFileUploader」です。

ダウンロードは以下のサイトから

複数ファイルを一括でアップロードできるMovable Typeプラグイン:MultiFileUploader(スカイアークシステムさんのサイト)

解凍すると

  • plugins
  • mt-static

のフォルダができるので、それぞれアップロードするだけ。

プラグインが正常に導入されると「アイテム」メニューに「複数アップロード」が追加されますので、そちらから複数ファイルをアップロードしてください。

特に対応バージョンが書いていなかったので不安でしたが、MT5.031にて正常に動作しました。

スカイアークシステムさんのサイトのコメントを見てみると、パスエラーが発生しているようですが、自分のところでは特に問題なしでした。
MTのバージョンのせい?

nandani | 2010年11月24日 | コメント(0) | トラックバック(0) | CMS関連

MTにてカテゴリを絞り込んで検索する方法2

前回はこちら「MTにてカテゴリを絞り込んで検索する方法

今回はプラグインを使用します。

この方法のメリットは複数のカテゴリで絞り込めることです。

たとえば以下のようにカテゴリ構成されているとします。

ジャンル
  SF
  アニメ
  クライム
  コメディ
  ホラー
メディア
  DVD
  VHS
  ブルーレイ
  レーザーディスク

「SF×DVD」や「コメディ×VHS」のように複数カテゴリで絞り込みたい場合、前回の方法では実現不可能でした。(一見<input category="SF AND DVD" />で可能そうですができませんでした。)

そこでこちらのサイトで配布しているプラグインを使用します。

CategorySearch(Technology on Informationさんのサイト)

上記のサイトの「リリース>ダウンロードページ」から最新版をダウンロードしてください。

インストール方法は、ダウンロードしてきたファイルを解凍したのち、「plugins」の中にアップロードすればOKです。

使用方法についても上記のサイトに記述しております。

では以下使用例です。

※なお、以下で使用しているテンプレートはMT5標準で用意されているテーマ「クラッシックブログ」のテンプレートです。

 

1.検索ウィジェットを編集する

MTブログ管理画面の「デザイン>ウィジェット>検索」を開いてください。

その中のformタグで囲まれている部分を、まるごと以下のように書き換えてください。

<form method="get" action="<$mt:CGIPath$><$mt:SearchScript$>">
   
    <MTTopLevelCategories>
    <MTSetVarBlock name="tcid"><MTCategoryID></MTSetVarBlock>
    <div>
        <input type="hidden" name="CategorySearchSets" value="<MTCategoryID>" />
        <select name="<MTCategoryID>">
            <option value="0">すべての<MTCategoryLabel></option>
               
    <MTSubCategories>
        <MTSetVarBlock name="clabel"><MTCategoryLabel></MTSetVarBlock>
        <MTCategorySearchLink type="absolute" set="$tcid" value="$clabel" op="replace" text="ignore" >
        <MTIf name="selected">
            <option value="<MTCategoryLabel>" selected="selected"><MTCategoryLabel></option>
        <MTElse>
            <option value="<MTCategoryLabel>"><MTCategoryLabel></option>
        </MTIf>
        </MTCategorySearchLink>
    </MTSubCategories>
               
        </select>
    </div>
    </MTTopLevelCategories>
   
    <div>
        <input type="text" name="search" value="<$mt:SearchString$>" />
        <input type="hidden" name="CategorySearch" value="1" />
        <input type="hidden" name="CategorySearchIgnoreText" value="1" />
        <input type="hidden" name="IncludeBlogs" value="<$mt:BlogID$>" />
        <input type="hidden" name="limit" value="<$mt:SearchMaxResults$>" />
        <input type="submit" accesskey="4" value="検索"  />
    </div>
   
</form>

■追記(2010/10/27)
MTCategorySearchLinkのtypeを「relative」から「absolute」に変更しました。

 

2.「検索結果」テンプレートを編集する

MTブログ管理画面の「デザイン>テンプレート>検索結果」を開いてください。

「<$mt:SearchString$>」と一致するもの

の部分を

<MTSetVarBlock name="search_string"><$mt:SearchString$></MTSetVarBlock>
<mt:CategorySearchSets glue=" と ">
    「<mt:CategorySearchCategories>
    <mt:CategoryLabel>
    </mt:CategorySearchCategories>」
    <mt:CategorySearchSetsFooter>
        <MTIf name="search_string">
        と「<$mt:SearchString$>」
        </MTIf>
        の検索結果
    </mt:CategorySearchSetsFooter>
</mt:CategorySearchSets>

に変更してください。

この段階でとりあえず再構築をかけてください。

ここまでで、2種類のカテゴリによる絞り込み検索ができるようになりました。

しかし、テキストフォーム(name="search")のところに検索ワードを入力してもスルーされてしまうと思います。

これは

<input type="hidden" name="CategorySearchIgnoreText" value="1" />

が記述されているためで、「CategorySearchIgnoreText」のvalueに値が入っていると、検索ワードが入っていなくても検索結果を返してくれるという利点がある代わりに、検索ワードは無視されてしまうという欠点があります。

できれば検索ワードが入っていない場合はカテゴリのみで検索し、入っている場合はそのワードでも検索するという風にしたいところです。

そこで、今回もJavascriptを使用します。

 

3.Javascriptを追記する。

読み込めればどこでもいいんですが、とりあえず「デザイン>ウィジェット>検索」を開いてください。

一番上に下記のソースを追記します。

<script type="text/javascript">
function searchTextCheck(){
    var searchText = document.getElementById("searchText").value;
    if(searchText != ""){
        document.getElementById("CategorySearchIgnoreText").value = "0";
    }
}
</script>

要するに、検索ボタンをクリックした瞬間、テキストフォームに検索ワードが入っていなければそのままにし、入っていればCategorySearchIgnoreTextのvalueを"0"にする、というわけです。

 

4.Javascriptで使用するためタグを修正する。

最後に1.で追加したform内のタグの値を少し変更します。

<form me\thod="get" action="<$mt:CGIPath$><$mt:SearchScript$>">
   
    <MTTopLevelCategories>
    <MTSetVarBlock name="tcid"><MTCategoryID></MTSetVarBlock>
    <div>
        <input type="hidden" name="CategorySearchSets" value="<MTCategoryID>" />
        <select name="<MTCategoryID>">
            <option value="0">すべての<MTCategoryLabel></option>
               
    <MTSubCategories>
        <MTSetVarBlock name="clabel"><MTCategoryLabel></MTSetVarBlock>
        <MTCategorySearchLink type="absolute" set="$tcid" value="$clabel" op="replace" text="ignore" >
        <MTIf name="selected">
            <option value="<MTCategoryLabel>" selected="selected"><MTCategoryLabel></option>
        <MTElse>
            <option value="<MTCategoryLabel>"><MTCategoryLabel></option>
        </MTIf>
        </MTCategorySearchLink>
    </MTSubCategories>
               
        </select>
    </div>
    </MTTopLevelCategories>
   
    <div>
        <input type="text" name="search" id="searchText" value="<$mt:SearchString$>" onkeypress="searchTextCheck();" />
        <input type="hidden" name="CategorySearch" value="1" />
        <input type="hidden" name="CategorySearchIgnoreText" id="CategorySearchIgnoreText" value="1" />
        <input type="hidden" name="IncludeBlogs" value="<$mt:BlogID$>" />
        <input type="hidden" name="limit" value="<$mt:SearchMaxResults$>" />
        <input type="submit" accesskey="4" value="検索" onclick="searchTextCheck();" onkeypress="searchTextCheck();" />
    </div>
   
</form>

■追記(2010/10/27)
MTCategorySearchLinkのtypeを「relative」から「absolute」に変更しました。

検索ワードを入力するテキストフォームのタグに
id="searchText"
onkeypress="searchTextCheck();"

CategorySearchIgnoreTextのタグに
id="CategorySearchIgnoreText"

検索ボタンに
onclick="searchTextCheck();"
onkeypress="searchTextCheck();"

をそれぞれ追加し、再構築してください。

これで、複数のカテゴリによる絞込み検索ができるようになったかと思います。

いや~、それにしてもすばらしいプラグインですね。

感謝感謝です。

Copyright(c) 2010 - 2024 ダリの雑記