Моя первая мысль была: почему в onet.xml?
Обычно я делаю это с помощью процесса, называемого сшивание объектов. Позже невозможно удалить / отключить функциональность, созданную из определения сайта (конечно, вы можете вручную, или функция + получатель для удаления, скажем, списка, который вам не нужен для определенного сайта, созданного из файла onet.xml, но вы, наверное, поняли)
При использовании сшивания функций определение (ваш / the) сайта остается чистым и остается тем, чем оно должно быть: определение сайта, которое можно выбрать при создании сайта. ИМХО, это должен быть не более чем пустой контейнер.
Функция сшивания привязывает функции, которые вы хотите активировать при создании сайта, к (пользовательскому) сайту ШАБЛОН. Вы даже можете использовать это для добавления функций, которые вы хотите активировать, а также из готовых определений сайтов. Например, сшивание функций является предпочтительным способом включения функций в определениях «MySite» и «My Site Host». Исходное определение сайта остается нетронутым, но ваши функции тоже активированы!
Теперь, чтобы действительно ответить на ваш вопрос: главная страница, вероятно, еще не доступна, когда используется определение сайта, onet.xml
обрабатывается до того, как активируются какие-либо функции.
Если ваш сайт является сайтом публикации (то есть функции, связанные с публикацией, активированы в семействе сайтов), вы можете установить главную страницу в функции публикации с помощью свойства ChromeMasterUrl
.
Если сайт является обычным сайтом, вы можете сделать 2 вещи:
- разверните главную страницу из
onet.xml
, переместив <Module>
из функции главной страницы в onet.xml
, дополнительную информацию здесь (рисунок 1).
- не устанавливайте URL главной страницы в onet, но используйте функцию + featurereceiver для установки URL главной страницы, дополнительная информация здесь (загружаемый код в статье).