From: Shaun M. <sh...@ae...> - 2004-12-02 04:16:36
|
This is an idea that's been kicking about my head for a while so I thought I'd let it out there. Currently, some modules allow you to display a block, menu or other element if another module is on the screen. eg. you can display a menu with just the linkman module or a block only with announcements. Some others, allow you to display an element depending on a pagemaster page - see phpwsRSSFeeds and kCart. There are hacks from users to display blocks, menus etc depending on the category, if the user is an admin and other kinds of permission levels. These are mostly hacked on afterwards and the interface is often different and confusing and mixing all the possible conditions in one interface isn't always simple. In an effort to homogenise these all into one interface, and perhaps this will fit in with v1.0.0 permissions too, I thought perhaps we could use a rule based method. The inspiration was Apple's Mail filtering rules for those familiar with the idea. Here's a non-functioning mockup in html http://www.aegisdesign.co.uk/examples/rules/ To explain, This would be displayed instead of the 'Allow View' option in blockmaker for example. You click 'enable rules' to switch on the rules otherwise the default is to always display the element. You can add or remove rules using the -/+ buttons allowing quite a complex set. I've added some examples for common things you'd maybe filter on. The multi-select lists have to be generated when the user changes the filter type - eg. if they select category, it fills the list with categories, if they select pages, it fills with pagemaster pages. That's the idea. I can see a couple of problems with it already but maybe they can be overcome. 1) selecting a user from a list of a couple of thousand is not viable - see the Notes module for how that was addressed. 2) you might want to filter on a text field - eg. pagemaster page where title begins with/contains 'some text' For the core, I'd guess this is some part of layout in that it would keep a list of elements and if they were rule enabled or not. Or perhaps this is useful at a module level so that individual content is rule based also. A table somewhere else stores the rules. For the module developer, it'd be as simple to add in rules editing to their module as they can with fatcat now. Thoughts anyone? Shaun aegis design - http://www.aegisdesign.co.uk |