blackknight467 / StarRatingBundle

star rating bundle for symfony
MIT License
26 stars 40 forks source link

StarRatingBundle

Star Rating Bundle for Symfony 3. Requires Jquery and Font Awesome.

If Using Symfony 2. Use version 1.*

Sample Output

alt tag

Installation

Step 1: Download the StarRatingBundle

Using Composer

Add the following to the "require" section of your composer.json file:

    "blackknight467/star-rating-bundle": "2.*"

Step 2: Enable the bundle

Enable the bundle in the kernel:

<?php
// app/appKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new blackknight467\StarRatingBundle\StarRatingBundle(),
    );
}

Step 3: Add the css

Add the css in your page head

  <link rel="stylesheet" type="text/css" href="https://github.com/blackknight467/StarRatingBundle/blob/master/{{ asset('bundles/starrating/css/rating.css') }}" />

or

    {% stylesheets
      'bundles/starrating/css/rating.css'
      filter="cssrewrite" %}
      <link href="https://github.com/blackknight467/StarRatingBundle/blob/master/{{ asset_url }}" rel="stylesheet" type="text/css" />
    {% endstylesheets %}

Step 4: Add the js

Add the javascript to your page head

    <!-- make sure that jquery is included --!>
    <script src="https://github.com/blackknight467/StarRatingBundle/raw/master//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
    <script src="https://github.com/blackknight467/StarRatingBundle/raw/master/{{ asset('bundles/starrating/js/rating.js') }}"></script>

or

    <!-- make sure that jquery is included --!>
    <script src="https://github.com/blackknight467/StarRatingBundle/raw/master//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
    {% javascripts
      '@StarRatingBundle/Resources/public/js/rating.js' %}
      <script src="https://github.com/blackknight467/StarRatingBundle/raw/master/{{ asset_url }}"></script>
    {% endjavascripts %}

Usage

In a Form

<?php
    // ...
    $builder->add('rating', RatingType::class, [
        'label' => 'Rating'
    ]);
    // ...

or for a custom rating scale:

<?php
    // ...
    $builder->add('rating', RatingType::class, [
        //...
        'stars' => 4,
        //...
    ]);
    // ...

Display in a twig template using the rating filter

    // ...
    {{ someInteger|rating }}
    // ...

or if you are not using a 5 star scale

{{ someInteger|rating(4) }}

if you want to use the font awesome icon sizes

{{ someInteger|rating(5, "fa-3x") }}

If you want the smallest size use "fa-norm" (in font awesome, this would be the same as not providing an size class); providing no size argument sets the font size to 25px which is somewhere in between "fa-lg" and "fa-2x". To customize the size, feel free to override the css.

License

This bundle is under the MIT license. See the complete license in the bundle: LICENSE