From Habari Project
Developing for Habari is a great way to get a gentle introduction to the code base. This page links to resources useful for extending Habari.
There are certain concepts about developing for Habari that you should know before you embark on the journey.
- Coding Standards: Generally accepted practice of formatting code within the project.
- CSS Coding Standards: Generally accepted CSS practices within the project.
- Debugging Tips: Some tips for getting started with debugging in Habari.
In Habari, Themes and Plugins are functionally almost the same thing. We call these things "Pluggable" because they allow you to plug new features into Habari.
Themes allow Habari's output to be customized to look like whatever you like. They can also provide functionality for a site that may require special additional code.
We're working hard to make theme development easy for new themers. This information should help.
Here is a summary of the information you'll find on the Themes page:
- Creating a Custom Theme : A good overview of theme building.
- Template File Hierarchy : A summary of the templates used when serving specific requests.
- Customizing Theme Behavior : A starting point for providing custom data to your theme.
- Template Tags : Useful information whether you're used to building WordPress themes or not.
- Code Submission : How to submit code and patches for Habari
Plugins add functionality to Habari, sometimes providing additional interfaces for users to supply new content. Plugins can also add new templates to themes to help output any data that they collect.
Here is a summary of the information you'll find on the Plugins page:
- Creating A Plugin : A comprehensive, step-by-step overview of how to create a plugin.
Because Themes and Plugins are so alike, there are many features that work the same way in both. Themes can implement plugin-like features, and plugins can make new templates to the output. There are a few differences, but there are some things that are common between the two that are useful to know.
- Rewrite Tutorial : How to construct rewrite rules for Habari.
- Hooks : A list of available hooks for your themes and plugins.
- Stack Class: The Stack class allows a developer to create a "stack" of items for later output.
- Managing Media: How Habari helps developers manage media from a variety of sources.
- QueryRecord : The base class for most database records. Its methods are available to a lot of Habari objects.
- Database Schema : Structure of the Habari Database.
- Multisite : How multi-site configurations work in Habari.
- User Overrides : How to use the `/user/classes` and `/user/themes` directories to override core Habari functionality.
Resources regarding core code
In order to build exciting Plugins and Themes, sometimes a better understanding of the inner workings of Habari is required. The core development hub provides resources useful for obtaining a better understanding of the core Habari functionality.