phpgroupware-developers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [phpGroupWare-developers] Proposal for new menu system for phpGW


From: Dave Hall
Subject: Re: [phpGroupWare-developers] Proposal for new menu system for phpGW
Date: Fri, 28 Dec 2007 20:45:29 +1100

Hi all,

As there was no comments on this, I have implemented it in the resight
tree.  Expect to see it in trunk after the next merge - coming RSN

It is working well.  It still needs some polish, but I think people will
like it.

Cheers

Dave

On Wed, 2007-12-12 at 00:29 +1100, Dave Hall wrote:
> Hi all,
> 
> It has been clear to me a for a while that the current hook_sidebox,
> hook_admin and hook_preferences is inadequate for phpGW now.
> 
> I think we should move to a more generic menu system, which can be used
> in different ways across phpGW, for example, idots could keep its
> "sidebox menu", while another template set may implement a preferences
> menu on each page.  It should also be possible to merge the folders
> application functionality into any change.
> 
> The new system should use the method based hooks system.
> 
> The hook would be called with no arguments.
> 
> The hook method should return the following data
> 
> array
> (
>       'admin'         => array
>                               (
>                                       array
>                                       (
>                                               'url' => <link>,
>                                               'text' => <text for link>,
>                                               'title' => <optional hover 
> text>,
>                                               'img' => <optional icon for 
> item - may not be implemented by all templates>',
>                                               'children' => array(<child 
> nodes same structure as above - optional>)
>                                       ),
>                                       array
>                                       (
>                                               'url' => <link>,
>                                               'text' => <text for link>,
>                                               'title' => <optional hover 
> text>,
>                                               'img' => <optional icon for 
> item - may not be implemented by all templates>',
>                                               'children' => array(<child 
> nodes same structure as above>)
>                                       )
>                               ),
> 
>       'preferences'   => array
>                               (
>                                       array
>                                       (
>                                               'url' => <link>,
>                                               'text' => <text for link>,
>                                               'title' => <optional hover 
> text>,
>                                               'img' => <optional icon for 
> item - may not be implemented by all templates>',
>                                               'children' => array(<child 
> nodes same structure as above - optional>)
>                                       ),
>                                       array
>                                       (
>                                               'url' => <link>,
>                                               'text' => <text for link>,
>                                               'title' => <optional hover 
> text>,
>                                               'img' => <optional icon for 
> item - may not be implemented by all templates>',
>                                               'children' => array(<child 
> nodes same structure as above>)
>                                       )
>                               ),
>       'application'   => array
>                               (
>                                       array
>                                       (
>                                               'url' => <link>,
>                                               'text' => <text for link>,
>                                               'title' => <optional hover 
> text>,
>                                               'img' => <optional icon for 
> item - may not be implemented by all templates>',
>                                               'children' => array(<child 
> nodes same structure as above - optional>)
>                                       ),
>                                       array
>                                       (
>                                               'url' => <link>,
>                                               'text' => <text for link>,
>                                               'title' => <optional hover 
> text>,
>                                               'img' => <optional icon for 
> item - may not be implemented by all templates>',
>                                               'children' => array(<child 
> nodes same structure as above>)
>                                       )
>                               ),
>       'folders'       => array
>                               (
>                                       array
>                                       (
>                                               'url' => <link>,
>                                               'text' => <text for link>,
>                                               'title' => <optional hover 
> text>,
>                                               'img' => <optional icon for 
> item - may not be implemented by all templates>',
>                                               'children' => array(<child 
> nodes same structure as above - optional>)
>                                       ),
>                                       array
>                                       (
>                                               'url' => <link>,
>                                               'text' => <text for link>,
>                                               'title' => <optional hover 
> text>,
>                                               'img' => <optional icon for 
> item - may not be implemented by all templates>',
>                                               'children' => array(<child 
> nodes same structure as above>)
>                                       )
>                               )
> );
> 
> All images must be relative to phpgw root
> 
> All menus are optional for each application.
> 
> The menu will be cached for user's session.  A trigger should be created
> to clear the cache when certain events happen, such as changing ACLs,
> adding/removing cats etc.
> 
> I think this gives us the flexibility we need.
> 
> Discuss :)
> 
> Cheers
> 
> Dave
-- 
Dave Hall (aka skwashd)
API Coordinator
phpGroupWare
e address@hidden
w phpgroupware.org
j address@hidden
sip address@hidden
       _            ____                    __        __             
 _ __ | |__  _ __  / ___|_ __ ___  _   _ _ _\ \      / /_ _ _ __ ___ 
| '_ \| '_ \| '_ \| |  _| '__/ _ \| | | | '_ \ \ /\ / / _` | '__/ _ \
| |_) | | | | |_) | |_| | | | (_) | |_| | |_) \ V  V / (_| | | |  __/
| .__/|_| |_| .__/ \____|_|  \___/ \__,_| .__/ \_/\_/ \__,_|_|  \___|
|_|         |_|                         |_|Web based collaboration platform






reply via email to

[Prev in Thread] Current Thread [Next in Thread]