User:michaeltwofish

From Habari Project

Jump to: navigation, search

Blog

Feel free to ping me about any of this stuff on #habari.

Contents

Documentation

Important wiki pages that need to be integrated:

Pages I've asked people to work on:

  • Core:Benchmarking - BigJibby, throw some stuff in about benchmarking with xdebug
  • Dev:Theme_Functions - ringmaster, add an explanation of _(return,end)
  • Caching - BigJibby, this is a user page, and there probably should be dev and core pages too, but anything that's dumped here would be good.

Quality Assurance

  • Unit Testing
  • Continuous integration (Phing, Cruise Control, phpUnderControl, Capistrano, Xinc, Bamboo($$))
  • Number of operations, http://pecl.php.net/package/vld
  • Benchmarking
15:19 < rick_c> turn on db profiling
15:20 < rick_c> or xdebug's profiling
15:20 < BigJibby> and your query logs
15:20 < BigJibby> in mysql
15:20 < BigJibby> it will give you times
15:20 < BigJibby> then write a script to parse, and average
  • Testing plugins. There should be a way to easily add and run tests for plugins.

Refactoring the Installer

The installer has to know too much about supported databases and servers. See #1022.

Some very draft code ideas are at User:michaeltwofish/installer_refactor.

Atom and AtomPub

Implementation notes

  • We save categories as tags. I'm not sure that we should blindly do this. What if the user has a categories plugin?
  • We should return a suitable header when trying to PUT to a non-existent post.

Habari File Manager

  • Access interface through Manage -> Files
  • Drag and drop file movement
  • Click to rename
  • Click to edit metadata
  • Multiple file uploads
  • Upload zip files
  • Preferably manage media from all silos, not just the Habari Silo.

Rules plugin

A plugin that allows administrators (via ACL token) to define chainable rules with associated actions. It would be most interesting when combined with other plugins. This would be useful as the basis for all notification type plugins, such as if post X has a comment send an XMPP notification to user Y. It would also be useful for defining workflows, such as if Y saves a post, an email should be sent to Z, who can publish it.

Need to find possible triggers and possible actions. Triggers are calls to Plugins::{act,filter} (how can these be found?). Actions can be found by reflecting classes that descend from Pluggable.

Search

  • Should be entirely replaceable
  • Index IsContent ?
  • Use index for related posts, tag suggestions

WYSIWYG editors

A tour plugin

  • To be used where a site is built for a client
  • Outline capabilities based on the logged-in user's permissions

Offline support

Google Wave

  • Offer posts and comments as waves

Correct My Typos plugin

  • Allow readers to highlight spelling and grammar errors on a post and write corrections.
  • Readers who submit corrections would see the corrections (store that they should in a cookie)
  • The admin and/or author would get a comment (a new 'correction' comment type?).
  • The correction could be rejected (and deleted) or accepted.
  • An accepted correction would patch a post.
  • Those who submitted the correction could configurably be notified.

RandomGetter plugin

I'm not sure how this might work, but a plugin that provides an interface for getting random objects. An example would be $theme->get_random('image'). The idea is that you could drop in an implementation that returns a random thing, a quote from a database, a random post, whatever.

So, maybe, an interface RandomGetter and you could drop getters, which is just a class that implements RandomGetter, into a getters directory.

Wanted Pages

API Improvements

  • Posts::count_all() is poorly named, as it actually counts posts retrieved by the last call to Posts::get() that didn't return a single Post. Rename to Posts::count_retrieved()? Other suggestions?

Miscellaneous

  • Form mailer
  • OpenID
  • Taxonomy
  • XMPP integration, notification
  • OMB support
  • Automatically create a FormUI CRUD form from QueryRecord classes.
  • Comments as content types, with a comment type taxonomy that plugins can add to (site, pingback, wavelet, whatever).
  • Dashboard modules as blocks/areas.

Ziada Project

An unofficial community repository for Habari

For themes and plugins that can be licensed with the Apache Software License, there's the Habari Extras repository.

Some things don't belong in there, but we'd still like to collaborate on them. That's what this project is for.

Personal tools