The API documentation is unfinished, which is probably why you missed
it. I had to find what I know about Habari by looking at it's core,
and what a sight it is.

Let me attempt to explain how to make a basic plugin.

(Also, sorry about a mistake I had. It is display_post not
display_entry. But continuing...)

<?php

// First you need to create a plugin class
class MyPlugin extends Plugin // always extend Plugin (for plugins)
{

        /**
         * return information about your plugin, this is required
         */
        public function info()
        {
                return array(
                        'name' => 'My Plugin',
                        'version' => '1.0',
                        'url' => 'http://myplugin.rockhabari.com', // url to 
some
information on your plugin
                        'author' =>     'Sir TeLebing',
                        'authorurl' => 'http://mysite.tld',
                        'license' => 'Apache License', // any license, try to 
be compatible
with Apache
                        'description' => 'My plugin rocks.' // what it does (a 
little more
descriptive than this)
                );
        }

        /* Now, it comes the hard part
         * Habari has two key features for using their API
         * One is an Action and is called when events happen.
         * The second is a Filter which is used to change information.
         *
         * Within a plugin you can specify functions with
         * action_ or filter_ in the begining of the function name
         * and if the
         */

        /*
         * Filter "theme_act_display_post" is called when a post is viewed
         */
        public function filter_theme_act_display_post( $handled, $theme )
        {
                // This is the Slug of the post being viewed.
                $post_slug = $theme->matched_rule->named_arg_values['slug'];

                /**
                 * Now you can use that slug to go and find the
                 * Post ID using the Post::get() function like..
                 */
                $post = Post::get(array('slug' => $slug));

                /**
                 * Now you have all the post information.
                 * $post->id will be the ID. You can use that
                 * for creating a statistics database.
                 */

                /**
                 * Also, in this case, you must return false
                 * If you return true, Habari will think that this Plugin
                 * Just handled the request and won't actually show the
                 * post.
                 */
                return false;
        }

        /**
         * Filter "theme_act_display_page" is called when a page is viewed
         */
        public function filter_theme_act_display_page( $handled, $theme )
        {
                return false;
        }
}


On Nov 11, 8:29 am, SRi <[EMAIL PROTECTED]> wrote:
> Thanks, but that kind of went over my head :( Can you recommend some
> example plugin which I can refer? And were can i find the
> display_entry, display_page, etc in the api documentation? Can't seem
> to find it (Shouldn't the api documentation have a search?
>
> On Nov 10, 7:24 pm, Benjamin Hutchins <[EMAIL PROTECTED]> wrote:
>
> > In this case it's an event. Questions like this might be best asked in
> > the IRC chat room, but it won't truly matter, someone will be around
> > to
> > help you.
>
> > The action is display_entry.
> > Some other actions you might want to be aware of in your stat plugin
> > are:
> > display_entries (when browsing through multiple posts)
> > display_page (when looking at a page)
> > display_search (when running a search)
> > display_404 (when looking a 404 File Not Found error page)
>
> > On Nov 10, 8:47 am, SRi <[EMAIL PROTECTED]> wrote:
>
> > > On Nov 10, 4:20 pm, "Michael Harris" <[EMAIL PROTECTED]>
> > > wrote:
>
> > > > 2008/11/10 SRi <[EMAIL PROTECTED]>:
>
> > > > > Just moved to habari and I must say I'm really impressed.
>
> > > > Welcome! Glad you're giving Habari a spin.
>
> > > > > Thought I'd
> > > > > contribute my bit to the project. I'm planning to work on a simple
> > > > > stats plugin, which displays the number of hits per post, top posts,
> > > > > etc. I've been through the wiki, but not able to decide where to
> > > > > start. If someone can point me in the right direction, I'll give it a
> > > > > shot :)
>
> > > > If you mean just a general place to start learning about creating 
> > > > plugins,
> > > > I'd suggesthttp://wiki.habariproject.org/en/Creating_A_Plugin. The best
> > > > other resources are the plugins in the -extras repo (have a look 
> > > > athttp://trac.habariproject.org/habari-extras), and the community on 
> > > > this
> > > > list for specific questions, and #habari IRC for a really good chat 
> > > > about
> > > > stuff.
>
> > > > --
> > > > Michael C. Harris, School of CS&IT, RMIT 
> > > > Universityhttp://twofishcreative.com/michael/blog
> > > > IRC: michaeltwofish #habari
>
> > > Thanks for those links. I've started to look around the API
> > > documentation to get a hold of things. Need one small clarification.
> > > What action/event occurs when a post/page is clicked (viewed by
> > > someone).
--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/habari-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to