Главные страницы фонда Sharepoint Foundation на дочерних сайтах - PullRequest
4 голосов
/ 28 октября 2010

Используя Sharepoint Foundation 2010, я отредактировал v4.master, добавил ссылку на новый файл CSS, сохранил изменения, и они без проблем применяются к домашнему сайту.

Однако, когда я создаю дочерний сайтон использует старую версию v4.master по какой-то раздражающей причине.Я смутно осознаю, что некоторые функции публикации из SPS не включены в SPF, поэтому многие онлайн-рекомендации не являются полезными (?)

Если есть способ заставить новые дочерние сайты наследовать новый V4.master я был бы очень благодарен.

Ответы [ 4 ]

2 голосов
/ 05 августа 2011

Это возможно только с пользовательским WSP или модулем HttpModule, для обоих требуется код .NET. Серверные версии SharePoint легко справляются с этим с помощью параметра «Мастер-страница», быстрый поиск в Google по запросу «Основное решение для мастер-страницы» дало хорошие результаты, включая:

http://blog.thedesigndrifter.com/?p=1112

http://rickhilferink.wordpress.com/2011/01/25/creating-a-sharepoint-2010-foundation-masterpage-solution-and-automatically-activate-it-for-all-sites-and-newly-created-subsites/

0 голосов
/ 11 января 2012

Я решил эту проблему, создав новое пользовательское определение сайта с помощью Visual Studio и SharePoint Site Definition. Я добавил функцию, которая добавляет мою собственную мастер-страницу (отредактировано из v4.master) в галерею главной страницы семейства сайтов (_catalogs / masterpage):

<Module Name="MasterPageModule" RootWebOnly="FALSE" List="116"  Url="_catalogs/masterpage" >
<File Url="mymasterpage.master" Path="MasterPageModule\mymasterpage.master" IgnoreIfAlreadyExists="TRUE" Type="GhostableInLibrary">
  <Property Name="ContentTypeId" Value="0x010105"/>
</File>  

Главное, чтобы получить одинаковую мастер-страницу для всех сайтов, это установить MasterPageFile -property в Default.aspx так: MasterPageFile = "~ sitecollection / _catalogs / masterpage / mymasterpage.master" - это всегда относится к уровню корневого сбора.

Я думаю, что того же можно добиться с помощью FeatureActivation-метода, но в моем случае это не сработало, не знаю почему.

0 голосов
/ 08 июля 2011

это, вероятно, слишком поздно, чтобы принести вам пользу, но, возможно, это принесет пользу другим.Я обнаружил, что если вы не переименуете настроенную главную страницу в нечто отличное от v4.master, то дочерние сайты не будут наследовать настроенную версию v4.master, а вместо этого будут использовать исходный ненастроенный v4.master.Поэтому убедитесь, что вы делаете копию v4.master и переименовываете ее.Вот несколько шагов из [моего сообщения в блоге], вот как я это сделал:

  1. Щелкните правой кнопкой мыши v4.master и выберите «Сбросить определение сайта», и оригинальный v4.master будетвосстановлен, и SPD 2010 автоматически создаст страницу v4_copy (1) .master (снимок экрана 14).
  2. Зарегистрируйтесь на custom.master, опубликуйте основную версию и утвердите файл
  3. Перейдите в раздел «Действия сайта»> «Настройки сайта»> «Главные страницы» и выберите новую главную страницу, custom.master, длякак на главной странице сайта, так и на главной странице системы, и установите флажок «Сбросить все дочерние сайты для наследования этого альтернативного URL-адреса CSS» (снимок экрана 15)
  4. Теперь, если вы забыли активировать функцию публикации для своего нового дочернего сайта сшаблон сайта группы, он еще не унаследует страницу custom.master, поэтому перейдите в Действия сайта> Настройки сайта> Управление функциями сайта и активируйте функцию публикации (скриншот 16)
  5. Как только эта функция будет активированаВы должны увидеть новую главную страницу и ее стили (скриншот 17)
0 голосов
/ 16 ноября 2010

Если вам нужна возможность иметь главную страницу в корне семейства сайтов, унаследованную дочерними сайтами, лучше всего использовать шаблон сайта публикации.

Затем можно перейти по адресу: / _Layouts /Измените ChangeSiteMasterPage.aspx и укажите свою собственную главную страницу, чтобы она наследовалась всеми дочерними сайтами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...