Application Data Structure – TomaVelev.com – Simple Blog CMS

The process of starting things of my own influenced by the Personal Development and Marketing trends – I created my own Blogging Platform. I didn’t like what WordPress or Drupal offered at that time, or maybe I wasn’t having enough experience with them yet and I didn’t find easy way to have multi-language site – with translated articles, menus, comments for every article in the current language and more. Right now I have more than then – experience with WordPress and a little bit more understanding how things work and also there are more Plugins, Themes and Development for it, but, let me continue the description of my Blog and I’ll Describe WordPress later.

Page – The core component of my Blog is the Page. It is a template that has placeholders for stuff and it is used as a basis for all the articles. I ended up using only one Page but, eventually, if I decide to switch the design, I’ll most likely need to change it once and it will be applied to all web pages.

Menu – Menus are two levels only structure – with a top level item and sub-items shown in a drop-down. The relationship of articles to menus is many to many – one article can be present in many menus and one menu could have many articles.

Article – The Data Model that has most records. It is HTML text with Date Published field. Also, I made possible articles to be linked to other articles so there are probably several posts that are like a series and after reading one – at the end you could see referenced another post.

Comment – Every article could be commented on (with only one level of comments), but – there is separation by language of the articles and so – in the comments.

Translations. As a way to translate the articles I’ve expanded the database a little bit more and even actually created a whole another application that I’ll describe in another post. For the purpose of the Blog, every article that is translated has HTML structure and every content/text/ that is visible to the user is placed in the Rich Text with translation keys. If I want an article present in another language I type in a title of the article in field associated with the language. If the title field in some language is empty – the article will be not present/found. So, after a non-empty title of an article is found – my blogging system searches for translation keys in the post content and if it finds some – it replaces the keys with some actual values in the Translation Table in the specific language.

Share
Add comment