0

ページ エディターで編集するときに、画像フィールド タイプのリボンを持つカスタム画像コンポーネントを使用しました。

コア データベースには、非表示/無効にする必要がある画像用の 3 つの webedit ボタンがあります。

パス: /sitecore/system/Field types/Simple Types/Image/WebEdit Buttons/

ボタン: 1. 画像を選択 2. 画像のプロパティ 3. 画像をクリア

また、Querystate()メソッドをオーバーライドすることでこれが可能であることは承知していますが、CommandState の処理が初めてなので、その実装については不明です。

QueryState を通過する代わりに、これを試しています

画像のプロパティ「DisableEdit 」を次のように設定しました。

<myImage:PictureFillImage Field="<%# MyImage.Constants.FieldNames.Image %>" DisableEdit="true" ID="UIImage" runat="server"/>

カスタムクラスを次のように使用しています:

public class PictureFillImage : Sitecore.Web.UI.WebControls.FieldControl

そして、次のように画像のWeb編集を無効にしようとしています:

    public bool DisableEdit { get; set; }


    private Sitecore.Web.UI.WebControls.Image _smlImage;
    private Sitecore.Data.Fields.ImageField _smlImageField;
    private Sitecore.Web.UI.WebControls.FieldControl _fieldControl;

    protected override void OnLoad(EventArgs e)
    {
        this.DataBind();
    }

    public override void DataBind()
    {
        // base.OnLoad(e);
        this.Item = this.GetItem();

        if ((this.Item != null) && (this.Field != null))
        {
            Sitecore.Data.Fields.Field field = this.Item.Fields[this.Field];
            if (field != null)
            {
                this._smlImageField = (Sitecore.Data.Fields.ImageField)field;
                this._smlImage = new Sitecore.Web.UI.WebControls.Image();
                this._smlImage.Field = this.Field;
                this._fieldControl = this._smlImage as Sitecore.Web.UI.WebControls.FieldControl;
                this._smlImage.ID = this.ID;
                this._smlImage.CssClass = this.CssClass;
                this._smlImage.Parameters = "all=all";
                this._fieldControl.Item = this.Item;


                this._smlImage.DisableWebEditing = DisableEdit;
                this._fieldControl.DisableWebEditing = DisableEdit;
            }
        }

        base.DataBind();
    }

ページ エディターのフローティング リボンに表示される [画像の選択]、[画像のプロパティ]、[画像のクリア] の 3 つのボタンがコードによって非表示になることを期待していましたが、否定的な結果が得られました。

助けてください。

4

1 に答える 1