Как создать строки ресурсов для сайта kentico на каждом сайте? - PullRequest
0 голосов
/ 02 июля 2019

На моем сайте они настроены на 5 сайтах.SiteName: A, B, C, D, E.

Я хочу иметь возможность настраивать эти два фрагмента текста по сайту, используя для каждого текстового поля строку ресурса конкретного сайта (локализации).

Эти строки ресурсов должны настраиваться администратором в Kentico и должны быть доступны для каждого сайта.

Текущие имена этих строк в Kentico: «A.Checkout.EmailTitle» и «A.Checkout.EmailDescription ”для заголовка и описания соответственно.

I, используя следующий код:

открытая строка 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);
    }

Title = resources.GetPerSiteResourceString ("Kadena.Checkout.EmailTitle"), Описание = resources.GetPerSiteResourceString ("Kadena.Checkout.EmailDescription")

1 Ответ

0 голосов
/ 02 июля 2019

Как я уже упоминал на вашем вопросе в Kentico DevNet , Kentico НЕ настроен на решение этой проблемы "из коробки".

Однако описанный вами подход будет работать для извлечения данных, но нет способа ограничить, кто имеет доступ к редактированию данных, если вы не измените пользовательский интерфейс Kentico и / или не создадите новые страницы списка локализации для каждого сайта.

Если вы создадите новый модуль, а затем создадите новые страницы, доступные только отдельным пользователям сайта, вы можете установить условие WHERE для просмотра начала строки ключа и сравнения его с текущимсайт.

...