Thursday 20 January 2011 by

In true Golden Globe style, it’s time to introduce the core concepts behind Textpattern 5. Take your seats, it’s going to be a wild ride.

Among the speculation and hints on the forum about the direction of TXP 5, we thought it was about time to open the envelope and reveal all.

And the nominations are…

First of all, we would like to welcome Jeff Soo as a core developer. Jeff has been an avid plugin writer, patcher and Txp tester for a while now and brings a wealth of programming knowledge and skill to the team. And, as you know from his forum posts, he’s a jolly fine man. We’re very much looking forward to working with him.

Best Picture

Secondly, we have decided to take the huge step of modernising the core from its humble origins into a 21st century application. Namely, utilising the MVC (Model View Controller) pattern.

Over the last eighteen months, Sam has been very busy creating his own CMS (Escher) from the ground up, which is built on a custom, lightweight MVC framework called Spark/Plug. We are going to adopt Spark/Plug for Textpattern and build on its considerable, yet slender, shoulders. If you’re curious to learn more about Spark/Plug and Escher, feel free to visit Sam’s Spark/Plug site and/or Escher site.

Best Performance

To anyone who’s shrugging / shaking their head in bewilderment, the benefits of modernising Textpattern’s core code include, among other things:

  • greater flexibility/extensibility
  • more power to plugins
  • increased performance via public-side cacheing
  • public-side templating/theming

And Spark/Plug will accelerate our ability to do all of the above. We’re pretty excited about what this means for Txp as a platform. But there’s a catch.

Uh-oh. A catch?

Yes. It’s a lot of work. And all the while we’re moving the codebase across to the new framework, it may seem like little is happening in terms of the end-user features we all want. Especially given that we don’t have infinite time to devote to our beloved CMS between day jobs and life.

Best Direction

We agonised for ages on how to approach this before reaching the following plan.

  1. Txp 5 will be developed in phases:
    1. The admin side will be moved across to Spark/Plug.
    2. A compatibility layer will be built to help plugins, templates and sites work under the new framework. Plugin authors can then adjust their code to fit the new paradigm and the layer will eventually be removed.
    3. The admin side will be given a facelift to improve workflow.
    4. The public side will be migrated to Spark/Plug, along with a new default template.
  2. The dev workload will be split:
    1. Robert (primarily) will continue to drive new features into the existing codebase ready to move the application across when the framework is ready.
    2. Sam, Jeff and Stef will work on migrating to Spark/Plug and putting the compatibility layer in place.

This is going to be a pretty major undertaking, and we would like your help. To that end, we will be moving to Mercurial for Txp 5 and later. We are looking for as many people as possible to help us transition the codebase to Spark/Plug and encourage you to clone the repo and publish your contributions so we can rapidly merge them into the core. The quicker we can do this part, the sooner we can fold Robert’s work into Txp 5 and start adding the new features you’re all asking for.

Sam will be posting a quick howto for accessing the new repo in the near future, so watch this space.

Best community

We really would like this to be a true community effort. We’ll co-ordinate things from here and the forum, and regularly publish who’s doing what to minimise duplication of effort.

So if you’re interested in taking our little CMS from the shadows of historical review into the bright light of tomorrow, please get in touch, get involved and get coding. Thanks!