Sitecore CMS and everything related RSS 2.0
 Wednesday, October 22, 2008

We’ve released a major overhaul of the poll module. Improvements:

  • Sitecore 6 support, including using Page Editor to modify existing polls
  • New polls can be added using Sitecore 6 Page Editor
  • Staging support
  • AJAX voting
  • Fully automated installation
  • Simplified architecture: the module no longer uses an additional database, which also allowed us to completely remove the settings application
  • Better looks
  • Easier customization: we’re using more xhtml and css, and less tables. Instead of c# webcontrol code, we’re using an ascx sublayout that is much easier to tweak without having to compile the code
  • Refactored code and reviewed design

The Poll module is part of Sitecore shared source program, and it stays that way. However we’ve dedicated our QA and development to reshape the module and release a clean and well tested Sitecore 6 version. We used the same open svn/trac server for entire development process, and you can see change history.

From now on, the module continues its life as a shared source component, meaning that you can (and very welcome to) contribute. I was doing product management type of work on the project, while Michael Baranov gets all the praise for beautifying the code.

My favorite feature is the ability to add new polls directly through the Sitecore 6 Page Editor.

1. Click “Insert Poll”

image

2. Setup poll using a pop-up wizard
image

3. Select a placeholder

image

4. Done.

You can also edit existing polls from the Page Editor:

image

Content layout is changed, so that you’re no longer required to store all polls in a single location. This setup beautifully supports multisite solutions.

image

And bugs, lots of bugs were fixed:

image

 

Hope you like the update. Downloads, documentation and source code are all available at http://trac.sitecore.net/Poll.

Wednesday, October 22, 2008 5:13:12 PM (FLE Standard Time, UTC+02:00)  #    Comments [2] -
Sitecore | Open Source
 Wednesday, August 20, 2008

Have you seen or used the Sitecore Poll module? Got any complaints, suggestions or feature requests? Mail ar at sitecore dot net or leave them here in comments. The feedback will be put to good use. Go.

Wednesday, August 20, 2008 10:56:18 AM (FLE Standard Time, UTC+02:00)  #    Comments [3] -
Sitecore | Open Source
 Thursday, June 12, 2008

After the Carousel, Slider and Visual list field types, I've decided to take a pause to work on the  quality and make an actual release. This includes all of the housekeeping well-behaved Sitecore fields should do, bugfixes (thanks for the feedback, really) and documentation.

What's changed:

  • Carousel and Visual list can be used outside of the media library. They will default to using the content item icon, but it's also possible (and expected) to supply an image field name to take the image from. Same works for item titles. See the documentation for configuration examples
  • All fields now properly indicate their changed state to Sitecore, which results in timely "Do you want to save the item" prompts
  • All fields also support readonly state - if the item is protected, or the user does not have write permissions, the field will be rendered in readonly state ("grayed out")
  • Carousel and Visual list fields support link checking
  • Production and Items Only (development) packages and package projects are included.

It's time to call it a Beta - see the Field Types trac site for downloads.

The goal is to apply more polish and make a quality release when the time Crestone ships, so that the fields can be used right away.

Some tickets are already piling up for the next release. If you have ideas for new field types - send them in, or contribute.

Thursday, June 12, 2008 12:51:46 AM (FLE Standard Time, UTC+02:00)  #    Comments [0] -
Sitecore | Crestone | Open Source
 Sunday, May 25, 2008

RSS module trunk is shaped up to support Crestone. The module no longer requires web.config to be modified after the installation, packages are updated, and the project structure is changed to match rest of the modules more closely.

After some surface testing the module appears to work fine on Crestone, the updated Crestone beta should do.

Trunk development has moved to Crestone;  Visual Studio 2008 is required to work with the project. Use Sitecore5 branch for the stable Sitecore 5.3.x version.

From the feedback, accumulated during the module lifetime, these are the goals I see for the next version:

  • Update the module to work with Crestone (almost there, needs more testing)
  • Simplify feed creation, configuration and troubleshooting - ease of use.
  • Add more extensibility points, to allow partners to better fit the module to their needs without modifying the module itself.

What do you think?

As always, packages, source code and updates are available at the trac site.

Sunday, May 25, 2008 8:11:00 PM (FLE Standard Time, UTC+02:00)  #    Comments [0] -
Sitecore | Crestone | Open Source
 Saturday, May 24, 2008

Another field type is up and running: introducing Visual List, allowing to maintain a list of images (or any items, in future) in a very simple and visual way. The field allows editors to select any number of images from a specified source, and supports drag-and-drop reordering.

Good usage scenarios for this fields include maintaining a list of banners to rotate on the page, a list of product images, etc. An advantage over using a set of subitems to achieve the same functionality is editor experience: no not having to switch items saves a lot of editing time, and its easy to see all selected items at once.

visuallist

The Outercore fieldtypes project, which now includes Carousel, Slider and Visuallist fields, has moved to Sitecore shared source repository, so no more download links in the blog.

Use the project trac site to view or update the documentation, download the source, file tickets or watch the updates. I'll continue to post update summaries in the blog.

Bug reports, new field type ideas are welcome.

Contributors are most welcome, of course, mail me to become one.

Saturday, May 24, 2008 4:35:58 PM (FLE Standard Time, UTC+02:00)  #    Comments [0] -
Sitecore | Crestone | Open Source
 Wednesday, May 14, 2008

Continuing with additional field types for Sitecore: introducing Slider.

Slider is a fairly simple control, that currently only supports numeric values. To set up the field, you need to define minimum and maximum values, and an optional list of allowed values.

Here is what you get with Source= Min=0&Max=200&Values=1, 5, 10, 15, 25, 35, 100, 200

image


(if you're reading this through rss reader, you might not see the flash movie above)
 
The field shares the same project with the Carousel, named Outercore Fieldtypes. It also requires Crestone and will not run on the beta build. I'm still putting the updated package online, which also includes Carousel fixes, just in case.
 
Download package (includes source code). Use FieldTypes Trac site for downloads.
Wednesday, May 14, 2008 12:38:46 AM (FLE Standard Time, UTC+02:00)  #    Comments [3] -
Sitecore | Open Source
 Tuesday, May 13, 2008

I've pushed RSS module updates to the shared source repository. These are some small tweaks that were made after the latest release (i.e. what is available on the SDN). From commit logs:

  • Scheduled command to update RSS feeds in database
  • Ability to use $(dataFolder) macro when defining disk location for xml feed
  • Fixed bug with dates not being converted to UTC, which is required for ToString("r") to work properly
  • Added 'Date Field' field - possibility to specify which field should be used to get the publication date of the item

Future plans include conversion to Crestone and Visual Studio 2008, and some Crestone-specific tweaks.

Tuesday, May 13, 2008 10:46:13 PM (FLE Standard Time, UTC+02:00)  #    Comments [0] -
Sitecore | Open Source
 Monday, May 12, 2008

A little weekend project to add more field types to Sitecore's arsenal: introducing Carousel.

What you hopefully see below (once the flash loads) is a "Carousel" field type, with a source set to a media library folder. User can select one of the thumbnails, or, if there are more items than can be fit in the available space, scroll to see more . The field value is an ID of the selected item, as you would expect.

 
Possible enhancements include multi-selection support, ability to work with regular (non-media) content items, better customization (how to get image and text) - the feedback is welcome.
 
The field requires Crestone and will hopefully run on the beta build. It's in a rough alpha shape, only tested in IE7, but hey, the CMS is in beta too. Ideally I'd like to move it to our shared source repository once it matures a little.

Download package (includes source code). Use FieldTypes Trac site for downloads.
Monday, May 12, 2008 1:05:55 AM (FLE Standard Time, UTC+02:00)  #    Comments [3] -
Sitecore | Open Source
 Thursday, January 12, 2006

I'm not sure whether it's a great example of Sitecore extensibilty or of things you shouldn't do, but I though I'd share it anyway :)

TaskbarSections.png

This little snippet adds shortcut to all content sections (and a little unsupported yet indispensable dbbrowser) to the Sitecore task bar. What is good about is, is that its very easy to install: download and unpack to your /sitecore/shell/override, its just two xml layouts with embedded code. The dark side is that you have to put them in override folder to replace the standard Sitecore start bar. So if the start bar changes in future builds - yours won't.

Fortunatelly, uninstalling is just as easy: remove the Startbar.xml and StartbarSections.xml files and thats it. Standard disclaimers apply: if your PC turns into evil alien monster and starts dissecting humans - you have been warned. Although it might be a good idea to keep your production server clean, I (humbly) find this control to be very useful in development environment.

Once again - download link (3kb).

Thursday, January 12, 2006 10:07:46 AM (FLE Standard Time, UTC+02:00)  #    Comments [5] -
Sitecore | Open Source | Sheer UI
 Wednesday, December 28, 2005
I've mentioned earlier in Sitecore yahoo group the possibility of creating a replacement of multi list field by replacing left select box with a tree view. The control now is available at SDN5 in shared source form and I encourage everyone to take a look at it, as I believe the field to be very useful in situations when you have large number of items to choose from (Multi list with 100 items doesn't look pretty).

Tree list field

Wednesday, December 28, 2005 11:54:56 AM (FLE Standard Time, UTC+02:00)  #    Comments [2] -
Sitecore | Open Source | Sheer UI
 Friday, December 02, 2005

We have an interesting shared source release that I'd like to point your attention to. Xml data provider is a custom data provider that allows you to import any external data as long as you provide a transformation to Sitecore item xml format. So why is this so useful?

The provider comes with an example of importing RSS/Atom feed data. All you need to do is to create a new feed definition item, point it to valid feed and set settings like refresh rate. If the feed has any entries they will be shown as children of your item, being perfectly valid (although immutable) Sitecore items.

Atom feed entries as Sitecore items

 

While we had some RSS reader components in past, this one is totally different: your presentation doesn't have to handle feed data in some different way - you can reuse your renderings and your skills, setting up rss feeds in no time.

However its important to see that RSS aggregation is merely an example of what can be done. To import any other kind of external data, all you have to do is to provide a xsl tranformation and a simple class to register it. Provider understands a fairly simple xml format that is similar to Sitecore item xml: you can find an example in provider documentation.

And with source code available to download, its easily extendable and a great example of writing your own data provider.

Friday, December 02, 2005 10:32:58 AM (FLE Standard Time, UTC+02:00)  #    Comments [2] -
Sitecore | Open Source
 Tuesday, November 08, 2005
Shared source library got reinforced with Sitecore RSS portlets. There are basically two kinds of portlets - "Feed subscription manager" is used to subscribe/modify/unsubscribe, and feed reader portlets retrieve and render feeds. When you add a new feed, subscription manager adds a new portlet in portal and then users can add it to portal using the 'Add Content' button.

rss_portlets.png
RSS portlets

Portlets are installed in Sitecore Today portal by default, but you can move them to any portal of your choice.
Please note that its more of a demo, so there's no caching or uniform feed model. You can subscribe to atom feeds, but you will need to create and use different transformation for them.
Tuesday, November 08, 2005 4:35:40 PM (FLE Standard Time, UTC+02:00)  #    Comments [0] -
Sitecore | Open Source | Sheer UI
 Wednesday, October 19, 2005

Sitecore Open Source Library was recently reinforced by three portlets by Yan Sklyarenko. They differ in complexety level, but all three are must-see example for anyone developing Sitecore portlets. All three portlets are 100% practical and can benefit almost any Sitecore solution.

The simplest of the three porlets - Logged In Users, shows a list of currenly logged in users, allowing to kick someone if you have run out of user licenses. (Note that the kick won't work if you still have free licenses). The list of logged in users is provided by the Users property of Sitecore.Web.Authentication.DomainAccessGuard class, and the rest of the code handles the UI and kick logic.

Logged in Users portlet

Unapproved Items portlet lets any user see which of his items got stuck unapproved higher up the workflow. This allows editors to track the state of their articles and see how far did they manage to get in the reviewing process. The portlet uses the Sitecore workflow API: IWorkflowProvider, IWorkflow and WorkflowState to get the list of items created by the particular users which are not yet in the final state of the workflow.


Unapproved Items portlet

The My Locked Items portlet is the most complex one. The logic itself is fairly simple: the portlet shows the list of all items checked out by the current user, and allows user to either selectively check-in one item or check in all. Sitecore.Data.Locking.ItemLocking class is used to get the current locking status of an item, particulary its HasLock() method. However what makes it complicated is that you need to iterate through all items in database to get the list of items locked by a user, and that is not a wise choise to do each time someone opens the portal. To avoid the performance hit the portlet subsribes to the check-in and check-out events and maintains its own checked out items cache, so that it only needs to iterate through all the items if the cache is not populated yet.

I'm sure that the portlets not only can serve as the example for the developer, but also add functionality useful in most of the Sitecore solutions. I think they integrate in the Overview portal by default, but you can easily change that since the portals are defined in the 'core' database by the content items - so you will only need to copy the porlet definition item from one portal to another.

Related article: Understanding Workflows.
Wednesday, October 19, 2005 10:24:01 PM (FLE Standard Time, UTC+02:00)  #    Comments [0] -
Sitecore | Open Source
 Thursday, October 13, 2005

One of the 'neat' tricks in Sitecore RSS module is a fast way of getting all items based on the certain template.

RSS module supports different kind of feeds, and some of them (static feeds) are only refreshed on publish event to gain performance. For simplicity sake the logic is pretty straight-forward: when the publish:end event is fired, get all the feed items in the publish target database and rebuild rss feeds.

Iterating through the entire database is very expensive operation though, even if it is only performed on each publish. The most simple, but restraining solution is to only allow placing feeds under some specific folder, like 'RSS feed'. Performance is ok, but the user cannot place the feed items whererever he likes.

One way to speed up the search while still allowing user to place items anywhere in the database would be using Sitecore query: //*[@@templateid='{11111111-1111-1111-111111111111}']. It will still take a few seconds on a relatively empty database in 5.0.7.3 because its not actually that empty anyway.

However in this particular case, we can resort to the Link database. Link database is used by Sitecore to resolve all the linking issues - what referers and what references does the item have. And if an item is based on a template, it also counts as a reference from the item to the template. The solution then is very simple: get all the referers for the rss feed template item and then sort them to only include specific items. This is how it's done in RSS module:

private static Item[] GetFeedsInDatabase(Database database, Language language)
{
   TemplateItem feedTemplate = database.Templates[Constants.FeedTemplateID];
   if (feedTemplate == null)
   {
      return null;
   }

   // Get all items refering to the feed template
   ItemLink[] links = Globals.LinkDatabase.GetReferers(feedTemplate.InnerItem);
   if (links == null)
   {
      return null;
   }

   ArrayList result = new ArrayList(links.Length);
   // and filter the referers - we dont need to include masters
   foreach(ItemLink link in links)
   {
      if (link.SourceDatabaseName == database.Name)
      {
         Item item = database.Items[link.SourceItemID, language];
         if ((item != null) && (IsMaster(item) == false))
         {
            result.Add(item);
         }
      }
   }

   return (Item[])result.ToArray(typeof(Item));
}

I regret that It wasn't me who came up with the idea itself (kudos to Dmitry Kostenko). I can imagine that it can still take some time to complete on fairly large databases - I haven't done any real big scale tests, but it works a lot faster than query in my environment and it is possible to place 'articles' rss feed into the articles content tree where it belongs, intead of the global rss feeds folder.

And since the module is open source, it will take 5 minutes to rewrite it to only look inside the 'RSS feeds' folder instead of the whole database or 15 minutes to make that optional.

Thursday, October 13, 2005 12:15:54 PM (FLE Standard Time, UTC+02:00)  #    Comments [4] -
Sitecore | Open Source
 Wednesday, October 12, 2005

The Open Source library quietly spins off in the shadows of 5.1 beta. The main purpose it to provide Sitecore developers with a number of practical examples, showing how to develop with Sitecore, the best practices and cool tricks.

Another very important goal of the open source library is to help building a Sitecore developer community and it means that feedback and user contributions are most welcome! The current library structure will improve as the library grows bigger, so that it will be easier to stay updated, provide feedback and contribute to the projects.

At the moment there are Sitecore web controls library, part of which was previously available in the Articles section, and a newly released Sitecore RSS Module. It grows quickly though - a number of portlets showing the logged in users, items that are checked out and items in specific workflow state are to be available in the nearest future, again, with full source code.

Sitecore RSS module allows you to easily syndicate your content providing RSS feeds to end users. All you need to do is install the RSS module and create one or more RSS feeds syndicating the specific content branch, single site or the whole Sitecore solution and then provide users with a feed link.



Then a user may choose to subscribe to the feed of one’s interest (one may only be interested in new downloads or new articles on xaml technology) and have all of the updates delivered to one’s PC automatically. It is really simple and convenient!



Sitecore RSS Module supports different kinds of feeds, like the ones that are refreshed on each Sitecore publishing, thus saving server resources, or the dynamic feeds which are generated upon surfer’s request and support item-specific security.

It is also possible to turn any content item into RSS feed so that the users are completely free in their choice of subscription, whether it’s the whole articles section, a specific content branch or even a single article.

At the moment there is no standard way to provide feedback, so if have any comments on the RSS module you can use yahoo groups or mail me directly.
Wednesday, October 12, 2005 6:33:55 PM (FLE Standard Time, UTC+02:00)  #    Comments [2] -
Sitecore | Open Source
Archive
<November 2008>
SunMonTueWedThuFriSat
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456
Blogroll
 Alex de Groot
Few words about SiteCore from Holland
 Alexander Shyba
Sitecore Support
 Anders Dreyer
Anders Dreyer on Sitecore Development
 Jakob Christensen
Sitecore Core Development
 Lars Fløe Nielsen
Lars's ramblings about development and business processes
 Ole Thrane
Sitecore API
 Runi Thomsen
Runi Thomsen Sitecore Toughts
 The Sitecore Experience
The Sitecore Experience
About the author/Disclaimer

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2008
Alexey Rusakov
Sign In
Statistics
Total Posts: 199
This Year: 49
This Month: 3
This Week: 0
Comments: 0
Themes
Pick a theme:
All Content © 2008, Alexey Rusakov
DasBlog theme 'Business' created by Christoph De Baene (delarou)