public void UpdateTitle(Sxc.Blocks.IBlockBuilder blockBuilder, IEntity titleItem) { Log.Add("update title"); var languages = blockBuilder.Environment.ZoneMapper.CulturesWithState(blockBuilder.Container.TenantId, blockBuilder.Block.ZoneId); // not nullable any more 2019-11-09 // .Value); // Find Module for default language var moduleController = new ModuleController(); var originalModule = moduleController.GetModule(blockBuilder.Container.Id); foreach (var dimension in languages) { if (!originalModule.IsDefaultLanguage) { originalModule = originalModule.DefaultLanguageModule; } try // this can sometimes fail, like if the first item is null - https://github.com/2sic/2sxc/issues/817 { // Break if default language module is null if (originalModule == null) { return; } // Get Title value of Entitiy in current language var titleValue = titleItem.Title[dimension.Key].ToString(); // Find module for given Culture var moduleByCulture = moduleController.GetModuleByCulture(originalModule.ModuleID, originalModule.TabID, blockBuilder.Container.TenantId, DotNetNuke.Services.Localization.LocaleController.Instance.GetLocale(dimension.Key)); // Break if no title module found if (moduleByCulture == null || titleValue == null) { return; } moduleByCulture.ModuleTitle = titleValue; moduleController.UpdateModule(moduleByCulture); } catch { // ignored } } }
public ClientInfosEnvironment(string systemRootUrl, PortalSettings ps, IContainer mic, Sxc.Blocks.IBlockBuilder blockBuilder) { WebsiteId = ps.PortalId; WebsiteUrl = "//" + ps.PortalAlias.HTTPAlias + "/"; PageId = mic.PageId; PageUrl = ps.ActiveTab.FullUrl; InstanceId = mic.Id; SxcVersion = Settings.Version.ToString(); SxcRootUrl = systemRootUrl; var userMayEdit = blockBuilder?.UserMayEdit ?? false; IsEditable = userMayEdit; parameters = blockBuilder?.Parameters; }