/program/modules/crew/crew_admin.php - management interface for crew-module
This file defines the administrative interface to this module. The interface consists of the following four functions.
These functions are called from pagemanagerlib.php whenever necessary.
connect this module to a node
this makes the link between the node $node_id in area $area_id and this module. In this case we simply link a single workshops record to node $node_id in a 1-to-1 relation. Any permissions (ACL) can be stored in the acls_modules_node table later but by default we start afresh with just a bare workshops record.
Note that we set the parameter 'visibility' to 0. This implies a workshop that is only visible for the individual accounts that are explicitly allowed to view and/or edit. It is up to the user to configure the workshop in a different way, e.g allow all accounts to view the workshop results (visibility=1) or allow the world to see the results (visibility=2).
disconnect this module from a node
this breaks the link between the node $node_id in area $area_id and this module. For now we simply delete the relevant record from the workshops table. Also we remove any record which might exist in the ACL table acls_modules_nodes for this particular node.
construct a dialog definition for the workshop configuration
this generates an array which defines the dialog for workshop configuration. There are a few plain fields that simply go into the appropriate workshops record and the save and cancel button. However, there may also be items related to ACLs. These fields are used to define the user's roles and the should be presented in a table. We abuse the field names for this purpose: if the first 3 characters are 'acl' we put the widgets in an HTML-table, otherwise it is just an ordinary widget.
Note that in the case of a single simple user without any aquaintances (ie. a user that is not member of any group) the user is not able to add herself to the list of authorised users. What is the point of having a _collaborative_ workshop when you are the only one to collaborate with? (However, it would be fairly easy to force/add an entry for this user if the tmp table would turn out empty. Maybe later....?)
save the modified content data of this module linked to node $node_id
this validates and saves the data that was submitted by the user. If validation fails, or storing the data doesn't work, the flag $edit_again is set to TRUE and the return value is FALSE.
If the user has cancelled the operation, the flag $edit_again is set to FALSE and the return value is also FALSE.
If the modified data is stored successfully, the return value is TRUE and the value of $edit_again is based on the button used to save ([Save] or [Done]).
Here is a summary of return values.
$retval | $edit_again | Action ------- | ----------- | ------ FALSE | FALSE | [Cancel] Stop editing, unlock & return to tree view FALSE | TRUE | [Save] or [Done] failed: redo the dialog and let user correct mistakes TRUE | FALSE | [Done] pressed, everything saved succesfully, we're done TRUE | TRUE | [Save] pressed, everything saved succesfully but continue editing
The parameter $option is not used in this module.
present the user with a dialog to modify the workshop that is connected to node $node_id
this prepares a dialog for the user filled with existing data (if any), possibly allowing the user to modify the content. If the flag $viewonly is TRUE, this routine should only display the content rather than let the user edit it. If the flag $edit_again is TRUE, the routine should use the data available in the $_POST array, otherwise it should read the data from the database (or wherever the data comes from). The parameter $href is the place where the form should be POST'ed.
The dialog should be added to the $output object. Useful routines are:
The parameter $option is not used in this module.
Documentation generated on Tue, 28 Jun 2016 19:08:59 +0200 by phpDocumentor 1.4.0