Import from other systems

Topics: General
Dec 13, 2010 at 12:13 PM
Edited Dec 13, 2010 at 12:14 PM

Hi there! Is it possible to batchimport pages from other systems e.g. Wordpress either directly or by exporting and preparing the content in MySQL or MSSQL? BR Krezz 

Coordinator
Dec 13, 2010 at 8:39 PM
Edited Dec 13, 2010 at 8:43 PM

@Keezz I haven't seen any tools yet that migrate from major systems like Wordpress, but we do have some experience with creating this kind of tool - some time ago we created a tool that migrates pages and media files from a CMS we did many years before Composite C1.

I can briefly describe the strategy in case you would consider creating such a tool: The migration tool uses "C1 Packages" as a vehicle - in short in reads data from the old CMS, cleans up messy HTML to XHTML documents which C1 consume, recalculates id's that fit with C1's GUID ID's, fixes internal links and then stores data and media files in a way that fit with a C1 Package (XML files and binary files packaged in a ZIP). As I remember it's need some pre-configuration with template mappings (ID mappings between the old and new system), so the target system needs to have the required templates in place.

The nice thing about the package approach is that your target Composite C1 site need not use a specific data store (you can run on XML or SQL) and the old/new CMS's do not need to be connected while migrating.

To get an idea of what a C1 Package with pages and media files look like, try installing the Package Creator and export a package with pages and media files.

Dec 13, 2010 at 9:07 PM

i guess it should be possible to fire up a C1 installation, create a single layout with a single page containing a single usercontrol. Inside this usercontrol you add the logic for

  • Connecting to the legacy system
  • Reading data from the legacy system
  • Create a dataconnection to the C1 datasystem
  • Run through the necessay loops to create and import
    • Layouts
    • Pages
    • Media

Here is an article to create data in C1 http://docs.composite.net/C1/Data/Adding-pages-with-Csharp.aspx. Basically the method is the same for pages, layouts, media etc, just make sure to use the right interfaces and fill the correct values. Too bad the API hasn't been well documented, but otherwise you should be able to find the necessary interfaces here http://api.composite.net/.

IMO a task like this is very hard to standardize and will always require some tweaking, even if you most of the boilerplate code ready. The main points are

  • You have to use the Dataconnection API provided by C1
  • You need to pre-create the necessary layouts, page types and metadata