【问题标题】:Populate other properties with a property用属性填充其他属性
【发布时间】:2013-07-29 17:47:41
【问题描述】:

我最近被分配到一个 EPiServer 项目。然而,我是 .Net 开发人员,我从来没有真正享受过使用 ES 的乐趣。

我的任务是创建与 SoundCloud 的软“集成”。我们的用户想将 URL 复制/粘贴到 SoundCloud 歌曲 - 然后我可以使用他们的 API 来实际获取音频的所有信息。 (标题、描述、标签等)。

所以到目前为止我创造了什么

  • SoundcloudPageType(包含标题、描述、持续时间等简单属性)
  • 我为 Soundcloud API 编写了小 POC,它可以获取所有信息并将其反序列化为对象。

我现在需要的是两者之间的桥梁。我认为创建类似“PageLinkReference”的东西,您可以在其中单击 [...] 按钮,然后会询问您“SoundCloud 音频的 URL”,一旦有人进入,我将执行 REST api 调用来预填充所有其他属性在页面上。

现在,这只是一个想法。我想跑过去看看是否

  1. 有可能。
  2. 这样做的最佳方法是什么,是否有任何教程可以做类似的事情。

我不想通过 EPiServer 破解和削减我的方式,而是利用 EPiServer 可能已经提供的东西。

【问题讨论】:

    标签: episerver episerver-6-r2


    【解决方案1】:

    我会向 SoundcloudPageType 添加一个短字符串属性,然后让用户粘贴到该字段中。

    如果您正在使用类似这样的 PageTypeBuilder:

    [PageTypeProperty(
            EditCaption = "Soundcloud Url",
            Type = typeof(PropertyString),
            SortOrder = 2010,
            UniqueValuePerLanguage = false,
            Searchable = true)]
    public virtual string SoundcloudUrl { get; set; }
    

    然后,您可以在 EPi 的保存事件之一中“按请求”获取或获取并存储(最简单的是在您添加的其他属性上)。看看 Joel 关于与 EPi 集成时的常见模式的文章:

    http://joelabrahamsson.com/episerver-integration-patterns/

    【讨论】:

    • 是否有一个钩子或方法可以覆盖我的页面类型,例如“OnSave”,以便我可以使用该 URL 并在保存页面以填充所有字段的同时进行调用?
    • 是的,在您的情况下,将相同的方法附加到事件 CreatedPage 和 SavedPage。这是一个如何做到这一点的例子:world.episerver.com/Blogs/Anders-Hattestad/Dates/2011/2/…
    • 我玩过 DataFactory.Instnance 事件,但似乎在保存页面之前没有调用任何事件,以便我可以在保存之前修改字段。
    • 您尝试过“SavingPage”和“CreatingPage”吗?想得更多,我建议 CreatedPage 和 SavedPage 可能是错误的,但是如果您使用它们,您肯定会在需要时提供新的 PageReference - 但是在这种情况下您需要重新保存页面。 dodavinkeln.se/post/2011/11/14/…
    • 很抱歉这么久才回复你。我在创建“保存”事件时遇到了问题,因为如果我更改某些内容,我需要重新触发保存,然后创建一个循环。
    【解决方案2】:

    你可以使用oEmbed动态内容插件,它应该支持soundcloud

    http://nuget.episerver.com/en/?search=oembed&sort=MostDownloads&page=1&pageSize=10

    【讨论】:

    • 非常有趣的想法。可悲的是,我需要一个页面类型(因为我需要保留每首歌曲的记录。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-23
    • 2021-11-25
    • 2017-04-15
    相关资源
    最近更新 更多