SITECORE MANIA 開発者向け技術ブログ

その他

渡部

渡部

フィールドタイプアイテムの作成方法

「Single-Line Text」や「Rich Text」といった既存フィールドタイプアイテムの他に、独自のフィールドタイプアイテムを作成する方法を紹介します。

フィールドタイプアイテムの作成

今回は例として、フィールドタイプアイテム「Markdown」を作成します。

  • データベース : core
  • パス : /sitecore/system/Field types/Simple Type

上記のデータベース/パスで、「Single-Line Text」アイテムを複製し、アイテム名と表示名を「Markdown」に変更します。

複製したアイテムの「コントロール」フィールドの値は「content:Text」となっています。このままだと一行での記述しかできません。

そのため、アイテムの「コントロール」フィールドの値を、「content:Memo」に変更することで複数行での記述ができるようにします。

テンプレートを作成

データベースをmasterに変更して、テンプレートを作成します。

シンプルタイプ内に、「Markdown」フィールドタイプアイテムが選択可能となっています。

 

「Markdown」フィールドタイプのフィールドを加えたテンプレートを作成すると、図のようになります。

Markdownフィールドの取得

例として作ったMarkdownフィールドの取得についても紹介します。

使用ライブラリ:Nugetでインストールします。

 Markdig.dll MarkdownをHTMLに変換するために使用するライブラリ

作成したMarkdownフィールドの値を取得し、その値をhtmlに変換しています。

この値をMvcHtmlString型に変換しViewにmodel等で値を渡すことで出力できます。

using Markdig;

namespace Sample.Controllers
{
  public ActionResult Markdown()
  {
    Item contextItem = Sitecore.Context.Item;
    var MarkdownFieldValue = contextItem.Fields["Markdown"].Value;
    var pipeline = new MarkdownPipelineBuilder().UseAdvancedExtensions().Build();
    var MarkdownHtml = Markdig.Markdown.ToHtml(MarkdownFieldValue, pipeline);
    var model = new Markdown Model
    {
        Markdown = new MvcHtmlString(MarkdownHtml)
    };
    return View("/Views/Sample/Markdown.cshtml", model);
  }

  public class MarkdownModel
  {
    public MvcHtmlString Markdown { get; set; }
  }
} 

 

表示例

このようにしてMarkdownの記法で書いたテキストを出力することができます。

最後に

今回は例として、「Markdown」フィールドタイプアイテムを作成しました。

同様の方法で、「Markdown」フィールドタイプアイテム以外にも、様々なフィールドタイプアイテムを
作成できます。



※エントリーの内容・画像等は、公開時点での情報に基づきます。
※Sitecoreのバージョンによって実装されている機能が異なります。

この記事を読んだ人はこちらの記事も読んでます

Sitecore導入に関するご相談・資料ダウンロード

導入をご検討・ご依頼の方や、サービスについてご不明点がございましたらお気軽にお問い合わせください。

Sitecoreの運用問題を解決する

既にSitecoreを導入しているお客様向けサービス