东莞市连易网络科技有限公司
东莞市连易网络科技有限公司
  • 网站
  • 用户
  • 购物车
  • 购物车
  • 搜索
  • 网站
  • 用户
帮助
帮助
开发文档 小组件扩展
  • 用户文档
  • 开发文档
  • API文档
  • 提及
  • 标签
  • 更多
  • 取消
  • 新建
  • +开始
  • -UI 自定义
    • -UI 扩展
      • HTML 标头
      • HTTP 回调
      • Sockets
      • 出厂默认小组件提供程序
      • 小组件上下文
      • 小组件扩展
      • 扩展上下文管理 UI
      • 扩展内容编辑器
      • 扩展系统管理 UI
      • 页面定义和 URL 路由
    • UI 自动化
    • 主题
    • +小组件
  • +外部集成
  • +插件/框架扩展

小组件扩展

小组件扩展是支持向小组件公开 API 的插件。有关 Limyee 电商平台附带的扩展的文档,请访问小组件扩展文档。

为什么要创建小组件扩展?

您是否希望能够直接从小组件调用任何自定义方法或属性?自定义小组件扩展可以公开这些方法和属性,以便可以直接在 velocity 脚本中调用它们。

创建小组件扩展

首先,我们需要一个类,其中包含一个或多个要在小组件扩展中公开的公共方法或属性。Velocity(脚本化小组件使用的脚本引擎)最适合简单的数据类型和 IDictionarys。

下面的类有一个名为 SayHello 的公共方法。该方法采用单个字符串参数名称并返回“Hello {name}”。

public class Sample 
{
    public string SayHello(string name) 
    {
        return "Hello " + name;
    }
}

为了公开这个类,我们将使用第二个类来实现 IScriptedContentWidgetExtension 插件类型。首先,我们将 Sample 类的一个实例返回到 Extension 方法。

public object Extension
{
    get { return new Sample(); }
}

我们还需要为示例扩展提供唯一的名称。对于该示例,我们将使用名称“limyee_v1_sample”。我们建议在命名小组件扩展时使用 {vendor}_v{version_number}_{service_name},以确保扩展名的唯一名称、易于版本控制并与现有扩展保持一致。

public string ExtensionName
{
    get { return "limyee_v1_samples"; }
}

一旦 IScriptedContentWidgetExtension 实现并部署到 Limyee 电商平台站点的 bin/ 文件夹中,必须在管理区域中启用它,然后才能将其用于脚本化小组件。

示例

示例扩展的完整源代码:

using Limyee.Extensibility.UI.Version1;

namespace Samples
{
    public class Sample
    {
        public string SayHello(string name)
        {
            return "Hello " + name;
        }
    }

    public class SampleWidgetExtension : IScriptedContentWidgetExtension
    {
        #region IScriptedContentWidgetExtension Members

        public string ExtensionName
        {
            get { return "limyee_v1_samples"; }
        }

        public object Extension
        {
            get { return new Sample(); }
        }

        #endregion

        #region IPlugin Members

        public string Name
        {
            get { return "扩展示例"; }
        }

        public string Description
        {
            get { return "使小组件能够使用 Sample 类的公共成员。"; }
        }

        public void Initialize() { }

        #endregion
    }
}

使用扩展

现在我们的扩展已启用,我们可以创建一个调用我们的扩展的小组件:

$limyee_v1_samples.SayHello('World')

将此小组件添加到页面,您应该会看到小组件输出“Hello World”。如果对小组件扩展的调用引发了异常,则不会为终端用户呈现该小组件。编辑页面时,您将看到呈现的异常,而不是预期的小组件内容。错误信息也可以返回响应,以提供可翻译或更容易理解的错误消息。返回使用或继承以下类型之一(ApiList、PagedList、ApiEntity 或 AdditionalInfo)的值,通过在返回对象上提供 Errors 集合属性来添加错误的返回。

  • 分享
  • 历史
  • 更多
  • 取消
相关
推荐
Copyright © 2021 东莞市连易网络科技有限公司. All rights reserved.
Powered by Limyee Commerce System(3.0.0). © 2014 - 2025 Limyee Inc.