public MailMessage GetForgotPasswordMailTemplate() { var settingsItem = GetSettingsItem(null); InternalLinkField link = settingsItem.Fields[Templates.AccountsSettings.Fields.ForgotPasswordMailTemplate]; var mailTemplateItem = link.TargetItem; if (mailTemplateItem == null) { throw new ItemNotFoundException($"Could not find mail template item with {link.TargetID} ID"); } var fromMail = mailTemplateItem.Fields[Templates.MailTemplate.Fields.From]; if (string.IsNullOrEmpty(fromMail.Value)) { throw new InvalidValueException("'From' field in mail template should be set"); } var body = mailTemplateItem.Fields[Templates.MailTemplate.Fields.Body]; var subject = mailTemplateItem.Fields[Templates.MailTemplate.Fields.Subject]; return(new MailMessage { From = new MailAddress(fromMail.Value), Body = body.Value, Subject = subject.Value }); }
protected void MapToLinkField(Link link, InternalLinkField linkField, SitecoreFieldConfiguration config) { var item = linkField.InnerField.Item; if (link.TargetId == Guid.Empty) { ItemLink iLink = new ItemLink(item.Database.Name, item.ID, linkField.InnerField.ID, linkField.TargetItem.Database.Name, linkField.TargetID, linkField.TargetItem.Paths.FullPath); linkField.RemoveLink(iLink); } else { ID newId = new ID(link.TargetId); Item target = item.Database.GetItem(newId); if (target != null) { ItemLink nLink = new ItemLink(item.Database.Name, item.ID, linkField.InnerField.ID, target.Database.Name, target.ID, target.Paths.FullPath); linkField.UpdateLink(nLink); } else { throw new MapperException("No item with ID {0}. Can not update Link linkField".Formatted(newId)); } } }
public virtual string GetPageLink(Item contextItem, ID fieldID) { var item = this.GetAccountsSettingsItem(contextItem); if (item == null) { throw new Exception("Page with accounts settings isn't specified"); } InternalLinkField link = item.Fields[fieldID]; if (link.TargetItem == null) { throw new Exception($"{link.InnerField.Name} link isn't set"); } if (Sitecore.Context.Item.InFxm()) { UrlOptions options = LinkManager.GetDefaultUrlOptions(); options.SiteResolving = true; options.AlwaysIncludeServerUrl = true; return(link.TargetItem.Url(options)); } else { return(link.TargetItem.Url()); } }
protected void MapToLinkModel(Link link, InternalLinkField field, SitecoreFieldConfiguration config) { var urlOptions = _urlOptionsResolver.CreateUrlOptions(config.UrlOptions); link.Url = field.TargetItem == null ? string.Empty : LinkManager.GetItemUrl(field.TargetItem, urlOptions); link.Type = LinkType.Internal; link.TargetId = field.TargetItem == null ? Guid.Empty : field.TargetItem.ID.Guid; link.Text = field.TargetItem == null ? string.Empty : field.TargetItem.DisplayName; }
/// <summary> /// Set URL for Internal Link field /// </summary> /// <param name="field">Sitecore Field</param> /// <param name="value">Path or ID of existing Sitecore Item</param> public static void SetInternalLinkvalue(Field field, object value) { InternalLinkField thisField = (InternalLinkField)field; Item item = field.Database.GetItemFromValue(value); if (item != null) { thisField.Value = item.Paths.Path; } }
private LoginInfo CreateLoginInfo(string returnUrl = null) { InternalLinkField link = Context.Site.GetSettingsItem().Fields[Templates.AccountsSettings.Fields.AfterLoginPage]; if (link.TargetItem == null) { throw new Exception("Account Settings: After Login Page link isn't set."); } return(new LoginInfo { ReturnUrl = returnUrl ?? link.TargetItem.Url() }); }
public static Item GetInternalLinkFieldItem(this Item i, string internalLinkFieldName) { if (i == null) { return(null); } InternalLinkField ilf = i.Fields[internalLinkFieldName]; if (ilf != null && ilf.TargetItem != null) { return(ilf.TargetItem); } return(null); }
public override string Value(TokenDataCollection extraData) { InternalLinkField renderingItem = TokenKeeper.CurrentKeeper.GetDatabase().GetItem(BackingId).Fields["Rendering"]; TextWriter tw = new StringWriter(); var h = new HtmlHelper(new ViewContext(new ControllerContext(), new FakeView(), new ViewDataDictionary(), new TempDataDictionary(), tw), new ViewPage()); StringBuilder sb = new StringBuilder(); if (!string.IsNullOrWhiteSpace(extraData["Datasource for the rendering"])) { sb.Append(new SitecoreHelper(h).Rendering(renderingItem.TargetID.ToString(), new { Datasource = extraData["Datasource for the rendering"] })); } return(sb.ToString()); }
internal static Item IdentificationGoal() { var configItem = GetConfigurationItem(); if (configItem != null) { if (configItem.Fields[Templates.Configuration.Fields.IdentificationGoal] != null) { InternalLinkField link = configItem.Fields[Templates.Configuration.Fields.IdentificationGoal]; return(link?.TargetItem); } } return(null); }
protected override object ExtractTypedValueFromField() { InternalLinkField field = Field; var item = field.TargetItem; if (item != null) { var targetModel = Activator.CreateInstance(Property.PropertyType); ModelMapper.MapTo(item, targetModel); return(targetModel); } return(null); }
/// <inheritdoc /> protected override object GetValueToAssign() { InternalLinkField field = Field; var item = field.TargetItem; if (item != null) { var targetModel = Activator.CreateInstance(Property.PropertyType); MappingContext.Current.MapTo(item, targetModel); return(targetModel); } return(null); }
public virtual string GetPageLink(Item contextItem, ID fieldID) { var item = this.GetAccountsSettingsItem(contextItem); if (item == null) { throw new Exception("Page with accounts settings isn't specified"); } InternalLinkField link = item.Fields[fieldID]; if (link.TargetItem == null) { throw new Exception($"{link.InnerField.Name} link isn't set"); } return(link.TargetItem.Url()); }
/// <summary> /// Attempts to get an ajax version of the supplied rendering. /// </summary> /// <param name="rendering">The original <see cref="Rendering"/> to base the search from</param> /// <returns>The Ajax version of the original <see cref="Rendering"/>. Null if no ajax version is found.</returns> private Rendering GetAjaxVersion(Rendering rendering) { if (rendering == null || string.IsNullOrWhiteSpace(rendering.RenderingItemPath)) { return(null); } var renderingItem = this.Database.GetItem(rendering.RenderingItemPath); InternalLinkField ajaxLinkField = renderingItem.Fields["ajax rendering"]; if (ajaxLinkField == null) { return(null); } var ajaxRenderingDatabaseItem = this.Database.GetItem(ajaxLinkField.TargetID); if (ajaxRenderingDatabaseItem == null) { return(null); } // Build the ajax rendering item var ajaxRenderingItem = new Rendering { RenderingItem = new RenderingItem(ajaxRenderingDatabaseItem), Caching = rendering.Caching, ChildRenderings = rendering.ChildRenderings, DataSource = rendering.DataSource, DeviceId = rendering.DeviceId, Item = rendering.Item, LayoutId = rendering.LayoutId, Model = rendering.Model, Parameters = rendering.Parameters, Placeholder = rendering.Placeholder, RenderingItemPath = ajaxRenderingDatabaseItem.ID.ToString(), }; return(ajaxRenderingItem); }