小编Suh*_*has的帖子

获取具有版本的所有语言的项目

假设我们有一个Item Product(其中包含en,jp,zh和u版本的版本).我如何在en,jp和zh中获得此项而不在ru中.

我尝试了下面的代码.

Item tempItem = Sitecore.Context.Database.GetItem(tempID);
foreach (var itemLanguage in tempItem.Languages)
{
  //Do Something
}
Run Code Online (Sandbox Code Playgroud)

这里tempItem.Languages返回所有四种语言,我只期望三种语言,因为ru没有版本.

这是实现这一目标的正确方法吗?

sitecore sitecore7

6
推荐指数
2
解决办法
1万
查看次数

使用Sitecore查询获取所有语言的儿童

如何在所有语言中将所有儿童和大孩子置于家庭项目下,如果他们有该语言的版本?

我想使用Sitecore查询来实现这一点.

下面是我正在使用的代码.

//Getting the default "en" language
var contextLanguage = Sitecore.Context.Language.Name;
string query = "/sitecore/content/home//*";

//Getting items in en language
List<Item> items = database.SelectItems(query).ToList();
foreach (var language in languages)
{
    //Getting items in all language other than the default en language
    if (!string.Equals(contextLanguage, language))
    {
        //Changing the context language so as to get items in the particular language
        Sitecore.Context.Language = Sitecore.Globalization.Language.Parse(language);
        items.AddRange(database.SelectItems(query).ToList());
     }
}
//Ressetting the context to the default language
Sitecore.Context.Language = Sitecore.Globalization.Language.Parse(contextLanguage);
Run Code Online (Sandbox Code Playgroud)

注意:此处语言是网站中所有可用语言的集合.

上面的代码返回给我每个项目4(因为我们有4种语言),当他们没有特定语言的版本时,只有默认的en语言.

注意:我在网站中使用语言回退模块.这可能是一个原因吗?

有没有更好的方法来实现这一目标?

sitecore

0
推荐指数
1
解决办法
2088
查看次数

标签 统计

sitecore ×2

sitecore7 ×1