MTAppGetCategoryName
カテゴリ/フォルダの配列から、指定した id に一致する項目のラベルやベースネームを取り出して返すヘルパー。DOM は操作せず値を返すだけ。見つからない/不正引数は undefined。
カテゴリ(またはフォルダ)の配列から、指定した id に一致する項目のラベルやベースネームを取り出して返すヘルパーメソッドです。記事編集画面では MT.App.categoryList(カテゴリ)、ウェブページ編集画面ではフォルダの配列を渡して使います。DOM は操作せず、値を返すだけのユーティリティです。
構文
const name = $.MTAppGetCategoryName(options);静的メソッド($.MTAppGetCategoryName)です。
パラメータ
options {Object} — categories と id が必須です。
| プロパティ | 型 | 既定値 | 説明 |
|---|---|---|---|
categories | Array | null | 必須。カテゴリ/フォルダのオブジェクト配列(各要素は id と label・basename を持つ)。配列でなければ undefined を返す |
id | number | 0 | 必須。取得したいカテゴリ/フォルダの id。0 以外の数字(数値または数字文字列)のみ有効 |
field | string | 'label' | 取り出す値のキー。'label'(名称)または 'basename'(ベースネーム) |
戻り値
{string | undefined} — 一致した項目の field の値。見つからない場合や引数が不正な場合は undefined。
使用例
カテゴリ名を取得
// 記事編集画面のカテゴリ一覧から id=3 の名称を得る
const name = $.MTAppGetCategoryName({ categories: MT.App.categoryList, id: 3 });ベースネームを取得
const basename = $.MTAppGetCategoryName({
categories: MT.App.categoryList,
id: 3,
field: 'basename'
});ウェブページ編集画面(フォルダ)
const folderName = $.MTAppGetCategoryName({ categories: MT.App.folderList, id: 5 });user.js での記述例
user.js(「デザイン → user.js を編集」)に書く場合は、mtappVars.screen_id で画面を判定して呼び出します。
(function ($) {
if (typeof mtappVars !== 'object') return;
if (mtappVars.screen_id === 'edit-entry') {
const name = $.MTAppGetCategoryName({ categories: MT.App.categoryList, id: 3 });
}
})(jQuery);補足
idは数値・数字文字列のどちらでも一致します(内部で緩い比較==を使用)。負数・小数・0・空文字・非配列のcategoriesなどはすべてundefinedを返します。- 配列の先頭から走査し、最初に id が一致した項目を返します。
- カテゴリ配列は管理画面側が用意するグローバル(記事編集画面の
MT.App.categoryListなど)を渡すのが一般的です。画面に応じて適切な配列を渡してください。 - 表示は行いません。取得した名称をラベル書き換えや条件分岐などに利用するためのヘルパーです。
関連
MTAppCategorySwitch— 選択中のカテゴリに応じてフィールドの表示を切り替える(codeオプションでカテゴリ選択時に任意の処理も実行できる)。MTAppOtherTypeCategories— カテゴリ選択 UI をラジオ等に変更する。