Go to page content

Flexible datamodel

Define your own data categories and relations.

Someone once said “everything is a thing”. And he was right.

In Zotonic everything is a page

Pages have a number of characteristics:

  • as many properties (fields) as you want
  • relations with other pages, forming a directed graph of pages
  • all the relations have a meaning, a predicate
  • a page is part of exactly one category
  • categories are pages
  • predicates are pages

The consequence is that you can add as many categories and predicates as you want. And that every category and predicate has a page on the Internet.

It makes editors happy

The editorial interface is very simple and straight forward. In fact Zotonic only needs one edit screen as everything is a page. This makes editing the site a dream.

Editors do not have to search through menus to find the correct editing option for changing some field. Instead they can concentrate on the text and relationships between texts, they can concentrate on what they want to express.

It is awesome for the template builder

As everything is a page you can start with defining a single page template. From that moment the site can display all pages the editors are making.

Then step by step the template builder can introduce new specialized views for categories and sub-categories. He can do this by extending the basic page template and just redefining what is different.

It makes programmers smile

They only have to deal with one kind of data. One kind of URL. One kind of API. Their life just got a whole lot easier.

Comments

  • avatar

    Neil Murphy

    Posted 1 year, 3 months ago.

    If everything is a page, is there also a concept of a lower level structure such as a section that can be applied across all pages? e.g. a standard header, or a standard 'news' section?

    There is nothing here about handling attachments - e.g. I work for an organization that creates pages and from the pages links to numerous PDFs, word docs and flash files that can be viewed or downloaded by the customer.

    Is there a plugins interface (such as Drupal). It would be good to be able to extend this to include social sites such as BBS, Wiki etc, and link elements of these to the core CMS driven site.

    Curious as to why you use postgres rather than e.g. mnesia? Or one of the 'nosql' databases.

  • avatar

    Marc Worrell

    Posted 1 year, 3 months ago.

    Hi Neil,

    All resources (pages) can be seen as collections of properties. Title, summary and body are standard properties. You can add your own.

    Attachments are resources, just of the category media. They have the same properties as any other page, so you can describe your attachment.

    Zotonic is extensible using modules. They communicate using notifications. As each module can implement any webmachine resource (controller) you can add whatever functionality you want.

    Regarding PostrreSQL. See http://zotonic.com/page/620/proven-and-powerful-database