15 - Clone Module
nav_first.pngFirst: design:1
1 - Rate Module
Edited: 29 Apr 2012 00:01 by: GoVegan
Comments: 21
nav_prev.pngPrevious: design:14
14 - Consistent link grammar
Edited: 11 Nov 2009 22:00 by: Steven Heynderickx
Comments: 25
Last: design:32
32 - Parenthood Module
Edited: 11 Nov 2009 21:47 by: Steven Heynderickx
Comments: 7
Next: design:16
16 - Standard List Processing
Edited: 11 Nov 2009 15:42 by: Steven Heynderickx
Comments: 0

15 - Clone Module
Created on 24 Sep 2009 15:55
By pieterh

rating: +1+x
This is the Redirect module that redirects the browser directly to the "http://projects.wikidot.com/thread:123" page.

This is a design sketch for a more complete form of the Clone module.


Makes a copy of part of, or all of the current or a specified site. The current logged user (who invokes the clone action) becomes the owner (master administrator) of the specified site, or must be admin of the target site for a clone into an existing site.


attribute required allowed values default description
source no text string,"." current site Specifies the site to clone. "." means the current site. If the source site is private, the user must be a member of the site. The source site must be configured by its administrator as clonable.
target no text string,".","?" "?" Specifies the site to create or import into. "." means the current site. If specified, the user must be an admin of the target site. "?" means the user is prompted for a value.
category no text string,".","*" "." Specifies a list of categories to clone. "." specifies the current category (in which the Clone module is embedded). "*" means all categories.
pages no comma-delimited values no default Specifies a list of full names of pages to clone, in the form category:pagename.
button no text string "Clone this site" Specifies the text for a text link.
image no image name or URI none Specifies an image for an image link. If specified, the text attribute is ignored. The image is specified as for an [[image]] tag.


The Clone module can be inserted on a page either as a block element, or an inline element:

[[module Clone text="Clone this site!"]]


Why not [[inline Clone text="clone this site"]] now?

When the user clicks the clone link, they receive a pop-up that:

  • Asks for the name of the target site, if no target is specified.
    • If the target does not exist, the Clone module will create it.
    • If the target does exist, and if the user is an admin of that site, the Clone module will import the source site (or categories) into the existing site.
    • When importing categories, all configuration (permissions, auto-numbering) for that category is also copied.
    • When the user chooses to import to an existing target site, the Clone module further offers the option of replacing existing pages, or only importing new pages.
  • Allows the user to choose the level of detail:
    • Take a basic copy (this copies configuration, and pages)
    • Copy structure only (this copies configuration and only pages starting with an underscore)
    • Copy all content (this copies configuration, pages, and page comments)
    • Mirror site (this copies the complete site including forum and membership)
  • Allows the user to select whether the new site is public or private.

When the user has made the choice the Clone module gives the user a chance to review the operation and then confirm with an "Ok" action.

Cloning may be done asynchronously (it can be expensive) in which case the user will be shown some kind of a progress bar based on the total number of pages to copy.

When the clone operation is complete, the Clone module takes the user directly to the destination site.


On a template site, offer the user the opportunity to copy the site:

[[module Clone]]

In a default site template, offer the user several plugins:

You can extend this default template by importing pieces from other sites:
* [[inline Clone source="packages" target="." category="blog" text="Add blog"]]
* [[inline Clone source="packages" target="." category="wiki" text="Add wiki"]]
* [[inline Clone source="packages" target="." category="forum" text="Add forum"]]
* [[inline Clone source="packages" target="." category="chatter" text="Add chatter"]]

Copyright and clonability

For any site using the standard Creative Commons license, cloning is normal and desirable. One can argue that the right to clone a site is an important part of the share-alike culture and protects site members from abusive / disappearing admins.

The top nav bar could show a Clone action that makes a clone of the current site.

Logically, paying sites could disable this and so we would define that free sites are cloneable, while pro sites are not cloneable unless their MA sets them as cloneable.

Comments: 9

Add a New Comment