10 March 2011

Synkron to Sitecore Migration -Module

When my team gets a new Sitecore project often we need to deal with some data migration and quite often it is some other CMS that we need to migrate to Sitecore.
We have migrated quite a few sites from Synkron to Sitecore and slowly we built a small but quite powerful migration tool for it instead of getting headaches over the versions and data schemas on every migration.

The Synkron conversion is made as a native Sitecore Application. All operations are Sitecore Jobs, so during the import you can still use Sitecore ;) without any problem.

Synkron to Sitecore App. OK, it is not a prettiest app in Sitecore but it gets job done. :)

User interface

1. Import media
Copies the Files from a location under Sitecore upload folder where a custom UploadWatcher  creates the structure into media library

2. Import metadata 
This is usually only used once to import the metadata tags from Synkron.

3. Import items
We have 2 .XML files that contains rules of import like Synkron item "x" becomes an item from "y" Sitecore template and one of configurations which says from which Synkron item to start the import, what is the Sitecore parent, default paths... etc...

4. Delete what was imported 
Only deletes regular items, not media items , and only under the parent that it's configured into config.xml

5. Stop Importing
Stops the importing of the items.

A.  Progress bar
Tells current progress of the import.

B.  Number of processed item
Text box that shows how many items are imported in real time.




More technical info

Data is read on direct connection to the Synkron database from where with Stored Procedure, we are reading information and process it at different levels. Naturally we use Sitecore's API for every operation that concerns Sitecore part. (creating items.... changing templates etc.)

Media Library and Links
When the import is running all the links that contains Synkron media (files, images) are replaced with the corresponding Sitecore media links "/~/media/.. ashx".
We also keep the exact hierarchy from Synkron,  this way we minimize editor re-training.

Modules
Synkron CMS like Sitecore CMS has many modules but we've only import SearchPlus as I have not seen much use to import more of them (yet). However, if modules is needed it just requires few lines of code to SP (all modules I have seen are pretty straight forward).

SEO (301 redirects)
When importing from Synkron, a table of mapping is filled with the old paths from Synkron like "swID.asp" and the new location like "/Home/myitem.aspx".
This table is used for redirecting the old link to the Sitecore links (if you click a link like "swID.asp" .. we'll know that you must be redirected to "/Home/myitem.aspx" ).

Of course migration is always something that requires some custom configuration and we’ve learned new thing about every migration. But now we can do that effectively with XML configuration and sometimes some changes to SP's in case there are some strange custom stuff in Synkron data.

29 November 2010

Announcing: 23Video Module for Sitecore

We've created the Sitecore module for creating seamless integration with 23Video.com. Uploading, managing and sharing videos in Sitecore using 23Video is simple and easy as 1-2-3.

Introduction
While Sitecore's Media Library is pretty good at storing lot of things, video files have their own needs once the website is starting to have plenty of them. The module allows you to continue working with familiar Sitecore Media Library as if the video would be stored on the local Media Library but we are sending in background the actual video file to 23video.com and stream it from there. This will ease load on your CMS servers and gives you dedicated streaming servers for videos from 23Video.com while whole video management is still been done through Sitecore Media Library.

If you are familiar with 23Video you may have noticed that 23 is a lot more than just a streaming server but since I, as a CMS Consultant, like to keep and maintain my data on Sitecore in order to better handle training, asset management, as well as getting full power of Sitecore OMS on analytics, I decided to use 23Video just as regular CDN.

The 23Video -Module provides several advantages over a standard Medial Library, such as:
  • External Storage for Video files
  • Fast Dedicated Streaming servers with CDN capabilities
  • Store in any common format and stream in FLV, MOV, AVI or M4V
  • Smaller Media Library / Disk usage
But the best part on this module is that you can just plugin to Sitecore and CMS Editors will not have to learn new tools, in fact in Editorial environment they probably won't even notice that the videos are not streamed from the Media Library.

Video reference pointing to 23Video in Sitecore Media Library


Technical details
Sitecore communicates with 23Video API; we upload and delete video through API calls. The calls are hooked to ItemEventHandler.

When Editor wants to add video to the website s/he goes to Sitecore Media Library and uploads video file normally as it would be a media item internally.
Once video is uploaded successfully we send the actual video file to 23Video.com from the CMS. After successful upload 23Video.com returns us URL for uploaded video in 23Video.com. We, then, delete video from CMS Media Library and replace it with URL reference to 23video.com.
Editor can then continue editing, publishing and adding meta data to the media item in Sitecore.
The module is designed so it can be installed on existing solution without having a risk to break anything.
I have not created migration script (sending existing video files from media library) but that is easy to extend if needed.

Installation
- One package that adds text field to file -template for 23Video ID.
- 3 DLL's: DotNetOpenAuth.dll, 23API.dll and Addition.TwentyThreeVideo.dll
- ItemEventHandler, Hooks and appSettings keys for 23video API calls on Web.Config.

...and yes, it is HTML5 Video ready.

Pricing
23Video service comes with flat monthly price (at the time of writing this $675 per month) check out the price on their website.
For Sitecore module price,  please drop me a line at jp at additionconsulting.com in case you are interested.

8 February 2010

28 November 2009

Customize Sitecore Page Edit buttons

This is mostly for my own reference but I decide it to post here since this blog has been quiet for 2 years.

Here you find the page edit buttons:
Core: /sitecore/system/setttings/html editor profiles/rich text default_old/webeditButtons/ (weird that they use default_old but thats what they do - and that took me a while to figure out )

duplicate an item there and you have a new button.

In the datasection you find 3 options:
Icon - self explanatory
Tooltip - selfexplatory
Click: A call to a javascript function, f.eks.:
Striketrough: javascript:Sitecore.WebEdit.execute("strikeThrough", true, true);
Italic: javascript:Sitecore.WebEdit.execute("Italic", true, true);

And so on. All the execute commands listed here: https://developer.mozilla.org/en/Rich-Text_Editing_in_Mozilla (I only tested it with strikeThrough, but it should work)

Regarding calling sitecore functionality. There is only created 2 functions in the js file: (website/shell/applications/weEdit.js)

Insert image:
javascript:Sitecore.WebEdit.insertImage($JavascriptParameters)

Insert Link:
javascript:Sitecore.WebEdit.insertLink($JavascriptParameters)

So if we wan't to make something more that that we would have to write new functions for that.

Thats it. :-)

29 October 2009

Modifying page editor buttons

What do you do if you wan't to add a button to the page editor default toolbar? I wanted to find out and here is what I found.

Find the page edit buttons:
Core: /sitecore/system/setttings/html editor profiles/rich text default_old/webeditButtons/ (weird that they use default_old but thats what they do - and that took me a while to figure out)

Duplicate an item there and you have a new button. In the datasection on the new item you find 3 options:

Icon - self explanatory
Tooltip - selfexplatory
Click: A call to a javascript function, f.ex.:

Striketrough: javascript:Sitecore.WebEdit.execute("strikeThrough", true, true);
Italic: javascript:Sitecore.WebEdit.execute("Italic", true, true);

Etc. All the standard javascript execute commands should work: (I found a list here from a google search: https://developer.mozilla.org/en/Rich-Text_Editing_in_Mozilla)

Here is my result adding a strikeThough button:

Settings:
Click field: "javascript:Sitecore.WebEdit.execute("strikeThrough", true, true);"
Icon field: found an strike through icon in the standard sitecore image library.
Tooltip field: "Strike through"


The javascript-file with functions are found here : website/shell/applications/webEdit.js



Regarding calling sitecore functionality. There is only created 2 functions in the js file:

Insert image:
javascript:Sitecore.WebEdit.insertImage($JavascriptParameters)

Insert Link:
javascript:Sitecore.WebEdit.insertLink($JavascriptParameters)

So if you wan't to make something more that that we would have to write new functions for that.

PS: I did this on Sitecore.NET 6.0.0 (rev. 081022) (the nicam demo site)

17 December 2007

Get collection of Sitecore Weblogs in Netvibes

I have been using Netvibes as my starting page. I like that more than iGoogle. Here is my collection of Sitecore RSS feeds. Collection contains about +25 blogs, Sitecore corporate news and Sitecore Developer Network articles and forum posts in RSS. There is also Google Custom Search for Sitecore on Sitecore related blogs.



If you have a Sitecore Blog or another useful resource that is not listed here. Please let me know



Click here to preview:Add to Netvibes