拙著「上手に稼ぐカラ売りテクニック」が発売されました。
株価が下がる局面で利益を得ることができる「空売り」について、詳しく解説した本です。
自由国民社刊で、定価1,512円(税込)です。
ブログ記事詳細検索プラグイン(その1・概要/インストール/ライセンス)
Movable TypeをCMSとして使う場合、検索機能が弱いことが1つの問題です。
ブログとしての簡易的な検索はできますが、複数の条件で絞り込んで検索するような機能がありません。
この問題を解決するプラグインとして、「SearchEntries」を公開します。
多機能なプラグインなので、数日に分けて順次解説します。
今日は、プラグインの概要と、インストールおよびライセンスについて述べます。
1.概要
SearchEntriesプラグインには、以下のような特徴があります。
- ブログ記事のフィールド(タイトルや日付など)はもちろんのこと、カテゴリ/タグ/カスタムフィールドを組み合わせた柔軟な検索を行うことができます。
- 検索の条件はテンプレートタグで指定します。
- ブログ記事のフィールドや、カスタムフィールドで検索する場合、「値が○○に等しい」「値に○○を含む」「値が○○より大きい」といった条件で検索することができます。
- カテゴリ/タグでの検索では、「○○か□□に属する(OR検索)」/「○○と□□に属する(AND検索)」のどちらも可能です。
- カスタムフィールドの検索では、複数のカスタムフィールドを組み合わせた検索が可能です。
- 拙作の「数値型のカスタムフィールドを追加するプラグイン」を組み合わせると、カスタムフィールドの数値も検索することができます。
- ブログ記事のフィールドの値か、カスタムフィールドの値をキーにして、検索結果を並べ替えることができます。
並べ替えのキーは複数指定することができます。 - 静的な検索に使うことも、フォームと組み合わせた動的な検索を行うこともできます(ただし、動的な検索を行う場合は、拙作のいくつかのプラグインと組み合わせます)。
実際の例として、書籍「Movable Type 5実践テクニック」の中で紹介した「YOKOSUKA FOODS」のサイトがあります。
このサイトでは、各ページの左上に検索のフォームがあり、カテゴリとカスタムフィールド(生産地/価格帯)を組み合わせた検索を行うことができるようになっています。
2.対応バージョン
このプラグインは、Movable Type 5に対応しています。
また、Movable Type 4.2x以降でも動作するはずです(ただし、Movable Type 4.2xでのテストは行っていません)。
3.インストール
このプラグインは以下からダウンロードします。
プラグインの継続的な開発やサポートのために、プラグインをご利用された方は、ドネーション(寄付)を行っていただけると幸いです。
ドネーションの方法は、こちらのページをご参照ください。
また、このプラグインの他にも、いくつかのプラグインを配布しています。
配布中のプラグインは、Movable Type Plugin Directoryのページをご参照ください。
Movable Typeのプラグイン開発等のドキュメント「Movable Type Developer's Guide Volume 1」も販売しています。
ご自分でプラグインを作ってみたい方に、ぜひお勧めしたい一冊です。
詳細は特設ページをご覧ください。
ダウンロードしたZipファイルを解凍すると、「plugins」というフォルダができます。
このフォルダを、Movable Typeのインストール先ディレクトリにアップロードします。
4.Movable Typeのソースの書き換え
並べ替え機能を動作させるために、Movable Type本体の「lib/MT/ObjectDriver/Driver/DBI.pm」ファイルの480~500行目付近を一部書き換える必要があります。
Movable Type 5.01では、以下のように書き換えます。
書き換え前
my $order = $args->{sort} || 'id'; if (! ref($order)) { my $dir = $args->{direction} && $args->{direction} eq 'descend' ? 'DESC' : 'ASC'; $stmt->order({ column => $dbd->db_column_name($tbl, $order), desc => $dir, }); } else { my @order; foreach my $ord (@$order) { push @order, { column => $dbd->db_column_name($tbl, $ord->{column}), desc => $ord->{desc}, }; } $stmt->order(\@order); }
書き換え後(赤字の部分を追加/変更)
my $order = $args->{sort} || 'id'; if (! ref($order)) { my $tmp_tbl = $args->{sort_class} ? $driver->table_for($args->{sort_class}) : $tbl; my $dir = $args->{direction} && $args->{direction} eq 'descend' ? 'DESC' : 'ASC'; $stmt->order({ column => ($args->{sort_alias} ? $args->{sort_alias} . '.' : '') . $dbd->db_column_name($tmp_tbl, $order), desc => $dir, }); } else { my @order; foreach my $ord (@$order) { my $tmp_tbl = $ord->{sort_class} ? $driver->table_for($ord->{sort_class}) : $tbl; push @order, { column => ($ord->{sort_alias} ? $ord->{sort_alias} . '.' : '') . $dbd->db_column_name($tmp_tbl, $ord->{column}), desc => $ord->{desc}, }; } $stmt->order(\@order); }
5.ライセンス
SearchEntriesプラグインは、以下のライセンスでご提供します。
5-1.商用ライセンスのMTと組み合わせる場合
商用ライセンスのMovable Typeと組み合わせる場合は、有償とさせていただきます。
料金は、導入先のMovable Type1件につき1,000円(消費税込)とします。
お振込み方法等の詳細につきましては、メールフォームからお問い合わせいただきますようお願いします。
なお、アカデミックライセンスと組み合わせる場合は、無償とさせていただきます。
5-2.個人無償ライセンスのMTと組み合わせる場合
個人無償ライセンスと組み合わせる場合は、無償でご利用いただくことができます。
ただし、以下に従ってご利用いただきますようお願いします。
- 改変・再配布は自由に行っていただいてかまいません。
ただし、ソースコード中のクレジットは残しておいてください。 - 無料でご利用いただくことができます。
ただし、プラグインの開発やサポートのご支援のために、ドネーションをご検討いただければ幸いです。 - 当プラグインは無保証で提供します。
5-3.MTOSと組み合わせる場合
- GPLv2に従います。
- 無料でご利用いただくことができます。
ただし、プラグインの開発やサポートのご支援のために、ドネーションをご検討いただければ幸いです。
6.SearchEntriesプラグイン関係の記事の一覧
- ブログ記事詳細検索プラグイン(その1・概要/インストール/ライセンス)
- ブログ記事詳細検索プラグイン(その2・「ブログ記事のフィールドの値が○○に等しい」場合の検索)
- ブログ記事詳細検索プラグイン(その3・「ブログ記事のフィールドの値に○○を含む」場合の検索)
- ブログ記事詳細検索プラグイン(その4・「ブログ記事のフィールドの値が○○以上」等の場合の検索)
- ブログ記事詳細検索プラグイン(その5・ブログ記事のフィールドどうしでのOR検索)
- ブログ記事詳細検索プラグイン(その6・カテゴリのOR検索)
- ブログ記事詳細検索プラグイン(その7・カテゴリのAND検索)
- ブログ記事詳細検索プラグイン(その8・タグの検索)
- ブログ記事詳細検索プラグイン(その9・カスタムフィールドでの検索の基本)
- ブログ記事詳細検索プラグイン(その10・カスタムフィールドでの検索の応用)
- ブログ記事詳細検索プラグイン(その11・各種の検索条件の指定)
- ブログ記事詳細検索プラグイン(その12・ブログ記事の並べ替え)
- ブログ記事詳細検索プラグイン(その13・検索結果の一部を読み込む)
- ブログ記事詳細検索プラグイン(その14・複雑なOR検索)
- ブログ記事詳細検索プラグイン(その15・検索結果の件数の出力)
- ブログ記事詳細検索プラグイン(その16・検索フォーム作成の基本)
- ブログ記事詳細検索プラグイン(その17・検索結果表示テンプレート作成の基本)
- ブログ記事詳細検索プラグイン(その18・検索を動作させるための設定)
- ブログ記事詳細検索プラグイン(その19・検索フォーム/検索結果表示の事例・1つの数値で検索)
- ブログ記事詳細検索プラグイン(その20・検索フォーム/検索結果表示の事例・数値の範囲で検索)
- ブログ記事詳細検索プラグイン(その21・検索フォーム/検索結果表示の事例・数値の範囲をselectで選択)
- ブログ記事詳細検索プラグイン(その22・検索フォーム/検索結果表示の事例・日付で検索)
- ブログ記事詳細検索プラグイン(その23・検索フォーム/検索結果表示の事例・期間で検索)
- ブログ記事詳細検索プラグイン(その24・検索フォーム/検索結果表示の事例・カテゴリのOR検索)
- ブログ記事詳細検索プラグイン(その25・検索フォーム/検索結果表示の事例・カテゴリのAND検索)
- ブログ記事詳細検索プラグイン(その26・検索フォーム/検索結果表示の事例・タグのOR検索)
- ブログ記事詳細検索プラグイン(その27・検索フォーム/検索結果表示の事例・タグのAND検索)
- ブログ記事詳細検索プラグイン(その28・検索フォーム/検索結果表示の事例・ドロップダウン/ラジオボタンのカスタムフィールドの検索)
- ブログ記事詳細検索プラグイン(その29・検索結果のページ分割/静的な検索の場合)
- ブログ記事詳細検索プラグイン(その30・検索結果のページ分割/動的な検索の場合)
- ブログ記事詳細検索プラグイン(その31・検索結果のページ分割/PHPによるキャッシュ)
- SearchEntriesプラグインでMore Custom FieldsプラグインのCheckbox Groupを検索する(静的編)
- SearchEntries プラグインでMore Custom FieldsプラグインのCheckbox Groupを検索する(動的編)
- SearchEntriesプラグイン不具合修正