4

/sitecore/templates/System/Media/Unversioned/Imageテンプレートに追加されたフィールドに Sitecore メディア ライブラリの画像のクロッピング情報を保存しています。

Glass.Mapper.Sc.Fields.Imageビューで引き続き使用できるように、複合フィールド タイプに存在する他のすべてのプロパティと共にこのフィールドにアクセスしたいと考えGlassHtml.RenderImage()ています。

クラスから継承する最初の試みは失敗しました - マッピング動作を壊しているようです - それで、追加のプロパティでこのクラスを拡張する別の方法があるかどうか疑問に思っています?

これが私が試したことです:

[SitecoreType(AutoMap = true)]
public class MyImage : Glass.Mapper.Sc.Fields.Image
{
    public virtual string CropInfo { get; set; }
}
4

1 に答える 1

4

追加のフィールドをマップするには、カスタム データ ハンドラーを実装する必要があります。

標準の Image データ ハンドラーを継承するデータ ハンドラーを作成します。

https://github.com/mikeedwards83/Glass.Mapper/blob/master/Source/Glass.Mapper.Sc/DataMappers/SitecoreFieldImageMapper.cs

次に、カスタマイズGetFieldしてSetField.

カスタム データ ハンドラーを作成したら、それを Windsor コンテナーに登録する必要があります。これを行う方法については、チュートリアル 19 を参照してください。

http://glass.lu/docs/tutorial/sitecore/tutorial19/tutorial19.html

重要な部分:

public static void CastleConfig(IWindsorContainer container){
        var config = new Config();

        container.Register(
          Component.For < AbstractDataMapper>().ImplementedBy<TweetsDataHandler>().LifeStyle.Transient
          );

        container.Install(new SitecoreInstaller(config));
} 
于 2013-09-12T13:22:42.143 に答える