Как удалить ссылки по умолчанию из панели инструментов SharePoint 2013 и добавить свои собственные ссылки

У меня есть требование, когда мне нужно удалить или скрыть ссылки по умолчанию, отображаемые в панели Suite, такие как NewsFeed, SkyDrive, Сайты и т. д. Я хочу добавить свои собственные ссылки и использовать этот раздел в качестве своего меню.

Поэтому при добавлении я хочу, чтобы элементы легко настраивались редакторами контента. Они могут редактировать ссылки, которые необходимо показать, и контролировать порядок. Нет жесткого кодирования ссылок.

Если кто-то может помочь в этом.

Настройка панели Suite

С уважением, Навиш


person Navish Rampal    schedule 06.02.2013    source источник


Ответы (3)


Это можно сделать, отключив элементы управления Delegate, которые отображают эти ссылки. Ссылки ниже помогут

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

person ravvi    schedule 20.02.2013
comment
Я перешел по ссылке, чтобы добавить пользовательскую ссылку в панель Suite, но я не вижу ссылку на панели Suit Bar? Любая идея, что изменить? - person SPBeginer; 28.02.2013

Вы должны создать настраиваемый элемент управления делегатом, нацеленный на 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);
        }
    }
person gurkan    schedule 21.10.2013

Вы можете использовать подход javascript, чтобы скрыть эти ссылки, как описано в ссылке ниже.

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

вы также можете добавить новый элемент в раскрывающийся список, используя тот же javascript

Надеюсь это поможет

Спасибо

person Sigar Dave    schedule 06.02.2013