About UniTextus
UniTextus — from the Latin words universi (all together) and textus (web) — will be a new type web publishing system. Instead of focussing on one type of content (blog, forum, wiki), the goal of UniTextus will be to have one system doing all that. In the end, each of those are simply entries in a database. It’s just a matter of how those entries are presented to the end user.
Goals
- All entries will share one single table in the database
- Each entry has a category, a type and a relation to 0 or more other entries
- The system decides how to present the entries based on the category, type and relation
- User management with OpenID support, offering both a consumer (allowing logging in using an existing OpenID) and a provider (offering OpenID’s to users who do not log in using an existing OpenID)
Principles
We have made some basic agreements that will be used to achieve our goals, these are:
- We will be using PHP5. A Python version might be available as well.
- MVC is the pattern that we use because it makes sure neat code (no html needed in php files etc) is produced - at least that’s what it’s meant to do. To simplify this, the Zend Framework will be used
Basic examples
Forum
In a forum, there are sub forums and essentially 2 types of entries: start posts and replies to start posts. A start posts would have type=forum, a heaving relation with the subforum, and no relation to other posts. In addition, it would have a category which would be the sub forum. Each reply to that post would have the same type and category but its relation would refer to the start post. By default, replies will be displayed beneath the start post and will be sorted ascending by date.
Blog
Most basic scenario. The catergory will be just that, the category that the blog post belongs to. The type will be blog, obviosly. The relation or the actual blog post will be null, and for comments it will refer to the post. By default, comments will be displayed beneath the blog post and will be sorted ascending by date.
Wiki
In a Wiki, there are categories as well, so category will again be just that. The type will be wiki, and the first version of the article will have relation=null. Any revisions will have the same type and category (unless it is recategorized) and will relate to the first version. By default, the newest version will be displayed, with any previous versions being the history. Obviously, the history will be sorted descending by date.