Form type and Twig filter for FyneWorks' super fine jQuery Star Rating Plugin.
This is the easiest way to ensure that you have the Star Rating Plugin installed. Add a repository to
composer.json:
"repositories": [
{
"type": "package",
"package": {
"name": "fyneworks/star-rating",
"version": "dev-master",
"source": {
"type": "git",
"url": "https://github.com/fyneworks/star-rating.git",
"reference": "master"
}
}
}
] "require": {
"nurikabe/star-rating-bundle": "2.0.0"
...
}public function registerBundles()
{
$bundles = array(
// ...
new Nurikabe\StarRatingBundle\NurikabeStarRatingBundle(),
// ...
);$ php composer.phar update nurikabe/star-rating-bundleIf you define a repository for fyneworks/star-rating as per the above then installing nurikabe/star-rating-bundle
should also install the fyneworks/star-rating dependency.
Load the Star Rating plugin in your layout. For example, if you are using Assetic and you have installed Star Rating via Composer as per above:
{% stylesheets '@NurikabeStarRatingBundle/Resources/rating.css' %}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
{% javascripts '%kernel.root_dir%/../vendor/fyneworks/star-rating/jquery.rating.js' %}
<script type="text/javascript" src="{{ asset_url }}"></script>
{% endjavascripts %}Of course, remember to dump your assets if use_controller is off:
$ app/console assetic:dumpThis bundle contains a new FormType star_rating field type:
$builder->add('rating', 'star_rating', array(
'choices' => array(1 => 'ichi', 2 => 'ni', 3 => 'san', 4=> 'shi', 5 => 'go'),
'expanded' => true, // radio or checkbox...
'multiple' => false // ...but not checkbox
));star_rating extends choice and will render expanded choice fields as a Star Rating field.
Original choice field:
As a star_rating field:
A Twig filter is also available that will render a static Star Rating widget given a numeric input:
{{ entity.rating|star_rating }}

