The ZOO 2.0 – App Concept
A couple of days ago we announced our brand new ZOO 2.0 extension and we are really excited about it! Today we want to show you the most important part of your new ZOO architecture: the apps!
One of the biggest goals for us during the development was to move from a catalog system to an application builder. The CCK feature from ZOO 1.0 already allows us to create content specific types to fit exactly your requirements. But on the other side everything in ZOO 1.0 was a catalog with the same parameters and content fields. We didn't like that concept that each catalog has the same properties and settings. For example a blog, a product catalog or a download archive aren't the same and have different requirements. So the next step was to allow catalogs to have their own properties, settings and workflows and to be a real content application. With ZOO 2.0 we did this step and it is not a catalog system with a CCK anymore. ZOO 2.0 is a content application engine that lets you create your own apps!
Let’s start with an example!
Imagine you are setting up a new website and need a private blog. When you create the blog a new section will appear where you can manage your private blog with its own items, categories and content. After a few days you decided to start blogging about your business and you don’t want to mix it up with your private blog stuff. Again you can easily create a new blog and another section will appear where you can write articles about your business. This is great! You have 2 instances of the blog application and each instance manages its own stuff. A couple of weeks later you want to add your wines and electronics and make it a browseable catalog. Again you can create two separate instances of the product catalog app. One for wines and the other for electronics. In general, you can create multiple instances of every app in Zoo 2.0.
The App Instances
Normally you will spend most time working inside an app instance to create and manage your content. So let’s go back to our example. We created 2 instances of the blog app. In the configuration of each blog you can choose which template should be used to display the content. Further you can configure some global settings for example for the RSS feed and comments. In each blog instance you can manage its own content. This means each blog has its own frontpage, categories, items, comments and tags. And you can manage all this content in the blog instance. The same goes for the 2 product catalogs. But the big difference between the blogs and catalogs is that they are instances of different apps. This means they have for example different templates and settings to fit their specific needs. Let’s take a look at the core part: the apps itself!
The Apps
In ZOO 2.0 apps are small ZOO extensions which are developed for a specific purpose like a blog, a product catalog, a download archive and more. Further each app comes with its own templates which can be assigned to each app instance individually. Every template loads its own assets like images, CSS or JavaScript. Templates include sub templates for all app views like the frontpage, category and item. We also have to introduce a new core concept for the templates: the layouts! Layouts are responsible to render items with its element positions. Element positions are similar to the module positions in Joomla templates. Each layout has its own set of element positions. So when you create your types you can drag ‘n drop the elements on the element positions provided by the template. In ZOO 1.0 you had to edit your template to render an element. This is no longer necessary. Just drag ’n drop them on the element positions. This is awesome! Another new feature of the template engine are global template parameters. Each template has its own set of parameters. When you create an app instance you can set the global template parameters in the configuration. These global parameters will be used by default but the template engine allows you to set them individually for the frontpage, each category and item. You know this concept from Joomla! but we improved it a little bit.
Next important parts of an app are the types. We introduced the types and elements concept with ZOO 1.0 as Content Construction Kit (CCK). It allows you to create your very own custom content types which mean you can select the exact elements the type should consist of, like text, images or many more. Later when creating new items in your app instance you choose which type the item should be. For the blog app for example you would have an article and an author type. Also, you can create predefined types which are bundled with the app. This is great because it allows users to start instantly creating the content using the predefined types. You can edit existing types and add easily new ones. Another great feature is that you can also attach your own elements. So if you need a specific element for your app and there is currently no one which matches your needs in the ZOO 2.0, you can add your own elements to the app.
Further we provide a lot of parameters which allows you to configure and extend your app. You can define basic app parameters which can be used by the app. We got content parameters which allow extending the frontpage and categories with content fields. For example, you can add text, textareas and images to categories. This means that app instances of different apps can have different content fields for categories. Isn’t this awesome? It’s a CCK for the frontpage and the categories! Further apps include comments configuration, language files and the alpha index. The alpha index configuration allows you to add more individual characters to match you native language.
Of course, we have an installation manager for apps. They can be uninstalled and you can install new ones. It is also possible to export your own created apps and share it with others. We hope this gives you an overview of the new app concept of ZOO 2.0. We are pretty excited with the new approach of ZOO 2.0 to be a content application engine.
Next post we will take a closer look on the new user interface and all the usability improvements. We have more awesome UI stuff to show!