This is a rating widget that can support a "line of stars" style input field.
rating type in form fields. The result of the rating is captured as an integer, and displayed as a line of stars. For example,
rating type in your forms. Rating values are stored as integers.
To use it in a form, use the type rating, with the optional modified +small for small stars. The size field dictates how wide the rating is e.g. 5 means a 5 star range. The value field specifies the initial value. For example, the form definition:
| *Name* | *Type* | *Size* | *Values* | | Supplier | text | 40 | | | Quality | rating+small | 10 | 5 | | Order Date | date | | |looks like this when it is edited:
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.
Open configure, and open the "Extensions" section. Use "Find More Extensions" to get a list of available extensions. Select "Install".
If you have any problems, or if the extension isn't available inconfigure, then you can still install manually from the command-line. See http://foswiki.org/Support/ManuallyInstallingExtensions for more help.
Foswiki::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".
my $html =
CGI::form({action="some url", method=>"post"},
Foswiki::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 = Foswiki::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.
| Author(s): | Crawford Currie http://c-dot.co.uk |
| Copyright: | © 2007 C-Dot Consultants |
| License: | GPL (Gnu General Public License) |
| Version: | 4083 (2009-06-10) |
| Change History: | |
| 10 Jun 2009: | Foswikitask:1258: port to Foswiki |
| 27 Jun 2006: | First version |
| Dependencies: | None |
| Home: | http://foswiki.org/Extensions/RatingContrib |
| Support: | http://foswiki.org/Support/RatingContrib |