Updating themes from V8 to V9 without Bedrock

I have spent a lot of time looking at available Bedrock Themes and reading about how to build a Bedrock theme or clone an existing Bedrock theme. I am finding that the Bedrock V9 themes do not accommodate the styling of my current site, which contains many customized blocks. Honestly, I think trying to build or clone a Bedrock theme is beyond my current abilities.

Thankfully there have been many posts and even some documentation, such as “Updating Concrete Thems from Version 8 to Version 9” (Updating Concrete Themes from Version 8 to Version 9 :: Concrete CMS) that indicate you do not need to rebuild your theme using Bedrock when you upgrade to Version 9.

What I can’t find is any posts that list the steps to successfully use a V8 theme in V9.

Here is what I think needs to be done. (Note – everything will be done on a development site first.)

  1. Update the site to version 9 while staying on php 7.4.

  2. As part of the upgrade, update my theme’s header file to point to the javascript file for bootstrap version 5 and latest version of the jquery along with a basic version of bootstrap-modified.css that handles the styling for the dashboard. Not sure of the best source of the css file – possibly use the bootstrap-modified.css from the elemental theme file in the latest version 9.3.9 download??

  3. Update my version of the page_theme.php to match the new asset classes.

  4. I then need to load the styles (getStylesheet) from my V8 site using the main.less file.
    Also change the base font size to 16px so the dashboard displays correctly.

Based on various posts there will be some modifications needed for font awesome and looking for other possible errors (for example I have seen posts talking about how the accordian and tabs have a few issues).

After that I will need to upgrade to PHP 8 and fix errors resulting from incompatibilities between the two PHP versions.

Is this how others have gotten their V8 themes to work on V9 without Bedrock? Am I missing any important steps?

The other option is to hire someone to upgrade my theme to Bedrock…

I would really love to upgrade my site to V9 but don’t want to try until I have more confidence that I know how to get my V8 theme working on V9.

Just a few things:
If your styling impacts the dashboard there is something wrong with your styling. Front pages should all be wrapped in a DIV with class name ccm-page. You should then use that class in all your styling so it doesn’t impact the dashboard.

If you have block templates in application\blocks they should also be updated as there have been a few modifications in blocks between versions.

Thank you for the quick reply. I checked and luckily the person who did my theme has everything wrapped with the ccm-page class. Thanks for the reminder about the application blocks. I know that I will need to address issues with asset changes.

@dgreer

I already fixed some v8 themes compatible with v9.

You can refer to the commit logs of those repositories.

1 Like

Wow, thank you so much. These examples are extremely helpful. Sincerely appreciate your help. I did not realize that some of the themes on the V9 marketplace did not require Bedrock.

1 Like

Most of the Themes are Non-Bedrock according to the Marketplace.

Only a few work with BS5 and not so new Bedrock.

Free themes with Bedrock are not available except boilerplate theme Basic Bedrock by @affixia.

Ok, that is interesting. I am confused by your comment that only a few of the themes work with bootstrap 5. I thought that bootstrap 5 was a requirements for version 9. Are you telling me I can continue to use bootstrap 3 and that will be compatible with the concrete dashboard and single pages in version 9?

I thought the javascript file for bootstrap 5 was required but I could possibly still use the css for bootstrap 3. Is that possibly what you mean?

That also might explain some of the documentation under themes for version 9 that still refers to bootstrap 3. I thought that was just a few documentation pages that were not completely updated for Version 9.

I think the upgrade process to Version 9 would be less intimidating if concrete users understood how to simply update their existing themes to be compatible with Version 9. Hissy’s github themes are helpful, but are more complicated than what I need due to the number of customized blocks in his themes. This is especially true for a file like page_theme.php. I am still not sure what the minimum changes to my theme that are necessary to get it to work with V9.

Just a quick note: None of my custom themes use ‘Bootstrap’, ‘Bedrock’ or call for ‘Font Awesome’ (I try to use an HTML alternative for icons) and all sites have worked for years and are mostly accessible (The only thing I do is update the ‘Core Version’ and ‘jQuery’ to latest version and check for accessibility.

I might upload an example of my theme process in the mp soon?

Concrete comes with 2 themes, Atomik and Elemental. Atomik uses Bootstrap 5 and Elemental uses Bootstrap 3.

You can use any framework you want. But if you use Bootstrap 3 you’ll have to take extra care that it doesn’t interfere with the core.

You will notice that Elemental uses a bootstrap-modified.css

If you’re going to use Bootstrap 3 I suggest you copy that file as it was modified to not interfere with Concrete’s core stuff.

As for Bootstrap Javascript using Bootstrap 5 JS with Bootstrap 3 often works just fine but you’ll have to test.

Thank you for the clarifications. I will follow your suggestions and start with Bootstrap 3 and test.

Are your themes responsive? Please let me know if you upload your theme process to the MP. Sounds interesting.

All themes are responsive, we are also looking to update a few soon for better accessibility and pagespeed:

Sorry for being unclear. The comments by Steevb and mnakaly are certainly more precise.

The upgrade and transition for v.8 themes to v.9, combinée with a major PHP upgrade, it broke a lot of code in themes and addons.

If you want to work with Atomik, be aware that a lot of things are difficult for normal users. Setting up a development environment for theming with Bedrock is more something for developers.

All our sites running Atomik as a base with Bedrock and BS5. In the header we pull in «main.less» and thanks to the still working LESS compiler, you have both; speedy new technology and ease of use.

I appreciate you responding to my question. The topic is confusing for many of us. It is an interesting option using both atomik and them do customizations the standard way with less. Certainly allows for quicker prototyping and implementation of new features. Also a friendlier option for those of us that are not developers. Thank you.