Date post: | 28-Jan-2015 |
Category: |
Technology |
Upload: | rene-lasseron |
View: | 109 times |
Download: | 2 times |
Migrating from proprietary CMS to Drupal 7
René Lasseron
Behind the scenes University of Tartu
DrupalCamp Baltics 2012
18 emp1 internSince 2000
3 500 emp17 000 studSince 1632
Tallinn
Tartu
19962001
2009
When we started
• 80+ multilingual sites in one proprietary CMS
• Funky navigation scheme
• Fading technology and support
After 6 months
• New live site on Drupal 7
• Main university site in 4 languages
• Fresh graphics and navigation
• 70+ sites still waiting for migration
www.ut.ee
After 12 months
• 6 additional sites migrated
• Less bugs
• 60+ sites still waiting for migration
Scale and scope
• 80+ sites in one Drupal installation
- Each in 4..2 languages- One main site www.ut.ee- Other sites for Faculties, Institutes,
Colleges, other bodies- Takes about two years to migrate
them all after completing fist stage
• 300 daily content editors- 50 editors for main site- 250 for other sites - One central administrator
• Volume- 28 000 nodes on main site- 925 menu items- 20 000 document files in public folder
• Integrations with 8 backend systems
Login
• Username/password against university’s central LDAP, combined with web service
• Estonian ID-card and mobile-ID
User interface
• Most features hidden from daily editors
• Few content types
• Workbench
Few tools and content types
Re-worked tabs
Add new sub-page- Menu and parent menu element gets created automatically
Add different content to the page, even different regions- Creates automatic relations using node reference
Re-worked tabs
Re-worked tabs
Main node, defining the menuChild node, shown via view and node reference
Re-worked tabs
There’s a module for that
Multisite and internalization- Domain Access (vs
multisite)- Internalization- Custom module for
allowing same alias in different sites
- Transliteration
350 modules used
Content editing and organizing- CKeditor with custom
styles- IMCE vs Media- Linkit- Diff and revisions
- Autosave- Content lock- Link checker- Automated logout
Views and layout- Webform with
Clientside validation- Simple ads- Views (31)- Display Suite
- Context (7)- Panel (few)- Menu firstchild
There’s a module for that
Multisite and internalization- Domain Access (vs
multisite)- Internalization- Custom module for
allowing same alias in different sites
- Transliteration
350 modules used
Content editing and organizing- CKeditor with custom
styles- IMCE vs Media- Linkit- Diff and revisions
- Autosave- Content lock- Link checker- Automated logout
Views and layout- Webform with
Clientside validation- Simple ads- Views (31)- Display Suite
- Context (7)- Panel (few)- Menu firstchild
There’s a module for that
Multisite and internalization- Domain Access (vs
multisite)- Internalization- Custom module for
allowing same alias in different sites
- Transliteration
350 modules used
Content editing and organizing- CKeditor with custom
styles- IMCE vs Media- Linkit- Diff and revisions
- Autosave- Content lock- Link checker- Automated logout
Views and layout- Webform with
Clientside validation- Simple ads- Views (31)- Display Suite
- Context (7)- Panel (few)- Menu firstchild
There’s a module for that
Integration- Feeds with many patches- LDAP
350 modules used
Other- Features (13)- Google CSE
Custom modulesTrash
Custom modulesVisually impaired
Custom modulesContent reminder
• Estonian ID-card and mobile-ID support
• Italic titles
• User bulk operations
• Media support for www.uttv.ee
Work in progress on publishing these on drupal.org
Custom modulesOthers
Public interface
• Omega base theme- http://drupal.org/project/omega
• HTML5/CSS3
• 960.gs 12 col grid
• Nice “primary region” feature
• Mobile adaptive
• One theme for main site, sub-themes for sub-sites
• Trying to create mental hierarchy in Drupal
- It’s everywhere around us
• Persisting menus when drilling down on Views
- Menu position http://drupal.org/project/menu_position
• Menu structure based user access
- Main site: 50 editors, 28 000 nodes, 4 languages
- Failed with Workbench Access- Waited for first release of Access
Control Kit
What we struggled withHierarchy and Access control
• Need for one place to manage tens of thousands of files with folder hierarchy and access control
• Media vs elFinder vs IMCE
• IMCE- Existing folder hierarchy- Existing access control- No paging
What we struggled withFile management
What we struggled withDrupal UI with long and deep menus
What we struggled withMigration
Preserve all- Content- Hierarchy and menus- Files
- Users- User’s relation to content- Content ID’s- Aliases
What we struggled withMigration
Automatweb- Highly hierarchical- Hundreds of content/object types- Content often combined
#something# includes. Example:
!!!!!!!!!!!!!!!!
Hello,'visitor
#welcome(text#
Please'download'#file(1#'or'see'#link(3#'or'send'us'some'feedback:
#feedback(form#'
#contacts(table#
!!!!!!!!!!!!!!!!
Deployment and performance
• Development, test and live sites
• Kept in sync using Features, Git
• Separate HTTP and MySQL servers
• Boost module
• HTML and Apache level Yslow and Google Page speed recommendations
Who did it and what’s next
• Professional customer
• Mekaia: 1 Project manager, 2 backend programmers, 1 front-end coder. 7 persons during one year.
• Graphics design: Velvet
• IA: Kristjan Jansen
• Tools such as Git, Asana, Jira, Liquid planner, Harvest, Google Docs, Skype
• Pushing the limits with 60 additional sites
• Contributing to drupal.org