User:michaeltwofish
From Habari Project
Feel free to ping me about any of this stuff on #habari.
Contents |
Documentation
- Improving documentation
- Some drafts of pages wiki structure (may be outdated)
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
- Creating a complete and warning-free implementation
- Support media through silos
- Theme output for 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 Gears
- HTML5 offline
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
- Core:Testing
- Core:Benchmarking
- Caching
- Dev:Working with URLs - rewrite rule stuff. Dev:Adding Rewrite Rules should redirect there.
- Backing up your Database
- Core:Changing API and Database Versions - instructions for changing API and database version numbers, and guidelines on when they should be changed.
- Dev:Adding Metadata to Posts - describe PostInfo and give examples.
- Dev:Running Periodic Tasks - using the cron classes.
- Dev:Logging Events - using the log classes.
- Dev:Working with Session Data
- Managing Spam
- Displaying Code in a Post
- Dev:Translating Themes and Plugins - would we need a Translating Themes and Plugins, a page for users?
- Core:Character Encodings - anything to do with character encodings, how we store stuff in the database, what extensions we're using, things that might go wrong. Not that I have any idea about any of this stuff, but I know I don't know, that's why I want the page.
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.
