Popular

Collapse

  • How to make a language pack for TomatoCMS?

    TomatoCMS support multilingual site. English is default language. But it is easy for you to customize or make a new language for your site. This article will help you if you want to make a language pack.


  • How to install TomatoCMS 2.0.1 by Install Wizard?

    TomatoCMS 2.0.1 provides Install Wizard which allows you to install TomatoCMS more easy than before. This article will help you go through the steps of Install Wizard.


  • TomatoCMS 2.0.1 released

    After releasing TomatoCMS 2.0 version, we received many feedbacks. Most of users had problems with configuration and didn't know how to make TomatoCMS run correctly, especially when users put TomatoCMS on sub-directory of web root folder. And there was not install wizard at that time.

    Now, after hard working days, we released the 2.0.1 version which provide Install Wizard, improve comme...


  • Layout Editor clip

    Layout Editor is most interesting feature of TomatoCMS. This tool is very visual and powerful.

    You can build and preview layout of page easily.


  • How to deploy TomatoCMS on localhost environment?

    After releasing TomatoCMS, some developers informed me that they could not deploy on localhost. So, I decide to post new guide which shows you step by step to do this. This guide was implemented on Windows operating system with Apache 2.2.1, PHP 5.2.10, MySQL 5.0.83.


  • How to develop a widget?

    Widget is most important part of TomatoCMS. All web pages build by TomatoCMS was composed by widgets. This article describe structure of widget files as well as how to develop a widget from scratch.


  • Introduction to Layout Editor tool

    TomatoCMS introduce a concept: each webpage was composed by collection of widgets. We also provide a tool called Layout Editor which have ability of drag/drop/preview a layout. This article will explain in details what widget is, how to use Layout Editor tool to customize the layout of page.


  • How to post new article?

    This guide will help you how to post new article as well as upload, insert images into the content of article


  • Some screenshots present most key features of TomatoCMS

    There is nothing visual than photos. Today, I post some screenshots that present most key features of TomatoCMS (click on image to view the full size).

How to make a language pack for TomatoCMS?

Posted by admin at 07:17:46 19-01-2010 in Developer Guide
4289

TomatoCMS support multilingual site. English is default language. But it is easy for you to customize or make a new language for your site. This article will help you if you want to make a language pack.

Where do language files locate?

TomatoCMS is modularized. Each module consists of many widgets which are located in the ModuleDirectory/widgets directory. Language file for module is located in app/modules/Name_Of_Module/languages directory, meanwhile, language file for widget is located in the same directory as widget.

Following figure illustrates where the languages files of news module are.

Languages directory of module

In above figure, (1) indicates the path and (2) indicates the list of available language files for news module.

Structure of language file

Language file have to be named as lang.xx_YY.ini where XX is language code and YY is country code. You can find the list of language codes here and country codes here.

So, if you want to create a French language pack for news module, you have to create file named lang.fr_FR.ini in app/modules/news/languages directory.

The language file is simple text file grouped by some sections. Don't care about the section at this time, I will explain it later. Each line below the section has the format of key=value:

[about]
about_news_description = "Manage articles"
dashboard_list_articles = "List of most recently articles"
dashboard_add_article = "Write new article"
dashboard_list_hot_articles = "Hot articles"
permisson_article = "Manage articles"
permisson_article_activate = "Activate article"
permisson_article_add = "Add new article"
permisson_article_delete = "Delete article"
permisson_article_edit = "Edit article"
permisson_article_hot = "Manage hot articles"
permisson_article_list = "View the list of articles"

[article]
article_category_latest_articles = "Latest articles"
article_category_previous_page = "Previous page"
article_category_posted_by = "Posted by %s at %s"
article_category_posted_in = "in %s"
article_category_next_page = "Next page"
article_category_read_more = "Read more"
article_details_posted_by = "Posted by %s at %s"

Don't edit the key, it is used to identify the language properties in source code. Now, you can edit the value manually.

Also, you have to keep the characters like %s or %d in the value, it will be replaced with values taken from the database or some dynamic things.

In order to create language files for widgets, performs similar steps.

For example, creating a French language for category widget from news module includes steps:

- Copy lang.en_US.ini file in the widget directory (app/modules/news/widgets/category),

- Paste it in this directory and rename to lang.fr_FR.ini,

- Update the value of language keys in lang.fr_FR.ini file.

Creating new language file for widget

Applies new language

To apply or test new language, you have to do only one action: change the language setting in TomatoCMS configuration file.

Open app/config/app.ini file and change the value for lang setting to your language code, fr_FR, for example:

[web]
lang="fr_FR"

Is there a tool for creating/updating the language file in backend?

Yes. You don't have to create and edit file manually. TomatoCMS provides language editor that allows you to create and update language file easily.

In backend, go to Custom >> Language menu. This page shows all available languages for modules and its widgets.

List of available languages for modules and widgets

(1): Select module

(2): If you want to create language for widget, select the widget that belong to the module you have just selected. If you don't select the widget, this form will create language file for module.

(3): Enter the language code in format of xx_YY. In the above figure, fr_FR means that we are going to create French language pack for news module.

(4): Press Create button to jump to page that allows you to update language file.

(5): List of available languages for each widgets. Click on the language name to go to the updating language page.

You will be redirected to the updating language file like follow:

You can update language file in backend

(1): As I said earlier, the language file was grouped by one or more sections. You can click on the name of section to show or hide all language items that belong to the section.

This is one of reasons why we need section in language file. It is easy for developers to develop and maintain language file. (What happen if the language file consist of too many items? It is not easy for you to find an item, isn't it?)

(2): Click on value that associates with the key of language item to update its value. For canceling, press the Esc key.

(3): If you want to remove the item, press Remove link

(4): You can add new item to given section or create new section.

Does TomatoCMS support other formats of language file, XML, CSV for example?

No, at this version and maybe in the future, TomatoCMS does not support any fomats of language files like XML, CSV but ini.

TomatoCMS uses Zend_Translate component. Although Zend_Translate supports various formats including INI, XML, ... but we choose INI because of two reasons:

- The INI file is simple,

- And processing INI file is simpler and quicker than XML one. It makes our site run quicker.

I didn't see the effect on frontend although I made some changes on language file. What is wrong?

There is nothing wrong here :)

For improving performance of loading and processing language file, TomatoCMS caches language data if it detects the cache was enabled. In this case, you have to clear the cache.

Go to menu Custom >> Cache in backend:

Cache management

(1): The cache type you are using. In this case, our site caches data to files, so it uses Zend_Cache_Backend_File as backend caching.

(2): All language items was tagged Zend_Translate. You can click on tag label to show or hide all cached items which associates with the tag.

(3), (4): You can click on Delete link to delete all cached items of given tag or certain item.

(5): Click on Clear link if you want to empty the cache.

Conclusion

I though that the language editor should allows user to upload new language from local computer. It is useful if user downloaded language files from other site. This maybe comes in TomatoCMS 2.0.2 version.

Now, it is great if you translate TomatoCMS into your language. And there will have many TomatoCMS download versions that include certain language package. Lets us know if you are goting to do this.

Waiting for your translation!

How to install TomatoCMS 2.0.1 by Install Wizard?

Posted by admin at 08:36:42 18-01-2010 in Installation Guide
3986

TomatoCMS 2.0.1 provides Install Wizard which allows you to install TomatoCMS more easy than before. This article will help you go through the steps of Install Wizard.

I assume that you downloaded TomatoCMS and unzipped it into a folder named tomatocms in your web root directory. In localhost, the full path of folder is <Your_Apache_Installed_Directory>/tomatocms.

Now, go to http://yourdomain.com/tomatocms/install.php

Step 1: Checks the requirements

At the first step, Install Wizard will check the requirements of your server. TomatoCMS requires PHP 5.2.0 or newer and following PHP extensions:

gd, json, mbstring, mysql, pdo, pdo_mysql, simplexml, xml, xmlreader.

In addition, a few files/directories have to be writable.

If your server does not meet two conditions above, the Next button won't be visible.

Otherwise, click on Next button to go to next step.

Step 2: Configures your site

IMPORTANT NOTE: You have to create the database before performing this step.

I assume that you created database named tomato_cms and granted all permissions to the user which have user name of tomato and identify by password 123456.

(1): The host name or IP of your MySQL server

(2): The port which your web server use to connect to database server.

You should leave two settings as default.

(3), (4): The user name and password to access the database.

(5): Database name. As I said above, this database have to be created firstly.

Now, jumps to next section which will ask you for your website information.

(1): The URL of your website. If you puts TomatoCMS in web root directory, the URL will be http://localhost or http://YourDomain

Leave it as default.

(2): Name of your site

(3): Select language for your site. TomatoCMS support multilingual site, but there are two languages which was built in, there are English and Vietnamese.

(4): Select template for your site. TomatoCMS support template/skin architecture, it means you can upload and install other template later.

By default, TomatoCMS built two templates which are for news site and bloggers.

(5): Select the skin. At this version, there is only one skin for each template.

(6): Enter the keyword of your site. If you want to many keywords, lets separate them by a comma. This will be taken for meta keyword tag of your site.

(7): Enter description about your site. Like keywords setting, value of this field will be taken for meta description tag.

The final settings are related to date time.

(1): Select your timezone.

(2), (3): Enter your date and date time formats. You can find all PHP date time settings here.

Press the Next button to go to next step.

Step 3: Completes the installing

Final step is coming.

YOU HAVE TO PRESS THE CONFIRM BUTTON AT THIS STEP to complete installing TomatoCMS.

After pressing this button, you can go to the administration section via address: http://Your URL/admin/

The default username and password are admin (Don't forget to change this password).

Step 4: Import our sample data

Although this step is not required, but we recommend you to perform this step to avoid most popular issues when you manage your site in backend section.

The sample data, is collection of SQL queries, which can be imported from your MySQL client tool like phpMyAdmin. This file is tomatocms_sample_db.sql located in install folder.

POPULAR ISSUES:

I installed the TomatoCMS successfully, but when logged in to backend and try to access some other admin sections via top menu, I always received the error which showed that some resource was not found like

Resource 'core:cache' not found

What should I do?

Install Wizard, in fact, will install the database schema and minimum data which ensure your website run correctly. If you want to run other functions in backend, due to permission system, you have to create resource first.

In backend section, go to User >> Privilege menu.

Clicks on Add links to create resource and [+] buttons to create actions associated with resource.

Repeats this untill all resources and actions created.

This error does not occur if you imported sample data (described in step 4 above).

It's inconvenient so we will fix this in next version.

If you have trouble with installing TomatoCMS, leave your errors in the comment or drop an email on core@tomatocms.com

Thanks you so much.


TomatoCMS 2.0.1 released

Posted by admin at 06:59:31 18-01-2010 in News
1629

After releasing TomatoCMS 2.0 version, we received many feedbacks. Most of users had problems with configuration and didn't know how to make TomatoCMS run correctly, especially when users put TomatoCMS on sub-directory of web root folder. And there was not install wizard at that time.

Now, after hard working days, we released the 2.0.1 version which provide Install Wizard, improve comment system and many fixed bugs.

What are new in TomatoCMS 2.0.1 version?

1. Install Wizard

Now, Install Wizard only take three steps to install TomatoCMS. You can install it in root web directory or its sub-directory.

2. Comment system was improved strongly

- Support nested, unlimitted level comments:

 

- Shows avatar of commenters:

- Allows users to use some simple HTML tags in comment:

- User can reply any comment in thread:

- Administrator can apply hooks for filtering the content of comments.

Below is two examples which was built already in TomatoCMS. The first one replaces special characters with emotion icons as follow:

And the second one formats comment in pre-defined programming language style which is very useful for programmers' blogs:

 

- Prevents spams:

At this version, we made an attempt at preventing spams by using the service provided by Akismet.

To use this, you have to register an free Akismet API key. (We will post new article about this)

3. Update informer

In backend, user will receive the message that informs new version is available if any.

 

Beside the new features listed above, this version fixed many critical bugs.

The most important issue is that all links was changed to absolute links instead of relative links like before. That mean the website work correctly if users put TomatoCMS into sub-directory of web root directory.

We also display the error message if your PHP version does not meet requirements:

Lets download and reports bugs.

Thanks you so much!

iTomato widget: Visitors can even customize your pages

Posted by admin at 19:05:38 09-01-2010 in Widgets
1677

iTomato = I Tomato. This widget provide visitors the ability of customizing pages on your website. At this initial version, your visitors can drag and drop the widgets to desired position on page. Try it on home page of TomatoCMS Demo.

It does not take much time to activate this feature. Like installing other widgets, you have to use Layout Editor tool to insert this widget to page.

We recommend you insert this widget to full row container at the bottom of page as follow (Assume that you want to insert this widget on your home page):

Step 1: Go to Layout Editor page

Go to menu Extends >> Template and click on the List of pages link associated with current template

At new page which list all pages on current template, click on the Edit Layout link associated with Home page

Step 2: Insert new full row container

Now, you are on Layout Editor page. Click on plus link (+) next to 12 cols container to insert the full row container to the bottom of page.

Step 3: Insert the iTomato widget

- Click on the Widget tab

- Click on the core module

- Drag the iTomato widget and drop it to the 12 columns container you have just created above.

- Press Save button to save the layout.

Now, refresh your home page. Moves your mouse to head section of each widgets and try drag and drop the widgets to other position on page. Refresh the browser and you will see that the widgets has been updated their positions.

Roadmap

Some features the iTomato widget should have:

- It should provide the Reset button that allow visitor to reset the layout of page. At this time, the only way to reset the layout is that you have to clear the cookie of your web browser.

- Visitor can remove the widgets from page. Of course, some widgets don't allow visitor to do this.

- Visitor can do some settings to each widgets. For example, visitor can set the number of video clips that will be displayed.

MobileAgent plugin: Support browsing by mobile devices

Posted by admin at 14:44:59 08-01-2010 in Plugins
1705

Do the TomatoCMS support browsing by mobile devices? Yes!

TomatoCMS already have MobileAgent plugin and mobile template for this purpose. Try it online by going to http://demo.tomatocms.com by your mobile phone. The plugin support most mobile devices/browsers including iPhone, Nokia, Samsung, Sony, Palm, PocketPC, ...

To install this plugin, go to Extend >> Plugin menu in administrator section. This page list all plugins on the system.

Go to row that display information of mobileagent plugin and click on Install link:

Now, go to your website by browser of your mobile phone to see the result:

 

NOTE:

1) You can try this plugin on your Firefox browser by installing User Agent Switcher plugin. This Firefox plugin allow you to view the website on various agents including iPhone, search engine bots, ... It also provides the list of agents that you can import to.

The above screenshot was captured on my Firefox which was installed User Agent Switcher 0.7.2 and the iPhone 3.0 agent was activated.

2) If you can not see the different when visits our demo by PC and mobile devices, leave in comment your mobile name/manufacture as well as its browser name. So we will add it to the list of supported browsers later.

About

This is official blog of TomatoCMS, an open source CMS powered by Zend Framework, jQuery and 960 grid.

TomatoCMS v2.0.3 release left

Collapse

Video Clip

Collapse
Clip present Layout Editor of TomatoCMS

Poll

Collapse
How do you know about TomatoCMS?
  • Google
  • RSS channels
  • PHP developer forums
  • Other

Updates from Twitter

Collapse
  • Upload file word, excel, zip in #Tomatocms http://t.co/yfJ91C2 #cms #opensource #php
    at 266 days ago
  • How to add pop-up module in #tomatocms? http://bit.ly/qZKAUv #cms #php #opensource
    at 294 days ago
  • RT parorrey Fix Images & Media Paths Problem for TomatoCMS 2.0.8 Installation with Sample Data | .. http://bit.ly/qYFSUO
    at 311 days ago
  • RT hollymollyz: TomatoCMS - Open source CMS powered by Zend Framework, jQuery and 960grid: TomatoCMS is an ope... http://bit.ly/iZELlO
    at 321 days ago
  • TomatoCMS 2.1.0 will be delayed http://bit.ly/jL46wB
    at 345 days ago
  • VietNamese: Cài đat #Tomato v2.0.8 bi loi o buoc 2 http://bit.ly/jFzL5E #php #opensource
    at 346 days ago
  • RT krixnetworks: What’s TomatoCMS and what makes it different?: TomatoCMS considers each web page made up of… http://goo.gl/fb/HFcU7
    at 346 days ago
  • RT rubenvincenten: Cool, @TomatoCMS is een CMS systeem gebouwd op @zend #zendframework, jquery en 960grid :)
    at 353 days ago
  • RT bestopensource: TomatoCMS - Impressive and Powerful CMS http://www.findbestopensource.com/product/tomatocms #FOSS
    at 364 days ago
  • RT vietteam: TomatoCMS is an impressive, powerful Content Management System. It's free and open source licensed under http://bit.ly/mEhRSL
    at 373 days ago

Keep in touch

© Copyright 2009 TomatoCMS Core Team