Backdrop was created as so-called fork of Drupal 7, which means a copy of an open-source project that then started develop in its own way through a small community of enthusiasts. The reason? Symfony, Twig and the object-oriented programming in Drupal 8 seemed complicated and overly robust to many people. True, D8 did grow away from hobby developers because of that. Whether this is a good thing, that is a matter of various opinions but it is certain that the initial barrier even just to your own visual themes in Drupal 8/9 is a little bigger than it was with the seven.
So, Backdrop is something like Drupal 7, but properly tuned. During the years it has gotten to the level of equipment of Drupal 8 while it still uses the original concept. That is the standard PHP full of fields instead of objects and a standard templating through PHP instead of Twig. The user environment contains similarly to D8 CKEditor, Views, many modules that in the past had to be installed separately but now can be found directly in the core.
But the reason why I am writing this post on Backdrop lies elsewhere. I came to sort of a crossroads with my several older projects on Drupal 7. I didn’t want to seal them up completely. But they necessarily need edits. Whether because they kind of missed the arrival of mobile devices or because Drupal 7 ends the next year.
When I look at my calendar it is clear that between my client work and bigger webs maintenance I won’t be able to squeeze the Drupal 8 migrations of smaller webs in there. And if I will, then it means losing time with updates via Composer and the whole CI/CD in the future.
WordPress would solve this problem for me. It is able to update with one click only. For one thing I don’t like how almost non-visited webs on WordPress occupy my server with robots arrival, for another thing there is still a question of some migration.
Backdrop promises almost pain-free transition from Drupal 7. It can do an automatic update from the administration, including a core. A substantial thing for administration simplification that is not accessible in Drupal because there is a million reasons why not. Also it still is a familiar environment, I won’t be so lost in it. It was decided.
How to migrate from Drupal 7 to Backdrop
All of the webs I have migrated are simple magazines with a small number of authors, a flat taxonomy and simple posts that consist of a title, intro and a main text accompanied by images. There are also always a couple of Views displaying the newest content, similar posts according to tags and author introductions.
The procedure of Backdrop transition is nicely described in this documentation. I followed it step by step and didn’t come across any significant problem:
- I looked at modules that aren’t in the Backdrop core and that I would like to continue to use. In the list of its extensions wasn’t anything missing for the mentioned webs.
- Regarding visual themes it was enough for me that I chose one of the free ones and slightly edited it using a derived child theme.
- I copied the web with Drupal 7 separately, cleaned it from unused tags, unnecessary content types and other ballast sediment of several years.
- I set up Bartik as the default visual theme, Seven in the administration. Both are present also in Backdrop.
- I downloaded a clean installation for Backdrop. I launched the installer and entered data for the database. Following the manual I moved the folder with files and images. I imported the current backup of Drupal 7 after edits.
- I downloaded all the additional modules I want to use and went through the process on the address /update.php several times before all the database structures were updated.
- With this step the migration process to another platform was finished. It all took a few minutes. Of course another part of work, necessary tweaking, followed.
Tip: If you think about transition from very old Drupal 6 then the recommended process is to upgrade to Drupal 7, which shouldn’t be a big problem, and then migrate to Backdrop.
Tweaking of Backdrop CMS after the migration from Drupal
First of all I noticed in the database that many of tables are still in MyISAM. Well, Drupal was launched on these webs in some very old version when MyISAM was still trendy. An inquiry to StackOverflow and the found answer showed me a simple method with two queries via PhpMyAdmin that will solve a transition to InnoDB.
Statistics of number of read posts in Drupal is rather indicative because it just stupidly grows by one but it comes in handy when you want to create a list of the most read posts for orientation. I hoped I will be able to preserve that. Statistics module is not in the Backdrop core but exists separately. I was successful but the module didn’t create the three new columns for daily, weekly and yearly statistics that are needed in its table. It sufficed to just manually add them via the database administration.
Compared to a normal clean Backdrop installation, when upgrading from Drupal you have to expect that some of the default modules won’t be turned on. First of all I searched for a reason why I cannot install another modules directly from the administration when Backdrop is able to do so. It was enough to activate the Project Installer module.
The second thing to do was turning on CKEditor that is also in the core and replaced for me the solution Wysiwyg + TinyMCE that was in the original Drupal.
Observations from the visual theme edits in CMS Backdrop
When I loaded some free visual theme and tried to play around with it a little, I needed to change a logo to mine. I was pleasantly surprised that Backdrop didn’t have a problem with loading of a SVG image. Current Drupal likes SVG too but it doesn’t allow to load it from the administration because of security. By the way, a logo change is not done in visual themes like in Drupal but in the Basic information about a web. Makes sense.
Backdrop approaches locating of blocks on a page differently. It doesn’t have the standard arrangement in regions like Drupal but it uses the Layout system. Those exist independently on visual themes and determine how the block arrangement will look like. In the administration it is possible to choose a different layout for a homepage, for content and for pages that will fit a set rule. Layouts are created by a simple piece of a code, or you can download the ready-made ones directly in the administration. Similarly to modules or themes.
It wouldn’t be bad to have the option of layout definition for content nodes and their viewing. It probably wouldn’t have to be that complicated, like in the case of Drupal 9 and its Layout Builder. Anyway for my needs a simple layout with a heading, a side column and a foot on every page was enough, so I turned off the extra homepage definition.
In the visibility of blocks administration, a little detail made me happy. If you want to tell a block to be visible only on a title page, it is not necessary to write a Drupal-like <front> anywhere. You just set a rule with a corresponding tick off button. For users it is definitely more convenient.
In a case of one web I needed to play around with a post template in a child theme. Naming to the standard Drupal name node--teaser.tpl.php did not work for some reason. So I turned on the module Devel by a recommendation, right in the administration I activated the developer mode with one click and in the HTML code notes with template suggestions were viewed. The naming convention is similar to Drupal but it was necessary to reflect the content type into the name of the template.
But take notice. I turned on the developer mode in the administration. I didn’t have to edit the YAML configuration somewhere in files.
Searching of modules directly from the administration and the core update
As I mentioned in the beginning of the article, when working on smaller projects I am not in the mood to have to log in anywhere because of an update, dealing with Git, Composer and who knows what else. I only need an automatic backup and the most simple option to install security patches.
Backdrop offers just that. As soon as the Project Installer module is on and an update is released, you update all the additional modules and the Backdrop core itself in the administration. With one click, comfortably. Then there follows a guide of clicking through database changes, like in Drupal. I am relishing this.
But that isn’t the only module installation and update improvement. Themes, layouts and modules can be searched for directly from the administration. Like in WordPress. No need to copy URL addresses with a module archive into a web administration and then their downloading. You just browse through the catalogue, add modules to the installation queue, just like when you’re shopping online. Then you install them with one click.
And another pleasant improvement. When the new modules are copied, Backdrop views the list of these and suggests turning them on. No searching through the complete list of modules like in Drupal awaits you here.
Everyday work with content and a few smart improvements
In definitely wasn’t my intention to write this post as a reflection of the biggest pros of Backdrop and cons of Drupal. Each choice has its drawbacks and I still do like Drupal. But when I see how Backdrop tries to be convenient for its users I tell myself that Drupal took off somewhere into the programming heights and somehow forgets people who actually work with it. The more work it demands then during implementation for the editor’s use to be comfortable.
So in Backdrop: there is a built-in planner of content publication. The Scheduler module, as we know it from Drupal, is here available right from the core. And not in some awkward way at all. When creating a post you have a choice whether you publish it right away or you save it as a concept or plan a publication (vs. Drupal and its tick-off button “Published” and publication planner in another part of the form).
Many clients complained to me that with Drupal they load an image and it is turned differently compared to the computer view. Of course, because they have it oriented by EXIF instead of a physical orientation. Backdrop, once again, can deal with this without any additional module, you just turn on the option to turn the image automatically.
The fact that Drupal 8/9 (a few last versions) has a media library is well known. That it is kind of visually lacking is known as well. Not that Backdrop excels in this. But a selection from already uploaded images can offer too. With image fields also when entering a photo directly to the editor. And it is not necessary to turn on the hogwash with the Media module, replace the image fields with fields of another module through which is the image actually also loaded. It all works automatically, somehow.
The library of already uploaded images works even after upgrade from Drupal. The more it was a nice thing for me. Because I don’t want to just praise all the time - twice an old image refused to be inserted into the editor but that I consider a normal thing.
A change of the administration views is nice. That wasn’t possible in the seven without more modules, the current Drupal can do this also. I miss a Drupal 8 improvement when the system is able to distinguish between the view administration, the form administration and the field administration. Backdrop stays with the Drupal 7 concept where the field order in the form and their widgets are being set up directly when defining the fields.
The conclusion? Go for it
And I would like to stop here. I strongly recommend to try out Backdrop and if you are ruminating about what to do with a small web on Drupal 7, which should end in November 2022, then consider Backdrop. Especially in case you have a standard hosting without a command line, without Composer and without the option of choosing the folder where the web root is located. Drupal 9 wouldn’t be good for that, on the other hand Backdrop will work perfectly and you won’t have to learn anything new.
A weakness of Backdrop is the documentation extent. But it is possible to use processes you already are familiar with from Drupal. Of course, here it is a smaller community and from what I have read I know some people ask themselves how Backdrop will be develop further. I doubted that myself but now I think it is already established and stabilized enough.