Cómo obtener el nombre de dominio para un elemento de Sitecore

Tengo una instalación de Sitecore en varios sitios. Estoy intentando crear un correo electrónico que se envía que contiene enlaces al editor de Sitecore para cada elemento. Lo tengo todo funcionando excepto el nombre de dominio correcto. Dado un ID de artículo, ¿cómo usaría la API para obtener el dominio para ese artículo? Por ejemplo, quiero producir una URL como la siguiente:

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

La única parte de la que no estoy seguro es cómo recuperar mediante programación la parte "www.mySite1.com". ¿Algunas ideas? Nunca puedo encontrar cosas como esta en la API de Sitecore, aunque estoy seguro de que están allí en alguna parte.

preguntado el 08 de noviembre de 11 a las 16:11

No estoy seguro de que esa funcionalidad esté ahí ... al menos no en la versión anterior de Sitecore 6. Sitecore está más o menos construido para ser una solución de dominio único, aunque puede superar la mayoría de los problemas con él. Pero este problema generalmente requiere algún código personalizado para darle el dominio correcto. -

3 Respuestas

Supongo que tiene varios sitios configurados en el <sites> sección de su archivo web.config y que cada uno tiene un hostName propiedad definida, por ejemplo

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

Puede utilizar la clase SiteManager para acceder a información sobre cada sitio, incluido el nombre de host.

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

.. si está ejecutando en una página de Sitecore, puede acceder a la Site objeto usando

Sitecore.Context.Site 

Espero que esto ayude :)

respondido 10 nov., 11:14

Creo que hay algunos enfoques para ti:

  1. En su <linkManager> config, establecer alwaysIncludeServerUrl a true así que llama a GetItemUrl() tener URL completas absolutas.

  2. Establecer lo apenas documentado targetHostName Atributo en el <site ... /> nodo en tu web.config y asegúrese de que la configuración de Sitecore Rendering.SiteResolving se establece a true. Esto debería resolver el nombre de host de destino correcto dado el sitio en contexto.

Respondido 03 Abr '12, 05:04

No estoy seguro de que esto funcione en un entorno de varios sitios, pero puede llamar Sitecore.Globals.ServerUrl. Si esto no funciona, puede obtener el nombre de host llamando Sitecore.Context.Site.HostName, Sitecore.Context.Site.TargetHostName or Sitecore.Context.Site.Properties["hostName"] si accede a él a través de una página como se mencionó anteriormente.

Respondido el 23 de Septiembre de 15 a las 12:09

Tengo varios dominios, uno para sitecore y otro para otra aplicación de terceros. Comparten el mismo contenido de sitecore para el banner de navegación. Cuando navego a la aplicación de terceros, necesito usar Sitecore.Globals.ServerUrl para volver a la URL "INICIO", que es el dominio principal de sitecore. - Ryan Huang

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.