dcs rating bundle
TRANSCRIPT
-
php -r "eval('?>'.file_get_contents('https://getcomposer.org/installer'));"
php composer.phar require damianociarla/rating-bundle
new DCS\RatingBundle\DCSRatingBundle(),
Anne Universitaire : 2014-2015
Workshops Framework Symfony2
Workshop n5
DCSRatingBundle : configuration et
intgration
Objectif
Le but de ce workshop est de configurer et utiliser le bundle DCSRating qui permet de :
- Ajouter une barre de vote ne importe quelle page avec une seule ligne de code.
- Lintgrer avec ne importe quel systme de gestion de l'utilisateur (par exemple
FOSUserBundle)
- Dfinir des rles diffrents pour l'accs au vote.
Prs requis
Ce workshop est une suite du workshop FosUserBundle pour cela nous allons travailler sur le
projet crer dans le workshop FosUserBundle.
Installation
Tout dabord, ouvrir la fentre de commande et placez-vous dans la racine du projet. Et copier
la commande suivante :
Une fois le fichier est rcupr, on lance le tlchargement du bundle depuis le terminal avec
la commande suivante :
Activer le bundle dans le noyau, en ajoutant ce bout de code dans le kernel :
-
dcs_rating:
db_driver: orm
base_path_to_redirect: / # when the permalink is not configured
max_value: 5 # maximum value for the vote (stars displayed)
model:
rating: MyApp\UserBundle\Entity\Rating
vote: MyApp\UserBundle\Entity\Vote
dcs_rating:
resource: "@DCSRatingBundle/Resources/config/routing.xml"
prefix: /
Configuration
Placer ce code dans le fichier de configuration de votre projet : # app/config/config.yml
Puis importez le routage du Bundle : # app/config/routing.yml
-
Ajout des entits Rating et Vote dans votre projet :
Entit Rating : # src/ MyApp/UserBundle/Entity/Rating.php
-
Entit Vote : # src/ MyApp/UserBundle/Entity/Vote.php
-
EventDispatcherInterface $dispatcher
Correction du Bundle :
Avant de commencer la phase dintgration, nous devrons corriger quelques bugs dans le
bundle.
1- Faire les changements suivant dans VoteManager.php :
# vendor\damianociarla\rating-bundle\DCS\RatingBundle\Entity\VoteManager.php
Dans le constructeur de la classe remplacez EventDispatcher par EventDispatcherInterface
2- Faire les mmes changements dans RatingManager.php :
# vendor\damianociarla\rating-bundle\DCS\RatingBundle\Entity\RatingManager.php
3- Faire les mmes changements dans VoteManager.php :
# vendor\damianociarla\rating-bundle\DCS\RatingBundle\Model\VoteManager.php
4- Faire les mmes changements dans RatingManager.php :
# vendor\damianociarla\rating-bundle\DCS\RatingBundle\Model\ RatingManager.php
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
-
php app/console assets:install
{% include 'DCSRatingBundle:Rating:rating.html.twig' with {'id' : 'YOUR_UNIQUE_ID'} %}
{% include 'DCSRatingBundle:Rating:control.html.twig' with {'id' : 'YOUR_UNIQUE_ID'} %}
{% include 'DCSRatingBundle:Rating:control.html.twig' with {'id' : 'YOUR_UNIQUE_ID', 'role' : 'ROLE_USER'} %}
{% include 'DCSRatingBundle:Rating:control.html.twig' with {'id' : 'YOUR_UNIQUE_ID',
'permalink' : url('YOUR_ROUTE_ID')} %}
Intgration :
Importez la feuille de style du bundle en excutant la commande suivante :
Puis inclure la feuille de style dans notre template :
#src\MyApp\UserBundle\Resources\views\layout.html.twig
Maintenant nous pouvons afficher la note de chaque utilisateur par cette ligne de commande
Pour permettre le vote sur une page, vous pouvez utiliser ce code :
Si vous avez besoin de changer le rle de l'utilisateur par dfaut pour une page spcifique,
ajoutez le paramtre de rle :
Si vous avez besoin de changer le permalink, ajouter le paramtre parmalink :
Remarque :
Vous devez changer le paramtre YOUR_UNIQUE_ID par lid de llment que vous voulez
lvaluer. Dans notre cas lID de lutilisateur.