We are moving our website to Drupal, but it isn’t easy!

As I work my way through the whole process, I would like some help. It would be great if I could have small number of Drupal users – who understand Drupal’s inner working well – to whom I can call on with specific questions. I don’t want to communicate with many users, as this would become tedious and slow.

In return, I would like to offer to the Drupal community detailed information, by way of example, of what I have done from start to finish, probably as part of the section on Migrating to Drupal. I will provide my php programs, well documented, in the hope that they can be modified as needed by others encountering similar challenges. I would like, when I am finished, to also add to the documentation of the Drupal database tables and fields. I hope that the volunteers who come forward will also be willing to critique my contribution. All assistance will be acknowledged.

Major problem is that we are currently using a third party’s proprietary CMS (which I won’t identify, as it isn’t relevant), for which conversion tools are not available. Being proprietary, we also cannot ascertain the database structure, and in any case, we don’t know the credentials to access the database. But we can spider the site and save the pages as straight HTML files. So the problem consists of grabbing the appropriate pieces from the spidered backup and placing these into the appropriate table files in Drupal.

The site is bilingual (English and French), so there is the issue of language control.

There are also unusual items that perhaps have to be dropped in the conversion to Drupal. For example, some simple HTML/CSS is included in some of the page headings (allowing for italics when referencing book titles, or superscripts, etc.). For now, I am throwing this formatting away, but prefer to be able to keep it.

Moving a site provides an opportunity to restructure it, and clean it up. Therefore there is a requirement to map old content to the new.

Some of these issues I have successfully tackled. Some are problematic. For example, it is unclear how the options field in table menu-links, which is defined as a blob, is used or should be filled in. Leaving this with the default value of null often resulted in runtime errors. The Drupal tables are not all documented, and the documentation that is provided is minimal.

I have developed some programs to start me on the process, and am updating and adding to these as I go. They are designed to do everything from start to finish if run in sequence. This allows me to continually update the existing site, and rerun the process with the updated information, or to recover when I do something incorrectly.

I also use this as an opportunity to catch errors in the content. Many people have contributed contents directly to the site, and they haven’t always followed the rules that we have established. For example, a colon on our French pages must always be preceded by a non-breaking space, but these are sometimes missing.

Many thanks in advance. I look forward to the challenges!

Comments

Have you read the Migrating old HTML files into Drupal article? This should give a good idea of how to approach this.

As for Drupal's database structure: it is recommended to create all your data via Drupal's API/functions. That way you can be sure of the integrity. Otherwise you'd have to know every little detail of how Drupal interfaces with the database, and I believe even expert Drupal programmers try to avoid doing that if there's any way to do it the Drupal way.

Thanks, ar-jan. I've been offline for a bi;, sorry for the delay.

I was unaware of the Migrating old HTML files into Drupal article and the code and other references found there. This should prove very helpful. I'm going through this now.

Likewise, I was unaware of Drupal's API/functions. It does sound like the safe and sure way to do this. Can you please point me to where they are? I haven't been able to locate these.

Thanks again. This is proving to be very useful indeed.

- Ed

Ed Brandon

Well I'd start with the links under Developer Guides section. For specifics of the api, see https://api.drupal.org/api/drupal. I believe the Examples can also be very useful (though I don't actually write code myself). Good luck!