Learn

Fruml Documentation...

Fruml Terminology

Like any modern content management system, Fruml comes with its own terms that might not be familiar to all users. While not knowing these terms at the start will not hinder your ability to create a great website, understanding the terms may help you when you want to extend your content even further.

Site A site is just that: a website. You can host as many sites as you want in Fruml. Because you can manage all your sites in one single Fruml installation, all elements such as templates, components, dictionaries and media items can be shared across all your sites.
Page A page is where you enter content for your visitors to view, and is a resource that your visitors can request. Usually that'll be an HTML document, but it could be an XML document, a JS library or a plain text document. With the correct configuration, a page can be any type of resource.
Template Templates act as containers for your web page content. Generally a template will consist of HTML code, into which a page's content is parsed before it's sent to the browser.
Page Type A page type defines what type of content the page will consist of, and more importantly, which fields will be available in the CMS when you edit the page and which will be parsed into the page's template before it's sent to your visitor's browser.
Media Media items are resources that can contain any type of content you might want to include in your pages, such as images, mp3s and videos, but also items that people can download such as word processor documents, spreadsheets or zip files.
Dictionary Dictionaries are used to translate words and phrases into different languages. You can use them in combination with pages and templates to provide similar sites in different languages.
Component Components add extra functionality to your pages. They can be used for things like generating simple menus, handling form submissions or sending e-mails. Components consist of PHP code which uses the Fruml API to meet various goals.
Plugin Plugins can add new functionality to your websites and to Fruml CMS itself. Plugins could be shopping carts, photo galleries or comment modules, and can even be used to alter the core functionality of Fruml by hooking them into Fruml's event management system. An example of this could be a plugin that minifies HTML output before sending it to the browser.
Custom Field Custom fields allow you to design fields which can then be used in several different ways. For instance, page types consist of a collection of custom fields which in turn define the fields available to an editor when editing a page.
Data Store The data store is a mechanism for saving information to the database without having to create your own database tables. A very simple example is a page-hit counter - you could create a data store which stores the number of times a certain page has been accessed.
Content Provider A content provider is a Fruml CMS entity which is responsible for processing a certain type of Fruml tag. The [page] tag, for example, is processed by the Page Content Provider. While most installations will not need extra content providers, the functionality is in place to let you create your own Fruml tags to process different types of content in your websites.
Custom Tag Custom tags add shortcuts for outputting data when you write your pages. As an example, you could create a custom tag to replace all instances of :) with a smiley image, or create a tag such as ~edited~ to automatically output a string showing when the page was last edited.
Widget Widgets extend the data that you see on the Fruml Dashboard home page. Examples of widgets are a list of recently edited documents, a notifier that tells you if you have new messages, or even a box which show a weather report for the coming days.
Event Using Fruml's event manager, you can extend the functionality of the system by hooking into certain events. Examples of events are when a page is saved (you could use this event to scan for blacklisted words in page content) or when a page is generated but not yet sent to the browser (which you could use to minify the HTML output).