Upgrading to Backdrop CMS
from Drupal 7
What is Backdrop CMS?
The Drupal fork
Drupal 7, modernized!
Backdrop CMS includes:
Drupal 8 core features
- Mobile First, HTML5
- Built-in Rich-Text editor
- Views (and CTools) in core
- Configuration Management
- Field Types: Date, Email, Link
- File Entity
- Media Browser
- Admin Views
- Page Preview
- Email registration
Backdrop CMS includes:
Drupal 7 contrib features...
75+ modules included in Backdrop core
- Admin menu
- Admin views
- Auto Menu*
- Block class
- Blockify*
- Boolean formatter
- Btester...Block Content*
- Caption Filter
- CKeditor*
- CKEditor Link
- CKEditor Media Browser*
- CKEditor Upload
- Comment Closer
- Comment Hide Subject
- Contact Block*
- Date*
- Date popup authored
- Default config
- Direct Upload*
- Elements
- Email
- Email Registration
- Entity API*
- Entity Cache
- Entity Reference
- Entity view mode
- Extra Columns*
- Field as Block
- Field formatter settings
- File entity*
- Float filter
- HTML5 Tools
- Image Mobile Camera*
- IMCE Wysiwyg bridge*
- Insert*
- Instant Filter
- jQuery Update*
- Link
- Live preview*
- Media*
- Menu block
- Menu translation (i18n)
- Nodeblock
- Options Element
- Panels*
- Panels Everywhere*
- Pathauto
- Placeholder
- Project Browser
- Rabbit Hole
- Radix Layouts*
- Redirect
- Role Assign
- Role Help
- Scheduler*
- Smartmenus
- Token
- Transliteration
- UUID*
- Variable*
- Vertical Tabs Responsive
- Views
- Views Bulk Operations
- Views Responsive Grid*
* Some features may not be included in Backdrop core.
Backdrop CMS is Fast
Backdrop performs faster than a comparable Drupal 7 site.
Faster page rendering, better caching, and yes,
cache tags are coming soon!
Backdrop CMS is easy
Improved user exprience over
both Drupal and WordPress
More than 600 user-experience improvements
made to the project since it's inception
Why upgrade to Backdrop CMS?
- You are happy (enough) with your current Drupal 7 site
- You want all the same functionality you have now (+ more)
- You want a simpler editor or administrator experience
- You want ongoing improvements to your software
- You agree with the Backdrop CMS Philosophy
Backdrop CMS Mission
Backdrop CMS enables people to build highly customized websites affordably, through collaboration and open source software.
https://backdropcms.org/philosophy
Backdrop CMS Principles
- Easier updates: Backwards compatibility is important.
- Simplicity: Write code that the majority can understand.
- Focus: Only include features that benefit the majority.
- Extensibility: Ensure Backdrop can be customized.
- Security: Keep sites and people safe.
- Performance: Meet low system requirements.
- Release on-time: Plan and schedule releases.
- Freedom: Remain both Free and Open Source.
https://backdropcms.org/philosophy
What kinds of sites are upgrading?
- Simple sites -- can upgrade in as little as 1 day
- Medium sites -- upgrade in ~1 month
- Highly customized sites (lots of custom code) - varies
Upgrade from Drupal
in 4 steps
- Research what's necessary
- Prepare your Drupal 7 site
- Upgrade to Backdrop CMS
- QA & Adjust
- Repeat steps 2-4
Step 1:
Research what will be necessary to upgrade to Backdrop CMS
- Review your current theme
- Review your current layouts (if any)
- Review your current modules
Are you happy with your current theme?
- If so, you'll need to "port" it.
- If not, you might want a new one: contrib or custom.
- Familiarize yourself with the time/effort required for either decision.
Theme differences from Drupal 7
The page template (page.tpl.php) becomes
the layout template (layout.tpl.php)
Drupal 7
regions in theme
blocks in database
Backdrop CMS
regions in layout templates
blocks in configuration
Minor markup changes: semantic tags, no IDs.
Drupal 7
div
id="page-title"
Backdrop CMS
article, nav, section, aside
class="page-title"
classes and attributes printed differently in templates.
Drupal 7
class="< ?php print $classes; ?>" < ?php print $attributes; ?>
Backdrop CMS
class="< ?php print implode(' ', $classes); ?>" < ?php print backdrop_attributes($attributes); ?>
functions are called from within templates
Drupal 7
print $styles;
print $scripts;
Backdrop CMS
print backdrop_get_css();
print backdrop_get_js();
What's a layout template?
(think "page template" from Drupal 7)
- .info file
- .tpl.php file
- .css file
- optional .php file
What's a layout template?
Top-level add-On (like module, theme)
- .info file
- .tpl.php file
- .css file
- optional .php file
Review layout templates:
- Can you make do with the layout templates in core?
- If not, you will need to create your own:
- Flexible Layout Templates (UI)
- Custom code
What modules is your site currently using?
- Core modules
- Contributed modules
- Custom modules
Review core modules.
A few D7 core modules have been remvoed from Backdrop.
- Were you using any of these?
- If so, were they replaced by something else? (dashboard)
- If not, did you really need them? (overlay)
- If so, do they exist in contrib? (aggregator)
- If not, are you ready to port them? (poll)
Review contributed modules.
- Have any been moved into core in Backdrop CMS?
- If some have not, do they exist in contrib?
- If some do not, are you ready to port them?
Review custom modules
- How many do you have?
- How complicated are they?
- Will they need any changes for Backdrop?
- Should they be made 100% backdrop-compatible?
the info file needs to be updated
Backdrop CMS
backdrop = 1.x
type = module
Your module might work after this one change!
(Backwards-compatability with Drupal 7)
There's some more
(You'll likely also want Configuration Management, so...)
configuration management
Drupal 7
variable_set()
variable_get()
Backdrop CMS
config_set() or $config->set()
config_get() or $config->get()
Backdrop
It's not very different
Step 2:
Prepare your old Drupal 7 site
- Ensure you are on the latest stable release of Drupal 7.
- Ensure you are on the latest stable versions of all add-ons.
- Ensure all configuration is in the database (views, etc).
- Optional: Delete content you don't use/need/want.
- Optional: Uninstall modules you don't use/need/want.
Step 3
Upgrade your Drupal site to Backdrop
- Replace all Drupal code with Backdrop code:
- Add all custom and/or contributed modules
- Add all custom and/or contributed layout templates
- Add all custom and/or contributed themes
- Update the settings.php file
- Run the update script! (visit update.php)
Step 4
QA and adjust
- Confirm that everything is working.
- Adjust configuration as needed (commit to vcs!).
- If this is the first upgrade:
- This is a good time to create/update the theme.
- This is a good time to create custom layout templates.
- this is a good time to port modules
As with all upgrades
Repeat steps 3-4 as needed, sync config each time.