Home > Archives > 2015年1月 Archive

2015年1月 Archive

Movable Type カスタムフィールド編集ページの項目と値をリストアップするブックマークレット

  • Posted by: maRk
  • memo

Movable Typeのカスタムフィールド編集の画面上で現在入力されている値をリストアップするブックマークレットです。

カスタムフィールドの現在の内容を管理ページで一覧するようなプラグインは探すとあるようなのですが、リストのメモをとったりり、リストをブログ記事に掲載したりするのに利用できるようなプラグインがみつからなかったので作成してみました。

実行した例です。定義リストとして生成し、画面下部に以下のように表示します。

(現在表示されているフィールドの value を取得するようにしていますので、各フィールドを書き換えた後は、保存されている値ではなく、その値が表示されます)

システムオブジェクト
    記事
名前
    コード埋め込み
説明
    記事内に任意のソースコードを埋め込む
種類
    テキスト(複数行)
オプション
    なし
必須
    必須でない
規定値
    既定値
ベースネーム
    embedcode
テンプレートタグ
    embedcode

コードの中身は以下となります。

document.body に 追加なので、体裁はよくないですが、一応使えるレベルということで。

// for Movable Type 6.x
// Movable Type license as MIT
// Checked ver. 6.0.6
// use /path/to/mt.cgi?__mode=view&_type=field

(function($){
  
// get custom field value
  
  
  $('body#edit_field').each(function () {
    var f_objType = {
      'システムオブジェクト': $('#obj_type').parent('div').text().replace(/[\s\r\n]+/g, '')
    };
    var f_name = {
      '名前': $('#name').val()
    };
    var f_desc = {
      '説明': $('#description').val()
    };
    var f_type = {
      '種類': $('#type-label').parent().next().text().replace(/[\s\r\n]+/g, '')
    };
    var f_option = {
      'オプション': $('#options').val() || 'なし'
    };
    var f_require = {
      '必須': $('#required').attr('checked') === 'checked' ? '必須' : '必須でない'
    };
    var f_default = {
      '規定値': $('#default-field').text().replace(/[\s\r\n]+/g, '')
    };
    var f_basename = {
      'ベースネーム': $('span.basename-text').text()
    };
    var f_tmplTag = {
      'テンプレートタグ': $('#tag').val()
    };
    var result = [];
    result.push(f_objType);
    result.push(f_name);
    result.push(f_desc);
    result.push(f_type);
    result.push(f_option);
    result.push(f_require);
    result.push(f_default);
    result.push(f_basename);
    result.push(f_tmplTag);

// out
    
    $('body').append('<div class="rslt"/>');

    $.each(result, function () {
      for (var key in this) {
        for (var i = 0; i < result.length; i++) {
          var dlist = $('<dl>');
          $(dlist).append('<dt>' + key + '</dt>\n<dd>' + this[key] + '</dd>\n');
        }
      }
      $('div.rslt').append(dlist);
    });
    console.log(result);
  });
})(jQuery);

リポジトリとして、Hatena::let にあります。

Home > Archives > 2015年1月 Archive

Search

Feeds

Return to page top