1

チェックボックスの表示を無効にして、Sitecore 発行ポップアップから「発行サブアイテム」を非表示にする方法に関する Stackoverflow の投稿を見ました。これは非常に優れており、コンテンツ ツリーに大量のコンテンツがある場合に多くのパフォーマンスの問題を回避できます。

このチェックボックスを動的に非表示にすることはできますか? 開発者として、デプロイに関しては他の Sitecore アイテム (テンプレート、設定など) を公開する必要があります。そのため、「サブアイテムの公開」は私にとって必須の機能です。それでも、コンテンツ エディターから非表示にする必要があります。どうすればこのタスクを達成できますか? (この機能へのアクセスを制御するためのセキュリティ構成があれば理想的でした)

4

3 に答える 3

2

まず、Publish.xml ファイルをフォルダーから変更する必要があります。

 \web\sitecore\shell\Applications\Dialogs\Publish\

CodeBeside を次のように変更する必要があります。

   <WizardForm CodeBeside="YourNameSpace.CustomPublishForm,YourAssembly">

あなたのクラスは次のようになります:

class CustomPublishForm:PublishForm
{
    public CustomPublishForm()
        : base()
    {

    }
    protected override void OnLoad(System.EventArgs e)
    {
        base.OnLoad(e);
        //you need to change here with users that you want to see CheckBox
        if (Sitecore.Context.User.Name.Equals("lorenipsum"))
         {
            base.PublishChildren.Visible = true;
         }else
          {
            base.PublishChildren.Visible = false;
          }
     }      

}

私はテストしましたが、要件にわずかな変更を加えるだけで、このソリューションは正常に機能しています。

于 2013-07-17T14:31:31.577 に答える
1

投稿は次のとおりです: Sitecore - パブリッシュ ポップアップから「パブリッシュ サブアイテム」を非表示にする

CodeBeside属性を、その属性Sitecore.Shell.Applications.Dialogs.Publish.PublishForm,Sitecore.Clientをラップする独自のクラスに変更する必要があります。独自のクラスで、ロジックが必要に応じてボックスを表示または非表示にするために必要なメソッドをオーバーライドします。たとえば、ユーザーは特定のロールに属しています。

于 2013-07-17T12:48:10.087 に答える
0

このような変更を行うと、アップグレードが少し難しくなることに注意してください。をコピーしPublish.xmlて新しいボタンからこれをトリガーすると、これが Sitecore ではなく、独自のロジックであることが誰にとっても明確になります。

于 2013-07-17T20:40:29.467 に答える