So far we have been focusing our effort on development tools. But this doesn't mean that we have forgotten about non-technical users of the platform. At the end of the day non-technical people will use OctoberCMS to manage their website contents, after all that's what a CMS is made for. We're trying to keep the Yin and Yang balance between the craziness of development and flexibility, versus the end user's needs for simplicity and friendliness. That's why we are building a new plugin, simply called Pages.
What is the Pages plugin?
The plugin allows non-technical users to add static pages and extend menus on the website. The Pages back-end area is simple and friendly, so that everybody could use it without any special training. It's a developer's task to prepare the website structure and implement features that would allow the client to extend it with static pages. The client's task is just clicking nice-looking large icons and typing text in WYSIWYG mode. In many cases the client won't even see the complex and perhaps scary CMS area of the OctoberCMS back-end.
Each page has a title, URL and the contents. The URL is not dynamic - it can't contain any parameters and should be provided explicitly, for example
/about/location/canberra. In order to simplify the user experience even more, the static page URLs are generated automatically based on the static page position in the page tree and the page title, but they can still be customized to anything else manually.
Static pages are hierarchical. The hierarchy affects only the way that pages are displayed in the automatically generated menus and breadcrumbs, which are described in more detail below. Pages can be reordered by using drag-and-drop, pages can be dragged from one parent to another.
The Media manager is a part of the plugin that allows end users to upload and use media files of different types from different sources. It can be images or other file types, uploaded or referred from CDNs, Pinterest and other places. Files can be organized into galleries or collections. When an image file is inserted into a static page the user can resize it and specify different alignment options. The Media manager itself includes too many features to be described in this post. We will cover it in another post.
The plugin includes a Menus feature. Users can add an unlimited number of menu items, sort them and change the item position in the menu tree. There are different types of menu items - static URLs, links to CMS pages, links to static pages, and some others. The most interesting menu type is the static page. It (optionally) allows the menu to generate items automatically to follow the static page tree, or a part of the page tree. It can allow clients to add new pages to the website and those pages will be automatically added to the website menus.
There could be multiple menus, each having its own structure. For example - main menu, sidebar menu, footer menu, and so on. Only your imagination limits the possibilities of using the menu system!
Using text blocks is another feature introduced by this plugin. Text blocks are WYSIWYG blocks that can be added by a developer or a client and then reused in different static pages with a special tag.
The technical part
Like any theme object in OctoberCMS - static pages, menus and text blocks are files stored in the theme directory. Internally the plugin is based on the CMS module. We won't be reinventing the wheel here - many things are already implemented in the CMS. Static pages and text blocks use the CMS content blocks feature. Menus are defined in a new theme meta directory, that will be supported by the CMS module soon. The purpose of the meta directory is to store theme-based meta data - something that is not visible, but still a part of a theme. This approach allows themes to be shared together with static pages and menus. It's convenient - when you develop theme for the Marketplace you can define the basic website structure and provide some examples of the menus and static pages.
The Pages plugin makes OctoberCMS simpler, more client friendly and usable. We will continue doing things this way, building the best CMS platform for everybody.
Update: the beta version of the plugin has been published on Sep 3.