在我们的应用程序设计中,我们希望向用户介绍VanityURL概念。 VanityURL将是页面的自定义元。通过URL查询页面的代理api不再起作用,因为虚荣URL不是PAGE表中的那个。我们提出的解决方案是使用CustomMetaKeyCriteria和CustomMetaValueCriteria查询页面ID,它对我们有用。
我希望有专家来评估这个解决方案,并提供一些意见。
感谢。
答案 0 :(得分:3)
好问题。我会谨慎查询每个页面请求的元数据。您可能还需要小心将此数据存储为页面元数据,因为您需要确保这些值在出版物中的所有页面/ URL中都是唯一的。
要解决唯一性问题,您可能需要创建一个事件系统,在保存页面时根据某种索引文件检查/保存值。
该文件可能如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<VanityURLS PublicationID="tcm:0-33-1">
<Page ID="tcm:3-24-64">
<Vanity>/someURL.html</Vanity>
<Vanity>/someotherURL.html</Vanity>
</Page>
<Page ID="tcm:3-25-64">
<Vanity>/someURL.html</Vanity>
<Vanity>/someotherURL.html</Vanity>
</Page>
<VanityURLS>
然后,您可以定期发布该索引文件,并使用它来查找请求的URL,并将它们映射到页面URI。然后,您可以通过其URI加载页面,或者如果您想要使用现有代码,则可以使用链接API从URI获取URL。然后,您可以将值传递给GetPageMetaByURL()方法。