Jeff Wallace
Sep 21, 2010
(3 votes)

ShareThis and FacebookLike Dynamic Content Modules plus a DropDown Property Type

Based on CMS 6.0

Sharing content with ones social networks is a popular topic in the web world today.  It can act as a means of free advertising or more simply as a way of letting your network know when you come across something fun, interesting, etc.  Adding ShareThis, AddThis, Facebook Like, etc buttons is very easy if you work with HTML or javascript frequently. After all, you can get the code for each with a few minor configurations and clicks on the respective organizations sites.  However, all Content Authors/Editors may not understand HTML/javascript or want to deal with it.  Or, maybe they just want a simple way to add and configure buttons at locations they desire through standard EPiServer methodologies.  I spent a bit of time creating some Dynamic Content controls which will allow just this capability.  For more on Dynamic Content read here.  Otherwise, continue on with more details of my efforts.


Here’s what I’ve created:

1. "ShareThis" Dynamic Content module

a. The Dynamic Content item allows a Content Author (Editor) to add a ShareThis button anywhere on the page through a friendly GUI
     i.  This may be beneficial for Content Authors who are not comfortable with adding this to the Editor HTML or Page Template ASPX
b. It allows the Content Author to configure the text associated with the button (when applicable)
c. It allows the Content Author to configure and select between different button types:
    i.   Multiple Icons
    ii.  Standard Icon
    iii. Rotating Icon
    iv. Vertical Counter
    v.  Horizontal Counter

d. clip_image001

e. image

2. "Facebook Like" Dynamic Content module

a. It allows the Content Author to configure the text associated with the button based on the pre-defined "Facebook Like" options:
     i.  Like
    ii.  Recommend
b. It allows the Content Author to configure and select between different button types:
     i.  Standard Icon
     ii. Button Count Icon

c. clip_image003

d. image

3. "DropDown" Custom Property

a. This includes custom settings based on the CMS 6 Settings on Properties functionality so that the user can configure the items listed in the DropDown
b. I use this in my Dynamic Content items above, but created it with the specific intent of making this useful for other purposes as well

c. clip_image005

d. clip_image006

Attached you will find the code and a basic ReadMe.txt file with instructions to set this up.  I’ll beg your forgiveness for not creating an installer.  :)  You will have to add the code files to your project, compile, and update episerver.config.  The code was written for the Alloy Technologies templates and CMS 6.  The associated directories and namespaces align with this but could easily be changed for other templates.  Also note, it would probably be an improvement to add a call to RegisterClientScriptBlock() for the script being added to the page.  Other optimizations and edits are also possible. This is merely a conceptual starting point and a nice way to demo Dynamic Content and social features.



Sep 21, 2010


Helen Hopkinson
Helen Hopkinson Sep 22, 2010 08:38 AM

Great stuff Jeff. Me like!

Sep 22, 2010 02:50 PM

Thanks Helen. :)

Sep 23, 2010 10:52 AM

Yes, well done!

Feb 4, 2011 03:11 PM

Caliming love to this dynamic content!! "Nice-a-licius"

Please login to comment.
Latest blogs
Optimizely SendGrid SMTP host is deprecated

SendGrid is a services for sending email that is included in Optimizely DXP. Previously was the recommended SMTP server to use,...

Tomas Hensrud Gulla | Dec 4, 2022 | Syndicated blog

Hosting Optimizely CMS 12 on Docker Engine

Since Optimizely CMS can now be deployed as a Docker container, here is a demonstration of building, running and scaling an Optimizely CMS 12 site ...

Stefan Holm Olsen | Dec 4, 2022 | Syndicated blog

How to use CacheTagHelper with content areas in Optimizely CMS 12

I might be going out on a limb here - if you have a better solution, feel very free to share it!  Upgrading your Optimizely web application from .N...

Andreas J | Dec 2, 2022

The 1001st Piece in your 1000 Piece Puzzle: .NET Default Interface Functions

I was recently working with a client who wanted a reasonably large subsystem added to Optimizely that would add automated management to their...

Greg J | Nov 28, 2022 | Syndicated blog