« MT5コミュニティ・ソリューションのコミュニティブログの構築【その2-テンプレート構成】 | メイン | 平成22年度ISICOお店ばたけセミナーの各講座がラインナップ。アクセス解析の講座を担当します。 »

TOP> MTのプラグイン活用

MT5コミュニティ・ソリューションのコミュニティブログの構築【その3-テンプレート編集】

コミュニティブログの投稿フォーム(ユーザ登録後、ログインし記事を登録できるフォーム)に項目を追加する方法。

1.投稿フォームの項目をカスタムフィールド・ブログ記事に項目追加。(今回は10項目を追加した)
2.インデックステンプレート「ブログ記事の作成」テンプレートの編集

 投稿フォームでは、「フォームフィールド」モジュールとしてテキストやテキストエリア、プルダウンなどのフォームが表示される。

カスタムフィールドで設定した項目の場合は、下図のように

<mt:EntryCustomFields>から</mt:EntryCustomFields>

のMTタグに囲まれたカスタムフィールドの項目がすべてひと括りとなって、設定した数(今回は10項目)のカスタムフィールドの各タイプのフォームがまとめて表示される。
この7行(<mt:EntryCustomFields>から</mt:EntryCustomFields>で、カスタムフィールドが1個だけでも100個でもまとめて表示される。

「フォームフィールド」モジュールのカスタムフィールドブロック


フォームが表示される順番は、カスタムフィールドの一覧に表示されている順序である。
カテゴリ設定と同じで、表示したい順番には並んでくれない。

このカスタムフィールドのフォーム表示順番を変更したい場合は、

・グローバルテンプレートの「フォームフィールド」モジュールを編集すること。
 (プログラム、Javascriptとの関係からカスタマイズ難度大)

----------------「フォームフィールド」モジュール--------------

<div id="<$mt:Var name="id"$>-field" class="field-top-label field pkg <$mt:Var name="class"$>">
    <div class="field-inner">
        <div class="field-header">
            <label type="text" id="<$mt:Var name="id"$>-label" for="<$mt:Var name="id"$>"><$mt:Var name="label"$><mt:If name="required"> *</mt:If></label>
        </div>
        <div class="field-content ">
            <$mt:Var name="field-content"$>
        </div>
    </div>
</div>

------------------------------


・カスタムフィールドの表示順を操作する
 表示したい順番に登録する(あらかじめ、設計されていないと難しい、あとでの追加挿入操作は無理)、またはカテゴリ表示順のような操作でABC順のコントロールを行う。
 また、小粋空間さんの方法、コミュニティのカスタムフィールドの表示順序を入れ替えるでもできるようである。
 しかし、カスタムフィールドの「説明」を項目の注釈・説明文として代用)表示させたかったので、この方法は採用しなかった。


どちらの方法も、テンプレートにカスタムフィールドのMTタグが使用されておらず、「説明」項目を表示することもよくわからなかったので、妥協案として今回は力業での編集方法(直HTML表示)とした。
但し、カスタムフィールドの変更や追加があった場合、上記2つの方法では再構築のみを行い、テンプレート編集を必要としないで反映されるが、以下の方法は、テンプレート編集での追加が必要になってくる。

採用した方法。

 1.デフォルトテンプレートで出力された投稿フォームのHTMLのソースを保存。

 2.1のソースHTMLのカスタムフィールドのフォーム部分を、各カスタムフィールド単位で、表示したい順に組み替える。

 3.「ブログ記事フォーム」テンプレートモジュールのカスタムフィールドが出力される部分を、別のモジュール(ex.ソートカスタムフィールド)として新規作成する。

 4.「ソートカスタムフィールド」モジュールに、2で表示順を変更したHTMLを保存する。
  このモジュールに、随時、各項目の説明や入力例などを直接テキスト、画像などで追加編集する。

 柔軟性がないが、投稿項目が多いフォームの場合、各項目に、直接的にわかりやすい説明などを入れることによりスムーズな投稿ができる。なので投稿ユーザにとっては入力が簡単にできると判断した。

ちなみに、通常の管理者ユースの管理ページでのブログ記事の投稿画面は、

 1.カスタムフィールドの順番を表示オプションで変更できる。

 2.カスタムフィールド項目「説明」に入力した内容がそのまま反映され表示される。

 3.改行などのフォーマットがコントロールできる

上記の機能が、そのまま一般投稿フォームにも自動的に採用され、簡単なモジュール構成でコントロールができると、もう少し投稿スタイルのバリエーションが広がると感じた。

実際は、MTタグなどを利用して、さまざまにカスタマイズが可能だと思われるが、Javascriptが絡むことなどから、それでも難易度は高いと思われる。
コミュニティブログの機能として、ある程度、ウィジェット操作や表示オプションなどの操作性があると投稿フォームの自由度が広がってくると思う。
しいては、コミュニティブログ、コミュニティサイトの運営の幅がひろがってくることになってくるのでは?
と思いつつ、コミュニティブログの機能向上を強く切望、利用拡大できるように強化して欲しいと思ったのだった。

さて、次はコミュニティブログと通常ブログ(クラシックブログ)、ウェブサイトの関係について。

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)