Not a developer? Go to MovableType.com

Plugin and Theme Directory

MacLeod

By Byrne Reese
Posted November 10, 2010, in Utilities.

Details

This plugin facilitates the process of blog consolidation in which one blog's content/associations are transferred entirely to another

merging of two blogs in a "winner takes all" fashion in which a target blog literally absorbs content and author associations/permissions from another. This renders the source blog a mostly empty, useless shell.

The main reason for developing this tool was to handle blog consolidation and subsequent retiring of the absorbed blog as a separate entity. For that reason, this tool was developed to change as little as possible in the underlying data, intelligently update the blog_ids of child classes instead of creating a new record via a clone.

Though it seems inconceivable that an explanation would be necessary, the name of the plugin is a Highlander) reference. There can be only one!

Features

  • A command-line utility, merge-blogs, which facilitates the transfer of nearly all blog content and related metadata from one blog to another.

  • A dryrun mode allowing you to run the process without actually modifying any data

  • A set of detailed confirmation prompts that tell you exactly what will happen during execution and give you the ability to abort and a force mode to skip the interactive confirmations.

  • The option (via the perms flag) to transfer user/group associations (i.e. permissions/roles) from the source blog to the target blog, creating in the target blog the logical union of both blog's users and assigned roles.

  • The logging of all entry transfers with old and new permalink URLs which can be easily extracted for the purposes of setting up webserver redirects

  • Designed to search for, discover and intelligently facilitate the transfer of data from arbitrary object types and classes (e.g. data from third-party plugins).

  • Supports merging of categories and their placement records as directed by a user-customized CSV file. This functionality requires the Text::CSV perl module and is executed under a different run mode as well as a third which does nothing but verify the CSV file. Unfortunately, the documentation here on GitHub is lacking as this was designed to the commissioning client's spec. If you need guidance before I complete it, drop me a line.

  • Brief and lengthy documentation of the command line utility via the help and man flags

Installation

To install this plugin follow the instructions found here:

http://tinyurl.com/easy-plugin-install

Usage

There is no web interface for the plugin as everything is currently done entirely though its command-line utility at plugins/MacLeod/tools/merge-blogs. Everything you need to know can be discovered in the utility's man page:

cd $MT_HOME
./plugins/MacLeod/tools/merge-blogs --man

Pre-requisites

The following plugins/utilities are required for proper operation:

  • Log4MT - Used for general purpose logging and recording of entry permalink redirects
  • CLITool - Underlying framework for all of Endevver's command-line interface (CLI) tools

Limitations

You can see a full list of the data types not handled by the system in the config.yaml. In general, the only blog-specific content not currently handled is:

  • Templates - MT::Template and MT::TemplateMap records. This was omitted because we questioned the need for it. The new blog already has templates and we believe that most users would not want to move all of the templates en masse into the target blog. We may develop a method to easily migrate selected templates upon users' requests.
  • Session, FileInfo and TheSchwartz records - These are temporal and regenerated automatically as needed

Help, Bugs and Feature Requests

If you are having problems installing or using the plugin, please check out our general knowledge base and help ticket system at help.endevver.com.

Future Plans

This plugin was quickly put together to satisfy a single use case for a client. In the future, it will certainly be expanded (and properly named) to facilitate mobility of individual pieces of content, all objects from individual object classes (e.g. templates, associations, etc) and metadata between blogs.

License

GPL


Back

8 Comments

Tadik

Tadik on April 26, 2016, 8:56 a.m. Reply

Really good job! This plugin is really helped me! Thank you 192.168.0.1

Kamilla Kamilla

Kamilla Kamilla on August 28, 2016, 4:18 p.m. Reply

Your work is very good and I appreciate you and hopping for some more informative posts. Thank you for sharing great information to us. 192.168.o.1

Kamilla Kamilla

Kamilla Kamilla on August 28, 2016, 4:19 p.m. Reply

Your work is very good and I appreciate you and hopping for some more informative posts. Thank you for sharing great information to us. 192.168.o.1

nish gau

nish gau on September 18, 2016, 11:48 a.m. Reply

Awesome article. Helped me a lot. Keep posting such informative articles. Its really good to get more knowledge on these topics. Thanks pixelgun 3d

Kamilla Kamilla

Kamilla Kamilla on November 12, 2016, 3:38 p.m. Reply

Thanks for making such a cool post which is really very well written.will be referring a lot of friends about this.Keep blogging. wow boost

Stephanie Shadrick

Stephanie Shadrick on May 3, 2017, 3:37 p.m. Reply

The question that you have asked is not that simple and it is also not even possible to give the answer it just in a few words or lines. I will suggest you to take some expert opinion in this regard and will recommend you to get in touch with some professors of online university. http://www.openuniversitydegree.com/life-experience/

Leave a Comment

Byrne Reese

Byrne Reese was previously the Product Manager of Movable Type at Six Apart, where he had also held positions as the Manager of Platform Technology and Product Manager for TypePad. Byrne is a huge supporter of the Movable Type user and developer community. He dedicates much of his time to promoting and educating people about Movable Type as well as building the tools and plugins for Movable Type that are showcased on Majordojo. He contributes regularly to open source; and he is an advocate for open protocols and standards like Atom and OpenID.

Website: http://profile.typekey.com/byrnereese