C#扩展

你可以使用C#对系统进行扩展, 扩展要实现Kooboo的接口并把编译完的Dll放进Kooboo的执行目录里。 

数据源

数据源是给组件设计器提供数据的。你只要实现IDataSource的接口或是继承SiteDataSource, Kooboo会自动找到你类库里的方法做为数据方法。

namespace Kooboo.Data.Interface
{
   public interface  IDataSource
    {
    }
}

namespace Kooboo.Sites.DataSources
{ 
    public abstract class SiteDataSource : IDataSource
    {
        public FrontContext Context { get; internal set; }
    }
}

kScript

扩展kScript的方法, 使用方法: k.ex.{yourname}.{methodname}

namespace Kooboo.Data.Interface
{
    public interface IkScript
    { 
        string Name { get;  }

        RenderContext context { get; set; }
    }
}

诊断

用于诊断你网站的错误

namespace Kooboo.Sites.Diagnosis
{
    public interface IDiagnosis
    {
        DiagnosisSession session { get; set; }

        string Name(RenderContext context);

        string Group(RenderContext context); 

        void Check(); 
    }
}

DiagnosisSession 有你可以向用户发通知的方法

  this.session.AddMessage("Missing link", message, MessageType.Critical); 

表单提交

用于配置表单提交.  表单提交上来的数据包含在RenderContext里面 context.Request.Forms

namespace Kooboo.Data.Interface
{
  public interface IFormSubmitter
    {
        string Name { get;  }

        bool Submit(RenderContext context, Guid FormId,  Dictionary<string, string> settings);

        List<Models.SimpleSetting> Settings(RenderContext context);

        string CustomActionUrl(RenderContext context, Dictionary<string, string> settings); 
    }
}

组件方法

方法用在kView里面, 比如下例的 appendUrl 是一个扩展方法,把新参数加到当前Url中去。 

<td><a k-href="appendUrl('deleteFile', item.fullName)"> del </a></td>

接口

namespace Kooboo.Sites.Render.Functions
{
    public interface IFunction
    {
        string Name { get; }

        List<IFunction> Parameters { get; set; }

        object Render(RenderContext context); 
    }
}

后台程序

在后台运行的程序代码 

namespace Kooboo.Data.Interface
{
    public interface IBackgroundWorker
    {  
        /// Interval in seconds.  
        int Interval { get;  }

        DateTime LastExecute { get; set; }

        void Execute();
    }
}