Settings for plugins in graphical modes

Namespace:  EPiServer.PlugIn
Assembly:  EPiServer (in EPiServer.dll) Version: 5.2.375.236

Syntax

C#
[AttributeUsageAttribute(AttributeTargets.Class)]
public class GuiPlugInAttribute : PlugInAttribute

Remarks

To translate DisplayName and Description of a plug-in you have to add your own xml file in the “lang/” directory and set the property LanguagePath. If you for example set LanguagePath to /myplugin/sample the xml paths you add should be /myplugin/sample/displayname and /myplugin/sample/description.

There may be some plug-ins that requires special security roles or other circumstances that the plug-in framework doesn’t have knowledge of, in these cases you may implement ICustomPlugInLoader on you plug-in. This will allow you to control loading of the plug-in yourself.

Some plug-ins need to store some kind of internal settings or state, there are different approaches to this. If you only need to store simple system settings, for example the mail server name in your brand new mail plug-in you probably want to use web.config. If you have large amout of data the obvious choice is to store it in a database. When your need fits in between these two, you need to store small sets of relational data and don’t want to use your own database for this simple purpose you have PlugInSettings. PlugInSettings is used to store plug-in settings and information in a DataSet, these will be persisted as xml together will the plug-in definition in the EpiServer database.

See PlugInAttribute class for more information on how the plug-ins are located and matched.

Examples

Sample plug-in that will show up in Edit mode under a tab in the tree frame.
CopyC#
[GuiPlugIn(DisplayName="MyShop",
Description="Shopping Administration",
Area=PlugInArea.EditTree,
Url="~/MyShop/Plugin/ShopPluginTree.ascx", 
LanguagePath="/myshop/plugin/ShopPluginTree")]
public abstract class EPiShopPluginTree : System.Web.UI.UserControl
{
    // ToDo: Add functionality
}
Simple example of marking a user control as a plug-in, will show up in edit mode on a page as a tab.
CopyC#
[GuiPlugIn(DisplayName = "MyPlugIn",
Description = "Just a sample",
Url = "~/myplugin/Sample.ascx",
Area = PlugInArea.EditPanel)]
public class Sample : UserControl
{
    // ToDo: Add functionality
}

Inheritance Hierarchy

See Also