12 votes

Conveyor

** Version 2.1 is released to fix the compatibiliy issue with Umbraco 7.2.2 and onwards ** 

What is Conveyor?

Conveyor allows editors and developers to transfer content (media and content) of a website from one environment to another.  

Version 2 is compatible with Umbraco 7 and Version 1.0 is compatible with Umbraco 6 which can be found in archive tab. 

You can watch the uHangout http://uhangout.co.uk/video/-K1Y5D2ezMc and see how you can transfer content from Umbraco 6 to Umbraco 7 with Conveyor. 

or 

Watch Conveyor in 3 minutes here: https://youtu.be/d9uSGLCKsH0

What are the use case scenario?

  • Developers, especially front-ends, want to work with live content so content can be transferred from live to local machine.
  • A new section is developed for an existing site which is not on the live site yet and client would like to preview / approve all the content before it goes live. Therefore content can be entered in UAT server and then can be transferred to live.

How does it work?

The package creates a zip file based on the chosen content which then can be imported to another environment.

Conveyor looks at a page and export all the associated pages / media with it. 

Imagine you would like to export a news article that has several categories selected by MNTP, an image inside RTE and a header image which is stored in media section under images/news images folder. 

When the above page is selected to be exported Conveyor automatically exports the header image, the image that is used inside RTE and all the categories that are associated with this page. It means when the news article page is imported to new environment the page is built with all the associated data. Magic isn't it!

What are the assumptions?

  1. All environments must have the same document types, data types, and templates. Remember the package is only responsible for content and not anything else. 
  2. Node dependency is only one level in content, however there is no limit for media files which means the package exports / imports all the levels and dependencies for media files.

How does it work behind the scene?

Basically Data types can be classified into two categories:  

  1. Special data types: the data types that store a reference or id of a page or media.
    ex: Multi Node Tree Picker (MNTP), media picker, content picker
  2. Other data types: the data types that store text ex: text string, true/false

"Other Data Types" will work out of the box and no conversion is needed for these types.

However "Special Data Types" as its names implies are special and they are storing an Id of another page or media file. When the value of these data types are transferred to new environment (website/server) they need to be updated with the new Id therefore a conversion is needed for these types.

This package does the conversion for the following built-in special data types:

  1. MNTP
  2. Content Picker
  3. Media Picker
  4. Drop Down List
  5. Rich Text Editor 
You can also download the dlls to support for following community data types. Drop the dll into bin folder or add a reference to dll if you are using a website.Then uncomment the relevant line ContentConveyor.Config file for each data type in "Special Data Types" section.
  1. Digibiz advanced media picker (v6 only)
  2. uComponents - Url Picker (v6 only)
  3. embeded content (v6 only)

The conversion for above data types can be swapped with custom data type convertor in ContentConveyor.config file. You can create your own class which inherits from BaseContentManagement and implements IDataTypeConverter which has two methods, export and import.

In the Export method you need to convert the page/media Id into Guid and in the Import method the Guid should be converted back to Id. 

If you have a custom data type which stores a reference to a page or a media file and you needed a conversion and it can be added to ContentConveyor.config file. You can also check out the source code for all the above data types to see how they are implemented.

Is Conveyor open-source?

Yes, it is. The source code can be found on my GitHub account. www.github.com/AliSheikhTaheri/Conveyor

Screenshots

Package owner

Ali Sheikh Taheri

Ali Sheikh Taheri

Ali has 1648 karma points

Package Compatibility

This package is compatible with the following versions as reported by community members who have downloaded this package:
Untested or doesn't work on Umbraco Cloud
Version 8.18.x (untested)

You must login before you can report on package compatibility.

Previously reported to work on versions:

Package Information

  • Package owner: Ali Sheikh Taheri
  • Created: 04/02/2015
  • Current version 2.1
  • .NET version 4.0
  • License MIT
  • Downloads on Our: 3K

External resources