Contact Us
24/7
Python BlogDjango BlogSearch for Kubernetes Big DataSearch for Kubernetes AWS BlogCloud Services

Migrating 30,000+ Webpages from Zope to Plone

Purdue University College of Engineering
<< ALL PROJECTS

Areas of Expertise

Text Link
CMS & Intranets
Text Link
Upgrades & Migrations

Industries

Education
Text Link

Technology Used

CHALLENGE

Migrating a site is always a challenging task, but when you have dozens of subsites — upwards of 30,000 pages! — with specific brand standards and custom user functionality, the challenge becomes mammoth.

The Purdue University College of Engineering’s website features 15+ content editors, 40+ public facing websites, 30,000+ total pages, and 20+ departments and units. Due to the size of this project, making even a small change can have a big impact on numerous parties. That said, the College’s existing Content Management System (CMS) was showing its age. As concerns about security heightened and modernization issues — including the inability to update pages using a Graphical User Interface (GUI) as opposed to using raw code — arose, the College knew it was time to migrate.

Six Feet Up worked hand-in-hand with the College to migrate its existing Python-based Zope site and subsites into a new Plone instance running on Plone 5.2, Python 3. The first challenge was to help the College evaluate various Content Management Systems (CMSs) and determine the best CMS for their needs. Once Plone was deemed the optimal choice, Six Feet Up expert developers:

  • migrated 30,000+ web pages from Python-based Zope to Plone with updated content;
  • used Diazo to import the College’s existing Zope-based theme to Plone;
  • implemented Through-The-Web (TTW) tiled layouts with Mosaic, giving content editors the freedom to build
  • diverse and dynamic layouts using custom-built tiles;
  • built a Sandbox, an internal demo site, where content editors would test new website functionality without breaking the site.

Throughout the migration process, Six Feet Up’s expert developers remained focused on meeting both the project deadlines and the needs of end-users. Limiting the impact on end-users by ensuring the site remained usable and accessible during the migration was a priority for the College.

Implementation Details

Before beginning the migration from Zope to Plone 5.2, Python 3, Six Feet Up and the College determined both the project and the development goals. Accessibility, usability, flexibility and security were identified as the most important tenants of the project. Next, guided by the project goals, Six Feet Up developers established four development goals:

  • do things in a Plone way;
  • observe best practices;
  • make it intuitive; and
  • keep it familiar.

Migrating 30,000+ Pages from Zope to Plone

To help streamline the migration process and limit site downtime, Six Feet Up crafted a solution for migrating the College’s 30,000+ pages. Because the site was live and being continuously updated, Six Feet Up could not do a single export of all the content. Rather, the subsites needed to be moved one-by-one.

To achieve this goal, Six Feet Up developers set up a migration package with transmogrifier, then customized JSONSource Blueprint from collective.jsonmigrator. Modifying the migration code allowed the developers to target specific areas and folders of the site and just export information in those areas. They also established pipelines to translate the existing content and images from Zope into new content types that are compatible with Plone.

“One of the really cool elements of this project was developing the ability to re-import content over existing content non-destructively,” said Annette Lewis, senior Python developer at Six Feet Up. “For example, after the import, if the images weren’t displaying, we could simply delete the images in the staging site and reimport that content. This feature came is handy several times!”

Six Feet Up also had to rebuild a few structures by hand and reimplement them in Plone, an expected step considering the improvements and modernizations needed.

Using Diazo to Import an Existing Theme

Purdue University has specific brand standards that must be followed by all colleges, departments and units. Retrofitting Plone into the College of Engineering’s existing theme was a challenge, but fortunately this is exactly what Diazo was built to do.

“One challenge we faced in the middle of this migration was the launch of Purdue University’s new brand standards — which included updated colors, fonts, images and more,” said Will Gwin, manager of web communications at the Purdue University College of Engineering. “The frontend of every page and template previously created had to be adapted.”

Six Feet Up developers used Diazo to import the College’s existing Zope-based theme to Plone using a “living” theme — also known as a single file that can be updated globally as brand standards change over time.

Implementing TTW Tiled Layouts with Mosaic

With Mosaic, the content editors within the College no longer have to use manual code blocks. Rather, they have an easy and intuitive interface that allows them to simply drag and drop tiled layouts Through-The-Web (TTW).

“It's a visual interface that allows content editors to work confidently in a more modernized and secure environment,” said Gwin. “From day one, this migration has been about giving people who are not web designers or developers the tools they need to maintain their sites with little to no oversight from my team.”

For example, Mosaic tiles that content editors can easily create, edit and publish without a code release include banner images, rich text editors, event agendas and more. This solution allows for faster site prototyping and development. It also gives content editors the freedom to build diverse and dynamic layouts using the College’s custom tiles.

“Mosaic solves so many problems for the College of Engineering,” said Gwin. “It’s one of the main reasons we decided to go with Plone, and it’s what our content editors are most excited about using.”

Building a Sandbox

One goal of this project was to alleviate anxiety about changing CMSs among the College’s internal staff and website users. To give content editors a safe place to test site functionality like updating content, using Mosaic and adding plug-ins — without fear of breaking the site or pushing it to production prematurely — Six Feet Up built a “Sandbox.”

Thanks to the Sandbox, the College’s content editors now feel empowered to make complex changes to web pages — all without the needing to know extensive HTML or CSS code.

Watch Six Feet Up and The Purdue University College of Engineering co-present about the migration project, “From Zope to Plone: Thinking User-First During Migration,” at the 2021 Plone Conference:

Results

Today, the Purdue University College of Engineering has a modernized infrastructure running Plone 5.2, Python 3. The Plone CMS offered the security features, user permissions, editing capabilities and customizable, brand-compliant themes the College needed for migration success.

According to Gwin, in addition to Six Feet Up’s in-depth knowledge of the front- and back-ends of both Zope and Plone, the collaboration between Communications (the Purdue College of Engineering Communications Office), IT (the Engineering Computer Network) and Six Feet Up was critical to the success of the project.

“The people at Six Feet Up brought our teams together and helped everyone understand each other’s needs,” said Gwin. “They helped demystify what we didn’t know and also shared insight into industry standards.”

Going forward, the College to excited for future Plone updates and implementing more modern web apps across the University network.

ARE YOU READY TO START YOUR NEXT PROJECT?

Let's Talk