User talk:Blakej

From Habari Project

Jump to: navigation, search

Habari Screecast - Introduction

What is Habari?

Habari is a free, next-generation, software blogging program, developed by the community, for the community.

Who is Habari for?

Habari is for people who want total control over their blog. With multi-site support, flexible templating options, and extensibility through plugins, Habari keeps you in control.

Why should I use Habari?

Habari's administrative user interface is far superior to any blogging system currently available. This starts with the most important page of any blogging tool: the entry creation page. Habari presents you with the options you need on every post, and then gets out of your way so can focus on writing.

These days, though, blogging is not just about words. It is about sharing all kinds of content, including music, photos, and video. Habari easily integrates with common sources of other media, like flickr or viddler, making adding this content a point and click affair.

Habari's interface is very easy to use. Other systems bury options and settings in multiple levels of nested menus. In Habari, everything is available via a single menu. This menu even supports keyboard shortcuts for quick access to your most used pages. Just hit 'Q' to open the menu.

Habari also comes with an advanced content management interface, allowing you to quickly find what you are looking for and perform common actions. Habari displays a time line of all of your posts. You can quickly select posts by date by dragging the loupe across the time line. There is also a search bar which will let you filter your results.

Wrap up

Start using Habari today, and check back at for more screencasts demonstrating specific Habari features.

Plugin Configuration


  • extremely simple to make basic configuration panels
  • while at the same time allowing for completely custom panels for plugins which have very complicated options

Currently, we have an action hook action_plugin_ui which outputs its own option form. With the enhanced power of the new FormUI, I think that both simple and complicated plugin options can be accomplished by requiring plugins to create and return a FormUI object. This object is then integrated into the options page by wrapping it in a FormControlWrapper and appending it to the options page form.

The way this would work is with something like:

$options_form = new FormUI( 'options' );
$forms = array();
$forms = Plugins::filter( 'plugin_config', $forms );
$forms = Plugins::filter( 'plugin_modify_config', $forms );
foreach ( $forms as $name => $form ) {
    $slug = Utils::slugify( $name, '_' );
    $options_form->append( 'wrapper', $slug, 'optionswrapper' );
    $options_form->$slug->append( 'static', '<h2>' . $name . '</h2>' );
    $options_form->$slug->append( $form );

$forms is an associative array, where the array keys are the plugin names. The second filter allows plugins to add to the settings of other plugins (e.g. a podcasting plugin might modify the feed settings form).

Personal tools