/program/modules/snapshots/snapshots_admin.php - management interface for snapshots-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.
validate and massage the user-supplied data path
this checks the directory path the user entered, returns TRUE if the tests are passed.
There three places from which snapshots can be retrieved:
Various tests are done: - the selected area directory must be active - if the selected area is private, $USER must have intranet access for this area, OR the selected area must be the same as the area in which $node_id resides - the selected user directory must be the $USER's, OR the $USER has access to the account manager (able to manipulate ALL users' directories) - the selected group directory must be from a group the $USER is a member of, OR the $USER has access to the account manager (able to manipulate ALL groups' directories)
If all tests succeed, we may want to warn the user in the case that the file location is in a different (and public) area than the node holding the snapshots module. However, this is a warning only.
Finally, we reconstruct the path in such a way that it starts with a slash and does NOT end with a slash. This is done by changing the content of the $item parameter.
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 'variant' parameter to node $node_id in a 1-to-1 relation.
Note that we set the parameter 'variant' to 1. This equates to the variant where the visitor starts with the title, the optional introductory text and the thumbnail overview. It is up to the user to configure the node to use other variants, eg. start at the first picture full-size or display a slide show. Also note that we start off with an (arbitrary) dimension for the full-size snapshots. This is a per-node setting (as opposed to the systemwide setting for thumbnail dimensions). Finally, we do a little heuristics here by plugging in the current directory from the filemanager. This is dirty, but we might assume that the user uploaded the files to a directory just before adding this snapshots node. In that case there is no need to change anything re: path. If the user did NOT upload files, we plug in the name of the directory which is associated with area $area_id.
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 record with the snapshots variant + introduction.
construct a dialog definition for the snapshots configuration data
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 snapshots that are 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:11:56 +0200 by phpDocumentor 1.4.0