Technical design documentation
Note: the files used in project manager have more than one function per file,
and most of those functions have to be processed by the server. When a "function"
is defined, the page can be reloaded with the function name as a CGI parameter (no
value is required) and the function parameters can be added to the URL (example:
install.php?SetProjName=&ProjectName=Project%20Manager would call the
function SetProjName in install.php with the parameter "ProjectName = Project
Manager"). Some functions will use the function name as one of their parameter
names. Some parameters will have defaults, which will be used when no value is given.
Normal php functions will be called php functions in this document.
- Sets up the databases and settings for the project.
- Login script (uses HTTP authentication, but cookie support to stay logged
in may be added later). Included in every other file except
- Contains project settings as a list of commented variables. Included by all
files that use project settings.
- Displays main tree view or a single node. The tree view is a default function
(with no name) that is executed only if the node display isn't used.
Add functions to edit nodes and add objects to nodes
- Adds a link to the current node. Only available to node users (with
user permission for the node).
- AddLink: Name of the link, or 'enterlinkdata' to edit information
- Node: The ID of the node to add it to
- URL: The URL
- Description: The description of the link
- Adds a file to the current node. Only available to node users (with
user permission for the node).
- AddFile: Name of the file, or 'enterfiledata' to edit information
- Node: The ID of the node to add it to
- DL: The URL to download the file
- Description: The description of the file
- Edits a node. Can only be used by users with admin permission
for the node. If Description and Name are set, the information will be comitted.
- EditNode: The ID of the node to edit
- Description: The new description
- Name: The new name
- Displays a node of the project tree. This includes objects
set to full display on their node page, and short descriptions with links for
objects which aren't set to full diaplay on the node page.
- ShowNode: the ID of the node to show
- Creates a node in the tree.
- CreateNode: The name of the node to display in the tree view. When
the value is input, show a page to enter
the data. When it's something else, create the node.
- Parent: The ID of the parent node, 0 for top level
- Description: The node description
- Toggles open/closed state of a node and show normal view (Default
- SetNodeState: ID of node to toggle
- Default function, displays the main tree view. Not called when ShowNode
set to "1" for open or 0 for closed (if closed, the cookie may not exist).
For each <node in db where level=0>
Display node link
If node open, display children (level=this.level+1, parent=this)
- Displays database entry listing, searches/filters databases, creates and edits
databases. Links to all the functions are included on the node view page. The links
are entry listing (link text is database name), search, filter, and edit. A link
at the bottom of every node page will allow the administrator or node admins (users
who have permission to administrate that node or one of it's parents) to create new
- Searches the database. Search results are displayed in the normal database
Note: a formatting for the search parameters that doesn't use
any characters that are likely to be part of the search parameters or a simple
escape system (that doesn't require any extra work from the user) needs to be found.
- Shows a page to add a search requirement.
- requirements: the list of search requirements (see Search function for description)
- table: the ID of the table being searched
- Creates a database table(only available to Administrator and node admins).
When the parameter "fields" is empty or non-existant, the database table creation page is displayed,
where fields can be added until the table is created. If the parameter "editing" exists,
the table fields are being edited (and not created). When the Create function is used
and "editing" is not defined, the table will be created. The page will show the list of
current fields, with an area at the bottom to define a new field. The two action buttons
will add the new field or create the database.
- Fields: fields in format name1|type1,name2|type2...
- Editing: if this is defined, the database table definition is being edited.
If it's not defined, the database table will be created.
- Edit a database table.
- Edit: 'input' to edit, empty to commit
- ID: the ID of the table to edit
- Ops: a list of operations to do. This is a comma-separated list in
the form <field name>:<operation>[:<type>].
The operation can be t for type change,
a for add, or d
for delete. When using a or t,
the parameter type will contain the type code
(type code listing in the description of the field
in database table
- Displays a database listing, sorted by index field in ascending order.
Only called if no other functions are called.
- table: the ID of the table to list
- Startat (default 0): The index of the first database entry to display.
- Change project settings, add/remove/edit users. This page can only be accessed
by users who have "ADMIN" in their
access permissions (the default setup includes one user, admin, that has access
to this page).
- Project Manager users.
- ID: User ID (just in case we need it :) (integer)
- username: username
- password: password
- access: access permissions, in a comma separated list of nodes and permissions.
Permission codes are u for user (allowed to use the tables and add/edit items),
v for visitor (allowed to add items to tables), a for node admin (allowed to create and edit any item in the node).
A user with no access code can view the node but not change anything.
Users with ADMN as one of their access permissions have admin
access to every node. Each permission code is in the format <node
If the user has no access permissions for the node but it is in the
list, the : must be included after the node ID (example: 1010:)
- name: the user's name
- email: email address
- ICQ: ICQ number (these two are for user information display)
- The database tables created for the project. Lists names and fields.
- name: name of the table
- ID: the table ID
- node: the ID of the node the table is attached to
- tblfields: a description of the fields, as a comma separated list of field description
codes. The codes are in the format <field name>:<type>.
The allowed types are dd for a drop-down list (these
entries will have the format <field name>:dd:<drop-down list name>),
se for a short edit field (40 chars
max), le for an unlimited-length one-line edit field,
ta for a text area, and ca
for a comment area (like a text area, but you can only add lines, not edit the entire text). The format is
<first comment block>
Added at 1:59 AM on Dec 5, 2000 by krogoth:
<second comment block>
When using a drop-down type field, the drop-down list name will be used to get the
list of options. The drop-down lists are stored in the table
Decide where to put the drop-down list editing functions. Should they go in db.php?
- A list of drop-down lists.
- name: the name of the dropdown list (used in
- options: a comma-separated list of options
- The tree nodes
- ID: ID
- name: name of the node
- level: level (0 for top)
- parent: parent node (if level > 0)
- parents: a comma separated list of all the parents up to level 0 (if any), with top level parent first
- description: description, displayed under the node name on the node page
- The files.
- node: the ID of the node the file is attached to
- name: the name of the file
- URL: the URL to download
- description: a description of the file
- The links.
- node: the ID of the node the link is attached to
- name: the name of the link
- URL: the URL
- description: a description of the link
FastCounter by bCentral