ページ エディターで編集するときに、画像フィールド タイプのリボンを持つカスタム画像コンポーネントを使用しました。
コア データベースには、非表示/無効にする必要がある画像用の 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 つのボタンがコードによって非表示になることを期待していましたが、否定的な結果が得られました。
助けてください。