可能有人请就如何可以做到这一点的一些想法? 这可能是非常简单和基本知识,但我无法弄清楚这一点。
这里是我的要求。
我有孩子关键字B和B A类有另一个孩子关键字C.
我想在我的组件模板,譬如说如选择关键字的确切路径,如果用户选择的关键字C,我需要与路径的价值像A \ B \ C而不是仅仅作为C.但是外表套上总是给我的价值为C,而不是作为A \ B \ C。 组件架构使用“树”视图中选择的关键字。
我应该写Dreamweaver中自定义函数来处理呢? 或者根本的tridion附带了一些处理程序呢?
任何帮助将高度赞赏。 谢谢!
谢谢,KK
正如你刚刚发现,在外表套上关键字层次是“假的” - 关键词存储为一个平面列表,而不是作为一个分级列表(像你这样有文件夹)。 关于家长和孩子关键字的信息存储在关键字本身。
有方案来解决这个 - 当然,比如你可以在C#TBB使用:
Keyword keyword = new Keyword(new TcmUri("tcm:28-3368-1024"), session);
string hierarchy = keyword.Title;
bool done = false;
while(!done)
{
if (keyword.ParentKeywords.Count > 0)
{
foreach (Keyword k in keyword.ParentKeywords)
{
hierarchy = k.Title + " > " + hierarchy;
}
keyword = keyword.ParentKeywords[0];
}
else
done = true;
}
// Include Category
hierarchy = keyword.OrganizationalItem.Title + " > " + hierarchy;
编辑:更新递归“上去”的层次结构。 然而,一个关键词可以有多个家长,我会离开,你来修复...
一个类别中的关键字是唯一的,所以外表套上可以通过它们的名字(和/或当然还有他们的中医URI)安全地引用它们。 而且,由于一个关键字可以有多个家长,有可能不是一个单一的路径从根到您的关键字领先。
如果您的情况的类别可以表示为一棵树,你当然可以建到每个关键字的单一路径。 在这种情况下,你需要一些(C#)代码,走到父母轴并连接的名称。 您可以把这个代码:
- 在TBB,你把你的模板DWT前OR
- 在自定义Dreamweaver的功能。
无论哪种方式,将正常工作。