MyBB Community Forums

Full Version: MyBB 1.9 Development
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
As described in the roadmap I posted recently, the future development of MyBB is going to happen over a series of major releases:
  • 1.9.0
  • 1.10.0
  • 1.11.0
  • etc.
This thread is dedicated to the ongoing development of MyBB 1.9.0.

New Features/Changes
  • Brand new responsive theme, with more semantic HTML5 structure behind it.
  • Changing the template system to use Twig. This brings the following improvements:
    • Conditionals and loops within templates, removing the need for plugins like the PHP or Template Conditional plugins.
    • Ability to include templates from withina  template, leading to more flexibility for theme developers.
    • HTML in variables in templates is escaped by default - no need to remember to use htmlspecialchars_uni() in backend PHP code everywhere. This should lower the chances of inadvertent holes for XSS attacks to leak through due to output not being filtered.
    • Ability to register functions that can be called within templates. Functions such as formatting dates according to MyBB settings, checking permissions, and more will be available from straight within templates, making logic muche asier to reason about.
Current Status


As of the time of writing, progress on 1.9 is still very early. Work is happening in a dedicated develop/1.9 branch on GitHub. So far, there is a single template converted to Twig, which is the User CP drafts page. There is still a great deal of work to be done here, such as finishing converting the header and layout templates, and adding the user CP menu to the page. However, it should make clear the structure:
  • All base templates are stored in the "inc/views/base" directory.
  • The drafts tmeplate can be found here, and gives a good example of the Twig syntax - it makes use of a loop, layout blocks, comments, and template includes.
  • Twig extensions (which provide functions and global templates) live under the "MyBB\Twig\Extensions" namespace. There are currently two extensions registered - one for providing translations inside templates, and another for providing theme support. More extensions will be added as they're needed - such as a User CP extension to provide the User CP menu.
  • Twig views are rendered using the "\MyBB\template()" function, as shown here.
Timeframe

It is planned that 1.9.0 will be available at least as a beta verison within the first quarter (Q1) of 2018, though obviously the sooner the better. We welcome any contributions to the effort that people can provide. For example, if you're used to working on Twig, you can follow the below process:
  • Fork the MyBB repository to your GitHub branch.
  • Create a new branch based upondevelop/1.9.
  • Convert a template to Twig, and test it locally.
  • Create a Pull Request to the MyBB repository against the develop/1.9 branch.
  • The team will review and merge the PR, knocking another template off the list to convert!
It is my plan that this thread will act as a status log of progress on 1.9, and I will post weekly status update summary posts, which will be linked to in this opening post as they are created. These status sumamries will detail what's been achieved in the last week, and which templates have been converted (and by who, if by somebody outside the team).
Thank you for this I can't wait for 1.9. It would be great if it was released in the next 3-4 months.
Looking forward to 1.9, Thank you guys its because of you guys who create something and then we smaller ones mess around with that. I hope it will release soon enough.
Thanks for the heads-up. Looking forward to 1.9 and future releases, it'll be nice to finally have a responsive design and of course security looks good to be improved. No more having to have htmlspecialchars everywhere is a great step for cleaner code.

Repped you. Smile
Hi,

sorry if this is not the section to ask this.

What if I don't want to change the template system, but I want the security/bug fixes releases for 1.8?

Lifetime of 1.8 will be 1 year like it was for 1.6?

Thanks for your work.
Well, new versions will have new bug fixes. When we get 1.9, 1.8 will not be updated any longer.

And all versions after that (1.0, maybe 1.1 if there is and so) will have theme system from 1.9 so I suggest you moving to 1.9 when it arrives...

You are asking because you already have theme you like, right?

You can always just leave that version before you are ready to upgrade.
(2018-01-09, 07:35 PM)NoRules Wrote: [ -> ]What if I don't want to change the template system, but I want the security/bug fixes releases for 1.8?

Lifetime of 1.8 will be 1 year like it was for 1.6?

We've not yet decided on the exact time period that 1.8 will continue to be supported and receive updates for. However there will certainly be a crossover period where both are supported and 1.8 will continue to recieve critical security updates regardless of 1.9.
(2018-01-09, 07:53 PM)kawaii Wrote: [ -> ]
(2018-01-09, 07:35 PM)NoRules Wrote: [ -> ]What if I don't want to change the template system, but I want the security/bug fixes releases for 1.8?

Lifetime of 1.8 will be 1 year like it was for 1.6?

We've not yet decided on the exact time period that 1.8 will continue to be supported and receive updates for. However there will certainly be a crossover period where both are supported and 1.8 will continue to recieve critical security updates regardless of 1.9.

Exactly right. The minimum life span after the full release of 1.9 will be at least 6 months. Depending on how many people are still using 1.8 we will extend that lifetime up to a year in all likelihood.
I'll be stuck on MyBB 1.8 until I'm able to upgrade to PHP7 (I have one piece of software that still doesn't work with PHP7)
(2018-01-09, 10:07 PM)Euan T Wrote: [ -> ]
(2018-01-09, 07:53 PM)kawaii Wrote: [ -> ]
(2018-01-09, 07:35 PM)NoRules Wrote: [ -> ]What if I don't want to change the template system, but I want the security/bug fixes releases for 1.8?

Lifetime of 1.8 will be 1 year like it was for 1.6?

We've not yet decided on the exact time period that 1.8 will continue to be supported and receive updates for. However there will certainly be a crossover period where both are supported and 1.8 will continue to recieve critical security updates regardless of 1.9.

Exactly right. The minimum life span after the full release of 1.9 will be at least 6 months. Depending on how many people are still using 1.8 we will extend that lifetime up to a year in all likelihood.

I was going to suggest 12 months. If only because 1.10 is going to be a bigger upgrade than 1.6->1.8, with the new templating systems and backend improvements.