Как получить доменное имя для элемента Sitecore - PullRequest
4 голосов
/ 08 ноября 2011

У меня есть установка Sitecore для нескольких сайтов.Я пытаюсь создать электронное письмо, которое будет отправлено со ссылками на редактор Sitecore для каждого элемента.У меня все работает, кроме правильного доменного имени.Учитывая идентификатор элемента, как бы я использовал API, чтобы получить домен для этого элемента?Например, я хочу создать URL-адрес, подобный следующему:

http://www.mySite1.com/sitecore/shell/sitecore/content/Applications/Content Editor.aspx? Id = id

Единственная часть, в которой я не уверен, это какпрограммно получить часть "www.mySite1.com".Есть идеи?Я никогда не смогу найти что-то подобное в API Sitecore, хотя я уверен, что оно где-то есть.

Ответы [ 3 ]

6 голосов
/ 10 ноября 2011

Я предполагаю, что в разделе <sites> вашего файла web.config настроено несколько сайтов, и для каждого из них определено свойство hostName, например,

<site name="website1" hostName="website1.com" ...
<site name="website2" hostName="website2.com" ...

. Вы можете использовать SiteManagerкласс для доступа к информации о каждом сайте, включая hostName

Sitecore.Sites.SiteManager.GetSite("website1").Properties["hostName"]

.. если вы работаете на странице Sitecore, вы можете получить доступ к текущему Site объекту, используя

Sitecore.Context.Site 

Hopeэто помогает:)

4 голосов
/ 03 апреля 2012

Я думаю, что есть несколько подходов для вас:

  1. В вашей конфигурации <linkManager> установите alwaysIncludeServerUrl на true, чтобы у вызовов на GetItemUrl() были абсолютно полные URL.

  2. Установите едва документированный атрибут targetHostName на узле <site ... /> в вашем web.config и убедитесь, что для параметра конфигурации Sitecore Rendering.SiteResolving установлено значение true.Это должно затем решить правильное целевое имя хоста, данное сайту в контексте.

1 голос
/ 23 сентября 2015

Я не уверен, что это будет работать в многосайтовой среде, но вы могли бы позвонить Sitecore.Globals.ServerUrl. Если это не сработает, вы можете получить имя хоста, позвонив по номеру Sitecore.Context.Site.HostName, Sitecore.Context.Site.TargetHostName или Sitecore.Context.Site.Properties["hostName"], если получите доступ к нему через страницу, как упоминалось ранее.

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