NewsFeaturesDownloadsDevelopmentSupportAbout Us
Development

Development

From LifeType Wiki


Documentation useful for plugin developers and for anyone wishing to know more about the inner workings of LifeType.

[edit] Model-View-Controller in LifeType

Before diving into more interesting stuff, it is very important to become acquainted with the most basic principle in the architecture of LifeType: The Model-View-Controller pattern (MVC) This patter is not only used internally but it is also mandatory for plugins wishing to register new options in the admin interface or offer new pages via the public interface.

Model-View-Controller in LifeType

[edit] Plugins

There is quite a lot to say about plugins in LifeType 1.0 since it is one of the most important parts of the platform and it is what allows to extend the features of LifeType almost endlessly. Everything has been moved to its own section: Plugin Development. In case you're planning to submit your plugins, please take a look at the Guidelines for submitting plugins.

[edit] Forms and data validation

There is one whole section dedicated to forms, data validation and how to work with them. Please take a look at it: Forms and data validation

[edit] The global configuration API

The global configuration API is a very simple and very easy to use API that allows LifeType code to save and retrieve information to and from the database (or a .php file if needed) It is used in many places throughout the code so it is important to get familiar with it: Global Configuration API

[edit] The global plugin configuration API

Since LifeType 1.2, configuration options offered by plugins can be controlled at a global level by an administrator, and even forbid users from altering these parameters. There is more detailed information in the document Plugin Development#The_Global Plugin Settings framework.

[edit] The menu API

The menu API is in charge of generating the layout of the menus in the LifeType administration interface based on the contents of the menus.xml file. It also allows plugins to add new entries anywhere in the menu hierarchy so it is important for plugin developers to become familiar with it too: the Menu API

[edit] The permissions framework

Since LifeType 1.2 access control of actions is handled via permissions. There is a whole set of classes that controls permisisons and relationships between users and permissions, and it is described with more details in the permissions framework.

[edit] User interface guidelines

External plugins should share as much as possible from the default look-and-feel and therefore it is very important for us that they follow the same principles and ideas like the rest of the code: User Interface Guidelines.

[edit] Other useful stuff

  • It is also possible to create your own stripped down version of LifeType by building your own index.php and filling in the appropriate bits and pieces to get everything running. Take a look at Integrating LifeType.
  • LifeType provides a simple framework for developing unit tests. It is not only useful to developers of the core code but also to users wishing to customize LifeType, as it ensures that their changes do not break the expected funcionality of classes. Please see Unit Testing in LifeType.

[edit] Organization of the source code tree

Understand how LifeType's source code tree is organized and where goes what: Source Code Organization

[edit] Coding Guidelines

LifeType has some Coding Guidelines so that code written by different persons can still be easily read. Please have a look in order to familiarize with it.

[edit] The Subversion repository

There is more information about the organization of the Subversion repository here: Subversion Repository

Instructions for how to keep your locally developed code synchronized with updates from the development team are here: Merging with Subversion

[edit] Roadmap

Please see a tentative Roadmap that describes where LifeType is heading to.