Benjamin, can you add this wonderful example to the wiki, on or around  
the writing plugins page?

And thanks for hacking this up, it is great.

chris

On Nov 11, 2008, at 8:42 AM, Benjamin Hutchins wrote:

>
> 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