如何在每个站点中创建kentico站点特定的资源字符串?

时间:2019-07-02 10:21:58

标签: kentico kentico-mvc kentico-api

在我的站点中,他们已经在5个站点中进行了配置。网站名称:A,B,C,D,E。

我希望能够使用每个文本字段的特定于站点的资源(本地化)字符串来按站点自定义这两段文本。

这些资源字符串应可由Kentico上的管理员配置,并且应该能够由每个站点配置。

Kentico中这些字符串的当前名称分别是标题和描述的“ A.Checkout.EmailTitle”和“ A.Checkout.EmailDescription”。

我使用以下代码:

公共字符串GetPerSiteResourceString(字符串名称,字符串site =“”)

    {
        if (string.IsNullOrEmpty(site))

        {
            site = SiteContext.CurrentSiteName;
        }
        var fullname = $"{site}.{name}";

        var perSiteStringInfo = ResourceStringInfoProvider.GetResourceStringInfo(fullname, LocalizationContext.CurrentCulture.CultureCode);
        if (perSiteStringInfo != null && perSiteStringInfo.StringID > 0)
        {
            return perSiteStringInfo.TranslationText;
        }
        return ResHelper.GetString(name, LocalizationContext.CurrentCulture.CultureCode);
    }

标题= resources.GetPerSiteResourceString(“ Kadena.Checkout.EmailTitle”),                 说明= resources.GetPerSiteResourceString(“ Kadena.Checkout.EmailDescription”)

1 个答案:

答案 0 :(得分:0)

正如我在your question on the Kentico DevNet上提到的那样,Kentico尚未设置为立即可用。

但是,您概述的方法将可用于检索数据,但是除非您修改Kentico UI和/或为每个站点创建新的本地化列表页面,否则无法限制谁有权编辑内容。

如果要创建一个新模块,然后创建只能由单个站点用户访问的新页面,则可以设置WHERE条件以查看键字符串的开头并将其与当前站点进行比较。