人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Movable Type でカテゴリを1つだけしか選択させない方法



Movable Type version 5.01 でサイト構築しています。

社内スタッフにそれぞれブログアカウントを発行し、記事を書いてもらっています。


スタッフには、カテゴリー追加や編集などの権限は与えておらず、
書いた記事に対して、こちらで予め設定したカテゴリにチェックを入れれるだけです。


通常の設定だと、1つの記事に対して複数のカテゴリを設定出来きてしまうので、
出来れば、1記事1カテゴリしか選べないような仕組みにしたいと思っています。


カテゴリのチェック形式が「チェックボタン」なので、
これを「ラジオボタン」に出来れば、1つしか選べないようにできるのでは?

と考えておりますが、実装方法が分かりません。


上記やり方ではなくても、カテゴリを1つだけしか選べないようにする方法はございますでしょうか?


皆様のお知恵を貸して下さい。


●質問者: tenmillion
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:Movable Type アカウント カテゴリ カテゴリー クボタ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● rouge_2008
●70ポイント

方法1.チェックボックスからラジオボタンに変更します。

・「tmpl/cms/include/category_selector.tmpl」

12行目に次の行があります。

 <input type="<mt:if name="object_type" eq="page">radio<mt:else>checkbox</mt:if>" name="<mt:if name="object_type" eq="entry">add_</mt:if>category_id<mt:if name="object_type" eq="entry">_[#= item.id #]</mt:if>" class="add-category-checkbox" <mt:if name="category_is_selected">checked="checked"</mt:if> /> [#|h item.label #]

上記を次のように変更します。

 <input type="<mt:if name="object_type" like="(page|entry)">radio<mt:else>checkbox</mt:if>" name="<mt:if name="object_type" eq="entry">add_</mt:if>category_id" class="add-category-checkbox" <mt:if name="category_is_selected">checked="checked"</mt:if> /> [#|h item.label #]

方法2.カテゴリが2つ以上選択された場合に、警告メッセージを表示します。(※メッセージを無視して選択する事は可能です。)

・「tmpl/cms/edit_entry.tmpl」

229行目に次の記述があります。

 [# if ( !items.length ) { #]
 <span class="disabled">[#|h trans("None selected") #]</span>
 [#* return #]
 [# } #]

この次に処理を追加して次のように変更します。

 [# if ( !items.length ) { #]
 <span class="disabled">[#|h trans("None selected") #]</span>
 [#* return #]
 [# } #]
 // ここに次の4行を追加します。
 [# if ( items.length > 1 ) { alert("カテゴリが二つ以上選択されました。\n一つだけ選択してください。"); #]
 <span class="disabled">[#|h trans("Two or more were selected") #]</span>
 [#* return #]
 [# } #]

さらに「mt-static/mt_ja.js」の適当な場所に次の1行を追加します。

Lexicon['Two or more were selected'] = '二つ以上選択されました。一つだけ選択してください';

これでカテゴリが2つ以上選択された場合に警告メッセージを表示して、カテゴリの選択状態を表示する箇所にもメッセージを表示します。

方法2はメッセージを表示するだけですので、実際には2つ以上のカテゴリを選択する事ができてしまいますが、どちらでも好きな方法を試してみてください。

◎質問者からの返答

回答ありがとうございます。

方法2の解説に「方法2はメッセージを表示するだけですので、実際には2つ以上のカテゴリを選択する事ができてしまいます」とありましたので、出来れば1つしか選択出来ないスタイルを希望しますので、方法1を試してみました。

カテゴリ部分の表示がうまくラジオボタンになり、成功したと思ったのですが、実質複数のチェックが可能のようです。

radioの場合、同じnameを付けてないと、「1つしか選べない」という状態を作れませんが、それがうまくいっていないのでしょうか?

修正ポイントあれば、再度ご教授お願いします。


2 ● akumasyougun666
●0ポイント

大変申し訳ございませんが、あなたはこの質問に回答することはできません。

http://q.hatena.ne.jp

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ