Я нашел способ добавить тот же модуль на страницу на определенном портале, и содержимое, которое уже сохранено в настройках, должно быть связано с использованием идентификатора, который я могу установить.
Поэтому, если мне нужен один и тот же номер телефона на нескольких страницах или в содержимом нижнего колонтитула, я могу оставить поле HTML в разделе настроек пустым и просто сделать идентификатор идентичным тому, который я изначально настроил для содержимого HTML.
Это код для загрузки настроек модуля:
if (Page.IsPostBack == false)
{
per tab settings
var dictSettings = m_PortalController.GetPortalSettings(PortalId);
if (Settings.Contains("GlobalIDHTML"))
{
txtIDGlobalHTML.Text = Settings["GlobalIDHTML"].ToString();
LinkID = Settings["GlobalIDHTML"].ToString();
}
if (dictSettings.ContainsKey("GlobalHTML"+ LinkID))
{
txtGlobalHTML.Text = dictSettings["GlobalHTML"+ LinkID];
}
}
Это код для обновления настроек:
public override void UpdateSettings()
{
try
{
var modules = new ModuleController();
modules.UpdateModuleSetting(ModuleId, "GlobalIDHTML", txtIDGlobalHTML.Text);
modules.UpdateTabModuleSetting(TabModuleId, "GlobalIDHTML", txtIDGlobalHTML.Text);
var globalstoragevalue = "GlobalHTML"+ txtIDGlobalHTML.Text;
if (txtGlobalHTML.Text != null && !string.IsNullOrWhiteSpace(txtGlobalHTML.Text))
{
PortalController.UpdatePortalSetting(PortalId, globalstoragevalue, txtGlobalHTML.Text);
}
}
catch (Exception exc) //Module failed to load
{
Exceptions.ProcessModuleLoadException(this, exc);
}
}
Мой код при загрузке страницы:
try
{
if (Settings["GlobalIDHTML"] != null && !string.IsNullOrWhiteSpace(Settings["GlobalIDHTML"].ToString()))
{
GlobalLinkID = Settings["GlobalIDHTML"].ToString();
}
GlobalContent = TryGetPortalSetting("GlobalHTML"+ GlobalLinkID);
if (GlobalContent != null)
{
GlobalPageContent = GlobalContent;
}
}
Настройки модуля:
Результат: