MTのプラグインをインストールするだけで、指定したカスタムフィールドを自動的に追加する方法

小林 2009年09月12日

パワフルなCMSを98,000円で。

Movable Typeで承認フロー、会員サイト構築ができます。

プラグインをインストールするだけで、あらかじめ指定したカスタムフィールドを自動的に追加する方法をご紹介します。

MT5では「テーマ」機能でカスタムフィールドを自動的に追加できるのですが、MT4ではできません。

このやり方をすれば、たとえば案件でよく使うカスタムフィールド(重要な記事 MTEntryImportantとか)をプラグインに設定しておいて、自分独自のMTタグを利用するようなことができます。

プラグインのダウンロード

こちらからプラグインのひな型をダウンロードしてください。

AddField.zip

プラグインの修正方法

ひな形のプラグインにはあらかじめ5つのカスタムフィールドがグローバルカスタムフィールドとして追加されるようになっています。

ここでは<$MTEntryImportant$>という重要な記事をチェックボックスで指定するやり方を説明します。

カスタムフィールドのベースネームの設定

14~18行目に

$ADD_FIELD_NAME_番号 = 'カスタムフィールドのベースネーム';

があります。ここでは追加したいカスタムフィールドの数だけ行を書いてください。番号は1から初めて、複数のフィールドを追加する場合は連番としてください(フィールドはいくらでも追加できます。)。ベースネームとは、カスタムフィールドを識別する任意の名前です。これは他のカスタムフィールドと重複して使うことができません。任意のベースネームを指定してください。ここでは

$ADD_FIELD_NAME_1 = 'entry_important';

とします。

追加するフィールドの詳細を設定

追加するフィールドの詳細を設定します。太い赤字の部分を適宜書き換えてください。複数のカスタムフィールドを追加する場合は68~82行目をコピーして 82行目の}を改行して83行目に貼り付けてください。

68~82行目に

## ADD_FIELD_NAME_1 追加用 ## ADD_FIELD_NAME_1 追加用 **************************************************************************
    $custom = CustomFields::Field->load({ basename => $ADD_FIELD_NAME_1 } );
    unless($custom){
        $custom = CustomFields::Field->new;
        $custom->blog_id(0);
        $custom->name('重要な記事');
        $custom->basename($ADD_FIELD_NAME_1);
        $custom->obj_type('entry');
        $custom->type('checkbox');
        $custom->tag('entryimportant');
        $custom->required(0);
        $custom->description('');
        $custom->options('');
        $custom->save;
    }

という行があります。ここにフィールドの詳細を記載します。

69行目
$custom = CustomFields::Field->load({ basename => $ADD_FIELD_NAME_1 } );
ここではベースネームの設定時につけた$ADD_FIELD_NAME_hogehogeの番号を記載します。先ほど_1と指定しましたので、$ADD_FIELD_NAME_1と書き換えます。
72行目 ブログIDの指定
$custom->blog_id(0);
ここでは追加するブログIDを指定します。ブログIDに関係なくフィールドを追加したい場合は0を指定してください。
73行目 カスタムフィールド名の指定
$custom->name('重要な記事');
カスタムフィールド名を指定します。ここでは重要な記事と記載します。
74行目 ベースネームの指定
$custom->basename($ADD_FIELD_NAME_1);
ベースネームを指定します。ここでは先ほど指定した$ADD_FIELD_NAME_1と記載します。
75行目 オブジェクトタイプの指定
$custom->obj_type('entry');
ここではカスタムフィールドを追加したいオブジェクト(ブログ記事・ウェブページ・カテゴリ・フォルダ・ユーザー)を指定します。指定したオブジェクトにカスタムフィールドが追加されます。オブジェクトの指定の仕方はプラグインの48行目に記載しています。
76行目 データ型の指定
$custom->type('checkbox');  
ここではカスタムフィールドで利用したいデータの型(テキストボックス、ドロップダウンなど)を指定します。ここではチェックボックスを指定します。オブジェクトの指定の仕方はプラグインの54行目に記載しています。
77行目 MTタグ名の指定
$custom->tag('entryimportant');
ここでは追加したMTタグを記載します。MTEntryImportantとしたいため、entryimportantと記載します。頭のMTはシステムが自動的につけてくれます。
78行目 必須の指定
$custom->required(0);
カスタムフィールドを必須にするかを指定します。必須にする場合は1を指定します。
79行目 概要の指定
$custom->description('hogehoge');
カスタムフィールドの下に表示する説明文を指定します。不要な場合はdescription('');と空っぽにします。
80行目 オプションの指定
$custom->options('hoge01,hoge02,hoge03');
ドロップダウンリストなどのあらかじめ表示したい項目を指定します。不要な場合はoptions('');と空っぽにしてください。

プラグインのインストール

プラグインをpluginsディレクトリに設置します。その後管理画面にアクセスするとカスタムフィールドが追加されます。

 

field_01.PNG

 

ここで作成した重要な記事のフィールドは以下のように表示されます。

 

field_02.PNG

 

注意事項

  • ここで追加したカスタムフィールドを管理画面から削除しても、プラグインを追加している限りは強制的にフィールドが追加されます。
  • 本プラグインをご利用される方は必ず「プラグインご利用の際の注意事項」をお読みください
投稿者 小林 : 09/12

Movable Typeを利用したウェブサイト開発はお任せください!

100の企業が認めた成功へ導くCMS構築

スカイアークは創業以来6年間、Movable Typeを一貫して活用し、お客様の様々なウェブサイトをCMS化しました。MTを利用したウェブサイトはスカイアークにお任せください。

MT・CMS構築について詳しく見る

お問い合わせはこちらから お電話でのお問い合わせ03-5475-5101

MTエンジニアブログ

MTCMS Smartキャンペーン!
承認フロー付きCMS「MTCMS Smart(98,000円)」をお買い上げの方、MTライセンス1本がタダに!

配布プラグイン一覧

MultiFileUploader
複数ファイルを一括でアップロードできるMovable Typeプラグイン
ParentalInclude
MT5でウェブサイトとブログのテンプレート連携を便利にするプラグイン
DuplicateEntry
ブログ記事を複製または移動するMovableTypeプラグイン
NotifyAnythingChanged
何かが起きたらメールで通知するMovableTypeプラグイン
rssEntry
取込んだRSSをエントリとして書き出すMovableTypeプラグイン
AutoTagging
面倒な記事のタグ付けを自動化する
FutureRebuild
日時を指定してページを再構築する
EntryImExporter
エントリをCSVに書出したり、CSVから一括登録するMovableTypeプラグイン
MailPack
Movable Typeで簡単携帯投稿!メール投稿プラグイン
DirectoryUtility
カテゴリ・フォルダの階層を表示したり、親フォルダを表示したり、何かと便利なプラグイン
CSVList
CSVデータを整形して表示する
PageBute
静的ページ用ページ分割プラグイン

注目記事

RSS

ページの先頭へ戻る