2

NewsFeed、SkyDrive、Sites などのスイート バーに表示されるデフォルトのリンクを削除または非表示にする必要があるという要件があります。独自のリンクを追加して、このセクションをメニューとして使用したいと考えています。

そのため、追加する際に、コンテンツ エディターが項目を簡単に構成できるようにしたいと考えています。表示する必要があるリンクを編集し、順序を制御できます。リンクのハードコーディングはありません。

誰かがこれを手伝ってくれるなら。

スイートバーのカスタマイズ

よろしく、ナビッシュ

4

3 に答える 3

2

これは、これらのリンクを表示する Delegate コントロールをオーバーライドすることによって実行できます。以下のリンクが役立ちます

http://www.learningsharepoint.com/2013/02/10/addremove-links-in-top-suitebar-skydrivesitesnewsfeed-in-sharepoint-2013/

于 2013-02-20T21:30:23.180 に答える
2

SuiteLinksDelegate ControlId を対象とするカスタム デリゲート コントロールを作成する必要があります。これをファーム スコープの機能に追加して、カスタム デリゲート コントロールをファーム全体でアクティブにします。ハードコーディングされたリンクが気に入らない場合は、構成可能なリンクを格納するカスタム SharePoint リストに対してプログラムできます。

カスタム リンクを追加するには、ここで説明されている方法を使用できます: http://zimmergren.net/technical/sp-2013-some-new-delegatecontrol-additions-to-the-sharepoint-2013-master-pages

組み込みリンクをいくつか削除し、他のリンクを保持する必要がある場合 (この要件がありました)、次のようなコードを使用できます。

    public partial class SuiteLinksDelegate : MySuiteLinksUserControl
    {
        protected override void Render(HtmlTextWriter writer)
        {
            // save for later
            var httpwriter = (writer.InnerWriter as HttpWriter);

            // hijack the innerwriter
            var sb = new StringBuilder();
            var sw = new StringWriter(sb);
            var tw = new HtmlTextWriter(sw);
            writer.InnerWriter = tw;

            // call base
            base.Render(writer);

            // get the html
            var currentHtml = sb.ToString();
            XElement element = XElement.Parse(currentHtml);

            // remove SkyDrive link
            var suiteLinkNodes = element.Elements("li").ToArray();
            var remainingNodes = suiteLinkNodes.Where(node => !(node.ToString().Contains("ShellDocuments")));
            element.ReplaceNodes(remainingNodes);

            var modifiedHTML = element.ToString();

            // set back the old innerwriter
            writer.InnerWriter = httpwriter;

            // write delegate control html
            httpwriter.Write(modifiedHTML);
        }
    }
于 2013-10-21T08:21:42.667 に答える
1

以下のリンクで説明されているように、JavaScript アプローチを使用してこのリンクを非表示にすることができます。

http://www.tuyrcorp.com/sharepoint-2013-top-links-name-id-and-how-to-hide-them/

この同じ JavaScript を使用してドロップダウンに新しい項目を追加することもできます

お役に立てれば

ありがとう

于 2013-02-06T11:50:26.643 に答える