CSharp - 在 Ektron 8.6 + 中,如何为任意内容获取有效的别名?

  显示原文与译文双语对照的内容
0 0

我已经尝试了在 http://dev.ektron.com/forum.aspx?g=posts&t=29497 Ektron论坛上建议的答案。

这些使用

Ektron.Cms.API.UrlAliasing.UrlAliasManual

Ektron.Cms.API.UrlAliasing.UrlAliasAuto

不过,我在Ektron版本 8.6中工作,方法GetItemForContent和GetDefaultAlias分别引发"未实现"异常。

除这里之外,我还不清楚这些方法的工作原理。 有人知道目前检索这些别名的最佳实践?

时间:原作者:4个回答

0 0

通过在workarea文件中查找( 答案是 WorkareacontrolscontentUrlAliasingeditAliasesTab.ascx. cs ) 之后,当前方法在名称空间中使用了 frameworkAPI manager对象 Ektron.Cms.Framework.Settings.UrlAliasing

虽然它的标准"获取"方法只返回测试的自动别名,但getDefaultAlias方法总是返回空字符串,该对象似乎能够处理手动和自动别名。 管理器在使用'。ektron.cms. 设置 urlaliasing 。aliascriteria'中的别名标准对象时按预期的方式工作,返回所有关联的别名。 返回的对象属于别名类型,并将指示它们是否为isDefault属性的默认值。

下面的命令将提取所有别名,而不考虑类型:

Ektron.Cms.Framework.Settings.UrlAliasing.AliasManager aCRUD = new ektron.Cms.Framework.Settings.UrlAliasing.AliasManager();
Ektron.Cms.Settings.UrlAliasing.DataObjects.AliasCriteria aSelector = new Ektron.Cms.Settings.UrlAliasing.DataObjects.AliasCriteria();
aSelector.AddFilter(Ektron.Cms.Settings.UrlAliasing.DataObjects.AliasProperty.TargetId, Ektron.Cms.Common.CriteriaFilterOperator.EqualTo, contentId);
var allAlias = aCRUD.GetList(aSelector);
原作者:
0 0

如果你正在查找内容的直接链接,可能是任何别名,下面的代码将工作:

ContentManager cm = new ContentManager();
ContentData cd = cm.GetItem(contentId);
string link = cd.QuickLink();
原作者:
...