This guideline focuses on migration from Joomla! 1.0.x to Drupal 4.7.x/5.x. Before you do migration you must understand some differences between both to make sure your migration to be successful:
Joomla! vs Drupal
- Joomla only supports one Section and one Category for each content, while you can assign Drupal contents to several Sections/Categories.
- Joomla does not support multi-site setups, so the migration must be put into a certain site if you already setup a multi-site with Drupal.
- In this guide I assume you have a forum in your Joomla site. Drupal has built-in forum discussion, so you don't need to install additional modules.
- The term
Blogin Joomla is not same as blog in Internet dictionary. 'Blog' term in Joomla is actually a teaser view of contents containing: Title, Introduction and a Read More link. So, in short, 'Blog' in Joomla terminology is not 'Weblog'! If one is asking if Joomla supports a 'Blog' by default, then the answer is yes, but with a different meaning.
- Comments on contents are not available in Joomla by default, but Drupal supports comments for all content-types by default.
Joomla vs. Drupal Terminology
There are some different terms between Joomla and Drupal. Here is a list to give you a quick understanding:
- Component = Module.
- Module = Block.
- Mambot/Plugin = Input filter.
- Menu-Horizontal = Primary Links
- Menu-Vertical = Navigation
- Dynamic Content Item = Story
- Static Content = Page
- Back-end = there is no back-end in Drupal, but modules like Administration Menu that provide a similar interface.
- SEF = Clean URLs (but some docs refer to SEF, too).
- Section = Taxonomy Vocabulary/Term
- Section Title = Taxonomy Term (master)
- Category = Taxonomy Term (child)
- Introtext = Teaser
- Maintext = Body (see explanation below)
- Pathway = Breadcrumb
Other terms are the same, such as: forum discussion, editor, search, region, comment, subject/title, preview, html tag, view, edit, advertising/banner, log in/log out, profile, avatar, access control, logs, cache, site maintenance, RSS feed, parent-child and snippets.
Migrating Joomla Content/Items
First, you must transfer all Joomla-Sections to Drupal-Categories and transfer Joomla-Categories to Drupal-Term according to their parent. After that, you can transfer Joomla content/item from jos_content table. Drupal tables for saving article are drupal.node and drupal.node_revisions!
Migrating Joomla Introtext
Introtext vs Teaser, this is very important, you must know that Drupal can automatic turn the beginning of an article into an introtext. The introtext is called a teaser in Drupal. Now, how to convert Joomla introtext to Drupal?
1. copy the Joomla Introtext to drupal.node_revisions:teaser
2. copy the Joomla Introtext+Maintext to drupal.node_revisions:body
You may confuse why step #2 including the Introtext again? Because in Drupal, there is a possibility to set Teaser different from the First Paragraph of a body. In other words, the First Paragraph of Drupal is not always become a Teaser!
If you want to edit migrated contents later on in Drupal, you should actually copy
Introtext + "<!--break-->" + Maintext
in step #2.
Migrating Joomla Forum
I assume you use Joomlaboard forum for Joomla. In Drupal, forum is built-in, then you only need enable it on administer-module then show it on certain front page section using administer-blocks. You must transfer Parent-Forum Category of Joomlaboard to Drupal-Forum Container and Child-Forum Category to Drupal-Forum Category. Again, I am using SQLyog to transfer the entire forum contents, SQLyog is very easy because its GUI.
Drupal by default has no WYSIWYG Editor, meaning you must type in HTML tags manually to format your article. Joomla has built-in TinyMCE editor. In Drupal, you can use users contributed modules such as TinyMCE Editor or FCKeditor.
Usually better to install Drupal in a folder such as domainname.com/drupal, so you can still access both website during this migrating. You better not convert the Joomla templates to Drupal Theme, but edit any existing Drupal theme to meet your requirement because Drupal supports theme engine (PHPtemplate) and separate templates such as comment.tpl.php, mean you can apply any format to the comment.
Conceptual Differences between the two
Creating Content and Menu Structure
Joomla's content is stored in a hierachy with content categorisation being heavily intertwined with its menu structure. In drupal all content is a flat Node where menus and taxonomy "sit on top" of the content. In joomla a common structure for creating with content is this:
Choose where in the Menu article should go -> Create Menu item -> Define the type of content (eg Article) -> Input Content
However in Drupal it is potentially simpler.
Create Content -> Input Content -> Change Settings including Menu placement, taxonomy, etc
However this can create a confusion to Joomla users not used to the Drupal way. If you try and create a menu item before creating the content (or Node) then the Drupal Menu administration seems comparatively basic. The most complicated aspect of Drupal Menu system is that you have to manually type the path to the content, rather then selecting this from a list. This is not complicated if you create the content first and then change its menu settings whilst editing the content. But if you create the content without assigning menus it can only be found through the administrative menu.
Similarly to categorise content you do that on the actual edit content page. It requires you to have already have set up the Taxonomy for your website. This is powerful because the sorting of your content is not always tied into the Menus but if you are used to Joomla's way of doing things then there is a Taxonomy Menu Module.