From FrontPage to Drupal
In late December/early January, I converted the web site for my major association client from FrontPage to Drupal. I’ve used FrontPage since Version 1, back in 1996 when Microsoft acquired FrontPage developer Vermeer Technologies Inc. When Microsoft announced earlier this year that it was discontinuing support for FrontPage, I decided that it was time to make a full conversion to web-based, open-source content management systems, or CMSs. So I’ve been experimenting with WordPress, Joomla and Drupal. Here’s what I have decided:
- WordPress is perfect for smaller sites, such as this blog. But it does not provide the depth or flexibility that we need for a full-featured association web site.
- Joomla has many outstanding features, it’s very easy to get up and running, and there is a large support community. We used it for the “members only” section of the NOHS web site for several months. Unfortunately, it does not allow the “fine grained” user accessibility control that we need.
- Drupal also has many outstanding features, but it has been harder to learn and the support community is smaller. However, two features have made it the CMS we will be using. First, Drupal allows better control over user rights. Second, authors and editors do not need to log into a separate administrative area in order to add or edit content. This is very beneficial when relying on volunteers to assist in content administration.
We will also be integrating CiviCRM, an open-source constitutent management system that includes a membership database. Hosting the membership database online will allow better integration with our online membership application, better (and more timely) reporting to our board of directors, and less dependence on an individual, stand-along database created in Access.
I’m writing this post to document the process of converting the web site. I have been laying the foundation for several weeks, so our goal is to complete the conversion in one week.
Day 1
FrontPage Extensions were uninstalled. Joomla database backup was downloaded (to import back into Drupal); this program had been used for one section of the NOHS web site. Read more about migrating from Joomla! to Drupal.
Joomla was uninstalled. An old installation of e107 (another content management system I tried) was also deleted.
Files that had been used by FrontPage (and no longer needed) were deleted in preparation for installing Drupal. Drupal program installed in the web site’s base location using the Fantastico automated installation service provided by the hosting service, Site5.com. Read more about Fantastico and Site5.com.
Additional modules to add to the functionality of Drupal were uploaded (via FTP) and installed:
- JS Tools, a collection of JavaScript tools including dynamic calendars, multiple column formatting, tabs, and more.
- Tinymce, a WYSIWYG editor.
- IMCE, an add-on to TinyMCE that makes it easier to manage and upload images.
- Scheduler, which allows articles to be published online using a schedule. For example, an article about an upcoming event is removed automatically after the scheduled date.
- PathAuto, which creates user-friendly URLs and makes it easier to lead visitors to a specific page.
- Taxonomy Menu, which creates dynamic menues based on the web sites “taxonomy.” Taxonomy is the term Drupal uses to describe sections and categories used to organize web site content.
- Event, a simple event calendar that can be displayed in calendar or list format. Two related modules were also installed: EventRepeat, although it probably will not be used extensively on this site, and Volunteer Timeslots, which may be used with some conference events.
Taxonomy terms were added. Drupal uses the term “taxonomy” for sections within the web site. “Vocabulary” means larger, more general sections; and “category” is used for categories and sub-categories within the more general sections. The NOHS is divided into two general sections: Public and Member. Categories reflect the sub-sections in the former web site.
The next step was to create visual look, also known as the theme. A model theme was uploaded (a collection of templates and CSS files), then customized to match the look and feel of NOHS publications and the old web site. This included setting colors, refining the NOHS logo, and creating a header photo.
Day 2
Drupal automatically generates basic menus using the Taxonomy Menu module. I created basic menus, then reorganized them to better match how the web site used. With the new menus, I also noted several aspects of the theme (including improving the NOHS logo graphic) that needed tweaking, which was done. I also created a favicon.ico file and uploaded that to the site.
As I prepared to begin uploading the content, I added one more module: Taxonomy Access Control. This will allow the content to be filtered by user rights; in other words, only NOHS members will be able to access control tagged as Member Resources.
At this point, the public content was input through the “Create Content” function of Drupal. The copy was “cut and pasted” from the FrontPage files on my laptop. I was able to transfer about three-quarters of the files this evening.
Day 3
CiviCRM had been installed in a test section of the NOHS web site. The files were transferred to the main site, then settings were edited to make the installation valid in the new location. Thanks to the testing and troubleshooting that I had done previously, this step went fairly quickly.
Next, I purchased a license for aMember Pro and the Drupal plugin, downloaded and extracted the scripts, and installed them to the server. aMember Pro can handle payments through our existing credit card processing company, Concord EFS, as well as PayPal. We will be able to accept payments through this program, and the new member will immediately be added to the membership database.
Day 4
At this point, I began uploading existing content (which had been exported as backup file before Joomla was uninstalled) into Drupal. I also began testing the Taxonomy Access Control and realized that we needed more finetuning on the organization of information and user management. So I installed an additional module:
- Category, a tool similar to Taxonomy but with more flexibility. It allows more branching and better use of the information linked to category descriptions.
Most of this day was spent uploading and proofreading the content and making sure that the permission restrictions worked properly.
Day 5-6
Now that the content was loaded, it was time to convert the existing membership database, which was a basic Access application, into CiviCRM. This was the most complex part of the conversion. I had to map each field in the Access database to the file structure used in CiviCRM. For example, the Access database uses two basic tables; the CiviCRM program uses a dozen tabled to contain the same information. Fortunately, CiviCRM features an import tool that simplifies the process.
During the creation of test records, it became evident that aMember does not integrate well with CiviCRM. The aMember programmer had said this was a possibility, so I was prepared with an option — the CiviContribute component of CiviCRM. CiviContribute is a payment processing tool that allowing financial transactions through PayPal. I created and tested a PayPal Business Account, which went quite smoothly. At this point, I created and tested a Membership Application form, that collects and processes the payment, generates a receipt (which appears on the screen and is emailed to the member), and creates a membership record.
With CiviCRM all set, I exported records for current NOHS members and imported into CiviCRM. The membership database was now online! Next, I created custom screens and forms so that members can view and edit their membership records. I also created a linkage (using CiviCRM Groups and Drupal Roles) between the database and the web site content pages. Now, when members are logged in, they will be able to see the pages that are restricted to members.
Day 7-8
These two days were spent in testing and retesting to confirm that the membership database worked properly. When CiviCRM is upgraded to Version 1.6 in late February, we will be able to upload more data from the original database.
Additional web content was uploaded. A special restricted section for NOHS board members was created, special permissions were set up, and several board-only documents were uploaded. I also set up special permissions for board members to conduct searches in the membership database. Now the board will be able to view board reports, share documents, and view membership information on their own. Board members also have access to add and edit new content. I also created a contact form, which enables users to send email messages to NOHS and our volunteer leaders without revealing our email addresses.
The conversion is now complete. Drupal includes better reporting functions, so we can see where members are having problems and make appropriate changes. We have received positive feedback, and our members are interacting more with the web site. Two thumbs up!
