Necessity is the mother of invention, as they say, and this is very much true when it comes to the way Pixpro creates extensions for Joomla!
We had a client come to us with a rather complex idea for a website. The client has projects all over the world, and these are to be presented on their website, according to country. This is all fine, but the client also wanted these projects to show on other pages depending on the topic of the project. Furthermore, there was a page showing all personnel, whom also were to be shown on the pages for their respective countries. As you can see, there are a lot of relationships going on. To make things a bit more complicated, the number of countries the client are active in will differ over time, so the setup needs to be easely adjusted.
This made us do a lot of thinking. The way we work with Joomla!, is to do as much as possible with the core. This ensures easier updating and maintenance of the finished website, and we do like to engage in long term relationships with our clients. Another thing we like to do is make it easy for our clients to administrate their own websites. They shouldn’t have to come to us to just change a word on a page. This creates a need for keeping things simple, especially when it comes to content. A beautiful and well functioning website can also be easy to administrate, but this requires some more work setting things up.
Separation of presentation and content
To achieve the goal of making it easy for our clients to administrate their websites, we have adopted the design principle of separating presentation and content. This means, we use Joomla! articles for content and keep our design and layout in the template and the extension layouts. This makes it super easy for the clients to manage their content, without the fear of damaging the way the pages looks.
Another great benefit of this principle (perhaps the main reason for it) is that it simplifies all changes to the design.
More than just an extension
With the design principle of separating presentation and content in focus, we created PixBuilder to help solve our problems with developing a website with Joomla! Now, no matter where or how the content is to be presented, we can use articles to create and store the content. To make things even better, we designed PixBuilder to be able to dynamically select the content to presented. This means that the number of modules needed for a large website can be drastically reduced, making it even easier to administrate. It will also be a lot faster to add or remove new pages for layouts using common PixBuilder modules with dynamic selection of articles.
We can also set up complex relationships for content on different pages using the awesome tag feature in Joomla! (which have been lacking options prior to PixBuilder). To us, tags can be more than just a topic for a blog post. We use tags for internal relationships of content, as they, unlike categories, can be combined indefinitely. (A tip for anyone looking to utilise tags like this, is to set them up in (at least) two tiers. That way, it is simple to decide which set of tags should be shown in the output by filtering the first tier inside the template.)
By adding different tags to menu items and content, PixBuilder can be set to select desired subsets of content using the tags and display them on related pages. This is what we ended up doing for our client, where different Category Blogs shows all the projects for different topics, and a PixBuilder module dynamically selects all projects related to each country and displays them on their respective pages. A similar setup was used for personnel.