RatingContrib
Rating widget for TWiki forms using "line of stars" style input field
Introduction
This module adds a line-of-stars rating bar to TWiki forms and TWiki applications.
Using the color picker in TWikiForms
This package adds a
rating type to
TWikiForms. The result of the rating is captured as an integer, and displayed as a line of stars. For example,
To use it in a TWiki form, use the type
rating, with the optional modified
+small for small stars:
| Type |
Description |
Size |
Value |
rating |
Line-of-stars rating bar. |
Number of stars for rating |
Initial value |
rating+small |
Like rating, but with small stars. |
|
|
Example form definition:
| *Name* | *Type* | *Size* | *Values* |
| Supplier | text | 40 | |
| Quality | rating+small | 10 | 5 |
| Order Date | date | | |
A topic with this form looks like this when in edit mode:
Using the Contrib in a Plugin
A typical application of this widget is its use to capture a rating under the control of a plugin, such as the the
TWiki:Plugins.VotePlugin. It is straightforward to use in this role. The API to the contrib is:
TWiki::Contrib::RatingContrib::renderRating($name, $size, $small, $value, $input_attrs) -> $html
where
-
$name is the name you want to give to the input element that will get the rating value
-
$size is the total width of the rating bar, typically 5 or 10
-
$small is a boolean; if true, use small (10px) stars in place of the default (25px) stars
-
$value is the current value of the rating. This may be a floating-point value, but should be in the range 0..$size
-
$input_attrs is a hash that contains additional attributes to be assigned to the input element used to capture the rating value. Typically the only attribute callers will need to use is onchange, which should be set to a callback that will be invoked when the value in the input is changed. If you pass undef for this parameter, then the line of stars will be "read only".
The contrib will automatically look after the CSS and Javascript it needs to load to work.
For example, let's say we want to generate a conventional form that contains a line of stars prompt. We want the value of the rating bar to be submitted along with everything else in the form.
my $html =
CGI::form({action="some url", method=>"post"},
TWiki::Contrib::RatingContrib::renderRating('rating', 5, 0, 0, {})
.CGI::submit("OK"));
Say instead that we want to generate an alert when a line of stars has its value changed:
$html = TWiki::Contrib::RatingContrib::renderRating('rating', 5, 0, 0,
{onchange=>'javascript: alert("Rated")'})
Of course, when you use the
onchange event, you don't need a form. This model is good if you want (for example) to update values using a REST handler.
Installation Instructions
You do not need to install anything in the browser to use this extension. The following instructions are for the administrator who installs the extension on the server where TWiki is running.
Like many other TWiki extensions, this module is shipped with a fully
automatic installer script written using the BuildContrib.
- If you have TWiki 4.2 or later, you can install from the
configure interface (Go to Plugins->Find More Extensions)
- If you have any problems, then you can still install manually from the command-line:
- Download one of the
.zip or .tgz archives
- Unpack the archive in the root directory of your TWiki installation.
- Run the installer script (
perl <module>_installer )
- Run
configure and enable the module, if it is a plugin.
- Repeat for any missing dependencies.
- If you are still having problems, then instead of running the installer script:
- Make sure that the file permissions allow the webserver user to access all files.
- Check in any installed files that have existing
,v files in your existing install (take care not to lock the files when you check in)
- Manually edit LocalSite.cfg to set any configuration variables.
Contrib Info
Related Topics: TWikiContribs,
DeveloperDocumentationCategory,
AdminDocumentationCategory,
TWikiPreferences