In this article we wish to explain a peculiar feature of Zenukers Accessible CMS Open Source: HTML pages generation.
Usually, a CMS works this way: manager sets the site and uploads contents (texts, images, downloads and more). These information are set in a database. Then, there are dynamic web pages (asp, php or other scripting systems), which 'read' the databases content and make the page the user see on his monitor.
The dynamic page contains, in short and simple, a kind of small programme that, on the basis of a preloaded layout, 'creates' the web page the user wants to display. In the database there are texts, references to the images to incorporate and all the display settings.
Zenukers is a little different. Instead of having dynamic pages which read the database, we developed a system that uses those contents to 'write' static pages.
Let’s make a practical example. In the database there’s a news named News of the day, inserted in On focus category. Let’s also hypothesize that it has an ID equal to 34.
With a traditional CMS, there would be a news.asp page that, through a parameter in the link (news.asp?id=34), is able to read the news with an ID equal to 34. Roughly, the complete link of a news displayed in such this way could be the following:
It changes very little for the manager. The difference is that the system doesn’t 'works' when the user watches the page, it works when the manager inserts it. From that moment on, infact, a static page (written in accessible and semantic W3c valid Xhtml) is generated.
Back to our example: when we insert that news, and asp page of the Control Panel will use the database contents to 'write' the page. First of all, it will verify the element, in our example called news. Therefore, it will look for a subfolder, inside the news folder, which has the name of the category, in our example named /on-focus. If the subfolder doesn’t exist it creates it; inside it, it creates a further subfolder with the name of the news. In our example, it will be /news-of-the-day. Finally, inside this folder it will create a default.html static page that actually contains the news.
Note: that the site structure provides for specific folders for the several languages that may be activated. As better explained in the Site structure of the Guide, every language has its own specific version folder (/it/ for Italian, /en/ for English and so on). Infact, HTML pages of the elements are created inside specific version folders.
Let’s go back to the example. The URL of the news will be:
This sistem is adopted for all the site pages, even for the strategical ones like sitemap, credits or accessibility declaration:
These pages are preloaded on Zenukers. Speaking about indexation and placing, the creation of URLs formatted this way is a considerable advantage.
You may read the general advantages of this system in the Static or dynamic pages post. Talking about disadvantages, we can say that the only one is that static pages don’t update automatically if you modify the site structurally. That’s why we developed a number of solutions that allow to keep the site always 'fresh'.
An area of the control panel is dedicated to the regeneration of HTML pages of the site. In this page, a tree-structure is shown to explain all the site contents. When you click on a kind or on a category, all the selected elements will be regenerated. If you made substantial changes (a changing in the box of the columns, or a new setting of the HTML pages content, for example), all the pages will be updated according to the new settings.
Note: regeneration is a system that uses considerabily the server resourches, causing an heavy slow-down of the site. Therefore, we suggest you to regenerate the pages in the hours you expect a less access of users. It’s possible to set a maximum limit of HTML regenerated pages, not to keep the server busy too long.
Some boxes display in the pages some contents which are too often uploaded, making impossible a constant regeneration, especially for big sites.
These boxes, therefore, can be displayed in ajax mode. This way, although they are inside a static page, they will dynamically upload contents.
As shown before, some pages have been preloaded, because they’re used to give basic information about the site. The content of these pages can be modified, but they have been developed to 'adapt' to the general settings of the site, by 'reading' the configuration and, therefore, changing the content consequently.
In addition to the pages the manager inserts, the system generates a number of pages (named tags pages) which collect all the elements containing a certain keyword. A list of elements (news, articles, images, etc..) the keyword has been assigned to will be also displayed. The tags pages have an address like this:
When you insert a new element, you need to regenerate the tags pages of the keywords assigned to the element.
For example: if the keywords journalism and information have been assigned to News of the day, it will be necessary to make the tags pages for these two keywords. Or update the existing ones, if you used these keywords previously for other elements.
Le pagine di queste keyword avranno un indirizzo del genere:
When you insert a new element, the system memorizes the assigned keywords and suggests, in the Main page of the Control Panel, a button for the regeneration. The button opens a popup which gives start to the generation of the tags pages of the keywords used in the modified elements.
Obviously, it’s not necessary to regenerate all after each insertion. It’s possible to insert, modify or delete as much contents as you wish, before generating the tags pages. The system will memorize the used keywords and it will rigenerate them when you’ll ask it.
A similar system has been developed for the sitemap and for the Rss. It the contents are changed, buttons will appear in the main page of the Panel, to generate respectively the Sitemap and the Rss. Talking about the sitemap popup, the first action made is the regeneration of the sitemap.xml. When the sitemap.xml is generated, several actions are suggested, like the generation of the html version of the sitemap (http://www.nomesito.com /en/informations/tools/sitemap/) and the sending of the sitemap.xml to the search engines Google and Bing.... and it’s not necessary to underline how important is this for an optimal indexation.
Note: missing or delayed regeneration of tags pages, sitemap and Rss can create Broken links mistakes in the site. That’s why we suggest you to keep these pages permanently updated.
In Zenukers versions of the content in different languages are available on separate HTML pages. For each active language on the site there is a folder version. This folder contains all the HTML pages of content for that version, divided into sub-folders.
Using the tools of the Control Panel is regenerated only the current version, depending on the choice made by the select at the top of the panel. If a site is active in several languages, therefore, must be passed regeneration carried out in each version.