Features overview: editing month view of the calendar

By clicking the rightmost icon of the top bar, anybody with an appropriate permission can see the skeleton of a page. For example this is the structure of the previous calendar page.

A page is not a monolith script, but it's composed of slots. In this example there are five slots used. CORE/NAV is the navigation bar across the top, CAL/MONTHSMALL is the mini-calendar on the left, CAL/INDEX is the mini-navigation under the small calendar, and USER/LOGIN is logout option under that, and CAL/MONTH is the month view on the right. Slots are placed on a 3x6 grid and they can be moved around, they can be deleted, they can be edited, they can be replaced with your modified ones and new slots can be added. Slots have a PHP source and a Smarty template, to keep source code separated from HTML.

In a famous open source groupware application, the calendar homepage did use Smarty templates, but was a monolith of over 1300 lines. In our example cal/monthsmall is 103 lines and cal/month is 210 lines. This is not just numbers, it can save you headaches.