public FakeItem WithLanguage(Sitecore.Globalization.Language language) { Item.Language.Returns(language); Item.Database.GetItem(Item.ID, Item.Language).Returns(Item); Item.Database.GetItem(Item.ID.ToString(), Item.Language).Returns(Item); Item.Database.GetItem(Item.ID, Item.Language, Item.Version ?? Version.First).Returns(Item); Item.Database.GetItem(Item.ID.ToString(), Item.Language, Item.Version ?? Version.First).Returns(Item); return(this); }
public static Models.Language Create(Sitecore.Globalization.Language language) { return(new Models.Language { Name = language.CultureInfo.NativeName, Url = GetItemUrlByLanguage(language), Icon = string.Concat("/~/icon/", language.GetIcon(Context.Database)), TwoLetterCode = language.CultureInfo.TwoLetterISOLanguageName }); }
private static string GetItemUrlByLanguage(Sitecore.Globalization.Language language) { using (new LanguageSwitcher(language)) { var options = new UrlOptions { AlwaysIncludeServerUrl = true, LanguageEmbedding = LanguageEmbedding.Always, LowercaseUrls = true }; var url = LinkManager.GetItemUrl(Context.Item, options); return(StringUtil.EnsurePostfix('/', url).ToLower()); } }
protected override Item GetItem(ID itemId, Sitecore.Globalization.Language language, Version version, Database database) { var item = base.GetItem(itemId, language, version, database); if (item == null) { return(item); } if (item.Versions.GetVersionNumbers().Length > 0) { return(item); } var fallbackLanguage = Sitecore.Context.Site.GetFallbackLanguage(); if (fallbackLanguage == null) { return(item); } Item fallback = base.GetItem(itemId, fallbackLanguage, Version.Latest, database); if (fallback == null) { return(item); } if (fallback.Versions.GetVersionNumbers().Length == 0) { return(item); } var stubData = new ItemData(fallback.InnerData.Definition, fallback.Language, fallback.Version, fallback.InnerData.Fields); var stub = new LanguageStub(itemId, stubData, database) { OriginalLanguage = item.Language }; stub.RuntimeSettings.SaveAll = true; return(stub); }
public static Sitecore.Layouts.RenderingReference GetRenderingReference(Sitecore.Mvc.Presentation.Rendering rendering, Sitecore.Globalization.Language language, Sitecore.Data.Database database) { Sitecore.Diagnostics.Assert.IsNotNull(rendering, "rendering"); Sitecore.Diagnostics.Assert.IsNotNull(language, "language"); Sitecore.Diagnostics.Assert.IsNotNull(database, "database"); string text = rendering.Properties["RenderingXml"]; if (!string.IsNullOrEmpty(text)) { return(new Sitecore.Layouts.RenderingReference(XElement.Parse(text).ToXmlNode(), language, database)); } return(null); }
protected override Item GetItem(ID itemId, Sitecore.Globalization.Language language, Version version, Database database) { var item = base.GetItem(itemId, language, version, database); if (item == null) { return(item); } if (item.Versions.GetVersionNumbers().Length > 0) { return(item); } //Try Default Language var defaultLang = Sitecore.Configuration.Settings.GetSetting("SF.LanguageStrategy.DefaultLanguage"); if (string.IsNullOrEmpty(defaultLang)) { return(item); } var fallbackLanguage = LanguageManager.GetLanguage(defaultLang); if (fallbackLanguage == null) { return(item); } Item fallback = base.GetItem(itemId, fallbackLanguage, Version.Latest, database); if (fallback != null && fallback.Versions.GetVersionNumbers().Length > 0) { var stubData = new ItemData(fallback.InnerData.Definition, fallback.Language, fallback.Version, fallback.InnerData.Fields); var stub = new LanguageStub(itemId, stubData, database) { OriginalLanguage = item.Language }; stub.RuntimeSettings.SaveAll = true; return(stub); } //Item doesn't exist in default language, Let's take any other version. var installedLanguages = LanguageManager.GetLanguages(database); //Assume this will be in same order of languages as defined in System Languages foreach (var installedLanguage in installedLanguages) { fallback = base.GetItem(itemId, installedLanguage, Version.Latest, database); if (fallback != null && fallback.Versions.GetVersionNumbers().Length > 0) { var stubData = new ItemData(fallback.InnerData.Definition, fallback.Language, fallback.Version, fallback.InnerData.Fields); var stub = new LanguageStub(itemId, stubData, database) { OriginalLanguage = item.Language }; stub.RuntimeSettings.SaveAll = true; return(stub); } } //Nothing Worked return the null item return(item); }