phpgroupware-cvs
[Top][All Lists]
Advanced

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

[Phpgroupware-cvs] CVS: sitemgr/doc hooks-requirements.txt,NONE,1.1


From: Patrick Walsh <address@hidden>
Subject: [Phpgroupware-cvs] CVS: sitemgr/doc hooks-requirements.txt,NONE,1.1
Date: Sat, 14 Sep 2002 04:50:28 -0400

Update of /cvsroot/phpgroupware/sitemgr/doc
In directory subversions:/tmp/cvs-serv14442

Added Files:
        hooks-requirements.txt 
Log Message:
My upcoming hooks/modules system.


--- NEW FILE ---
SiteMgr "Hooks" Requirements
----------------------------

Introduction
------------
        SiteMgr was created to allow a community of people to maintain a 
website so that different people or groups have permissions to read or edit 
different parts of a site.  There's an almost limitless list of potential 
features that could be added to make the program better and more useful.  I 
can't begin to work on such a daunting list of features.  So instead, I'll 
create a system that allows for "plugins" of some sort.

Existing System
---------------
        The current system allows for categories with pages.  Each page has a 
title, subtitle, and content.  The content is whatever HTML people want to put 
in.
        
Actors
------
        The full requirements document for SiteMgr specifies three "Actors."  
See the main requirements document for details.  Briefly:

        Viewer: Someone who is viewing the generated web site.  This person 
could be an anonymous user or a logged-in user.

        Contributor: Someone who is logged in and has been granted "write" 
permissions to one or more site categories so that they can add, remove, and 
edit pages within those categories via the phpGroupWare SiteMgr program.

        Administrator: Someone with full administrative permissions in 
phpGroupWare.  This is the person who creates and edits categories and 
determines who has what permissions.

Viewer Requirements
-------------------
        From the viewer perspective the site will be much the same, though 
perhaps more useful and more dynamic.  That might include polls, news blurbs, 
articles, downloads, statistics, etc.

Contributor Requirements
------------------------
        From the perspective of the contributor, when editing a page there 
should be a chance to do more than just add html.  In fact, there should be a 
list of "modules" including an HTML module that functions like the old system.  
On any given page one or more of these modules can be displayed.  If the 
contributor wants the page to have a news module, followed by an HTML module, 
followed by another news modules and yet another HTML module... fine.  

        For each module that the contributor elects to add to a page the 
contributor can specify the order of the modules and properties for each 
module.  There is a separate properties page for each module and the properties 
page is specific to the module itself.  The properties page of the HTML module, 
for example, would have a text box that the contributor would use to enter HTML.

Administrator Requirements
--------------------------
        The administrator needs to be able to specify, for each category, which 
modules are allowed for that category.  Furthermore, for each module of each 
category the Administrator can restrict the available options on the properties 
sheet.  For example, a news module may have different news topics.  The 
administrator might only allow contributors to display news from a particular 
topic within a particular category.  Or perhaps a shortened list of topics or 
something.

phpGW App Developer Requirements
--------------------------------
        phpGroupWare application developers should be able to turn their 
applications, or subsets of their applications, into modules.  Making a module 
should be as easy as possible and should be done by way of the phpGroupWare 
"hooks" system.  One application can make as many hooks as desired.  Each hook 
translates into a module.  The developer creates an array of properties that 
will be shown on the properties page.  Each property will have a name, 
description, input type (option box, etc.), input list, and whether or not it 
can be constrained by an administrator.  Then there will be a function that is 
called for the hook.  It will be passed that preference array with the values 
selected by the contributor.  It will return a display class.

        The display class will take a number of forms.  There will be a display 
type that specifies how the module will be formatted.  For example, there can 
be no formatting, news-block formatting, standard center block formatting, and 
so forth.  There will always be a content property filled out.  Depending on 
the format, there may be a title, subtitle, status, submitted-by, 
submitted-date, and other properties as well.

        And that's it.  





reply via email to

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