2010-07-23 1 views
3

Чтобы помочь навигации, мы предпочли бы, чтобы наши пользователи создавали страницы с наименованием менее или равным 30 символам. Существует ли относительно простой способ сделать это? Я видел решение javascript, которое использует метод PreSaveAction, но это не совсем то, что я ищу, поскольку он получил работу на сайте (независимо от того, находятся ли они в настройках сайта или в интерфейсе gui, используя ленту) ,Как проверить длину заголовка страницы в sharepoint 2010?

В настоящее время мы развертываем наши типы контента с помощью функции визуальной студии, если это помогает.

Редактировать: кроме того, это также должно ограничивать длину URL-адреса слишком правильным? Например, мы предпочли бы, чтобы наши пользователи не создавали очень длинные страницы-имена-это-не-дружественные пользователю-etc-etc-etc-etc-etc.aspx

+1

Вы используете Foundation или Server (Standard или Enterprise?) – EtherDragon

+0

Я использую серверную версию (предприятие) – soniiic

ответ

2

Я думаю, что ваш лучший выбор - это реализовать приемник событий элемента списка. Вы можете использовать события ItemAdding, ItemUpdating и ItemFileMoving, чтобы либо дезинфицировать URL-адрес на более короткую длину, либо выбросить ошибку. Приемник событий элемента является надежным, поскольку он работает на сервере независимо от клиента, будь то Office, Windows Explorer, SOAP или веб-интерфейс.

Приемник может быть связан с типом контента или отдельными списками. Если вы связываетесь с типом контента, и вы выбираете элемент как ваш тип контента, то вуаля, он универсален. Если вы хотите принудительно использовать его во всех сайтах и ​​семействах сайтов, ознакомьтесь с функциями степлеров. Идея заключается в том, что вы активируете функцию приемника событий на всех существующих сайтах, а функция сшивателя активирует ее для вас на всех будущих сайтах. Если вы сделаете эту функцию скрытой, ваши пользователи не смогут ее отключить.

Если вы действительно хотите изо всех сил, вы можете настроить формы, используемые для создания новых страниц с небольшой проверкой JavaScript, или просто MaxLength в текстовом поле; однако я предпочитаю не настраивать системные файлы.

Удачи вам!

1

Лучшее, что вы можете сделать, это изменить файл, создающий страницу, это трюк SharePoint 2007, но он будет работать и в 2010 году. Page которое появляется, когда вы говорите, новая страница /_layouts/CreatePublishingPageDialog.aspx сделать копию этой страницы & называют его /_layouts/CreatePublishingPageDialog_new.aspx или что вы хотите. На новой странице добавьте свою проверку, чтобы вы могли ограничить заголовок 30 Char. Тем не менее вы можете подключить обработчик событий кнопки Button &, чтобы URL-адрес страницы был меньше.

Теперь у нас есть пользовательская страница, которая будет выполнять всю проверку, следующим шагом будет открыть эту страницу вместо оригинальной страницы. Вы можете достичь этого, используя шаги в этом article. Обратите внимание, что вам необходимо отредактировать файл. SiteAction.xml В статье рассказывается о панели редактирования страниц, но вы делаете то же самое и с сайтом. Полная копия этого файла присутствует в C: \ Program Files \ Common Files \ Microsoft Shared \ Web Server Extensions \ 14 \ ШАБЛОН \ Layouts \ EditingMenu \ SiteAction.xml

Edit: This ссылка имеет ссылку на как сделать настройки для CreatePage.aspx (MOSS)

0

Я думаю, что я, возможно, нашел мой собственный элегантный ответ, который не требует какого-либо кода :) Я могу поместить валидацию в библиотеку Pages, перейдя в настройки библиотеки «Страницы»> «Настройки проверки». Если я использую это в своем поле формулы =LEN(Title)<=30, он делает именно то, что я хочу, чтобы он делал.

Однако есть еще какое-то странное поведение при диалоге добавления страницы, хотя там, где он показывает ошибку, но все же создает страницу в черновике:/Я должен буду в этом заглянуть.

+0

А это не очень элегантно! Когда я редактирую содержимое страницы с заголовком более 30 символов, я получаю диалоговое окно «Сохранить конфликт», и я все еще не могу заставить его ограничивать имя файла не более чем 30 символами. Кроме того, объяснение валидации никогда не отображается пользователю, если оно не использует диалоговое окно «Свойства редактирования». – soniiic