Article

Creating a Plugin for Telligent Community

In the first post of the development series, we’re going to start with one of the cornerstones of Telligent Community; the plugin.

What is a plugin?

Within Telligent Community, plugins are the way we can inject functionality into the platform. This can be a scheduled job, some code that runs when a user joins the community or a type of content. The product uses plugins to provide almost all of the functionality you see in the platform, such as email templates, scheduled jobs, applications and content, authentication. A plugin is a compiled .net class that implements Telligent.Evolution.Extensibility.Version1.IPlugin and is deployed as a dll to the site’s bin folder. You can see the full list of plugins available out of the box by looking at the plugin admin page at http://[yoursite]/controlpanel/Settings/ManagePlugins.aspx.

Creating your first plugin

For this exercise we will start by creating a new Visual Studio Class Library project called CreatingPlugins.

Before we create our first plugin we will need to reference the Telligent Community libraries. For this exercise we just need to reference Telligent.Evolution.Components.dll from the /bin folder of your community.

Then, we will create a new class called MyFirstPlugin and implement IPlugin. We will need to add a reference to the Telligent Community libraries to do this. IPlugin requires you to implement two simple properties; it’s name and description. These are the values that will appear when administering Plugins in the admin page above.

Deploying and enabling your plugin?

Once you have built your project, copy the dll to your site’s /bin folder and then visit the Plugin admin page and filter for “My First Plugin” and you can enable it here.

Tip! If you’re developing against a local site, you can set your project to output the dll directly to your site’s bin folder to avoid having to keep copying it each time.

At this point the plugin doesn’t actually perform any function, but it is registered in the platform and is enabled ready to go. In later posts, we will explore the many ways we can extend the functionality using a plugin as the starting point.

Please do let me know in the comments what you’d like to see next in the series as I really want to post about the questions and problems you are having.