Magnus Rahl
Feb 6, 2009
visibility 5920
star star star star star
(0 votes)

Social bookmarking as Dynamic Content

Many of you have probably built sites with social bookmarking icons or similar (“Share on facebook” etc.). Just for fun I decided to create an easily extendable implementation for this, and to do it as Dynamic Content to enable editors to place whatever social bookmarking icons whereever they like.

Description

Here is a screen dump of an example page using my QuickLink Dynamic Content:

quicklink

The broken images seem to be broken because they are all gathered from their respective sites, and my browser seems to be handling this great amount of connections/lookups badly. I advice you to cache the images locally in your site (their location are set in a config file).

In edit mode the editor simply selects what implementations to include, so by adding the QuickLink dynamic content several times to a page with different icons enabled the layout can be controlled a bit more. What type of html element the icons are rendered in is also configurable (standard is ul/li).

profileinfo_edit

Extensions

All the icons in the first portion of the image above are generated by a special implementation of the IQuickLink/IQuickLinkFactory interfaces that is purely configuration driven. To add another bookmarking service, provided it follows the same pattern (a posting url with the page url and title in the query string) you merely have to add a new section in the QuickLink.config file.

The more advanced implementation last in the example is included mostly for demonstration how to implement the interfaces, the default configuration driven setup is probably enough for many purposes.

Download

Both compiled dlls and source are available here. N.B. the QuickLink dynamic content uses the DynamicContentBase also available from the same location.

Feb 06, 2009

Comments

error Please login to comment.
Latest blogs
Composition Over Inheritance: Why Your Content Contract Is Not a Base Class

Inside the structural conformance pattern in SaaS CMS — from server-side inheritance to pipeline governance. A contract in Optimizely SaaS CMS is...

Vipin Banka | Sep 19, 2026

Optimizely Opti ID Integration: Why the API Key Was Missing from the DXP Management Portal

While working on an Optimizely CMS 12 Opti ID integration recently, we ran into an issue that initially appeared to be related to SSO authenticatio...

Madhu | Sep 18, 2026 |

Extending a Contract: What You Can Override

Contracts share fields across content types — but not every field setting can be overridden. Push the same contract onto several components, and CM...

Chirag Khanna | Sep 18, 2026 |

Building a Blazor Server UI Inside the Optimizely CMS 13 Admin Shell

What I learned shipping a Blazor Server UI inside Optimizely CMS 13 — Razor components in a NuGet package, the Blazor hub next to MapContent(),...

Stanisław Szołkowski | Sep 17, 2026 |