AutoplayManager.php 1.2KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. namespace Muzich\CoreBundle\lib;
  3. use Muzich\CoreBundle\Entity\Element;
  4. /**
  5. * Boite a outils pour les Tags.
  6. */
  7. class AutoplayManager
  8. {
  9. /**
  10. *
  11. * @var array of Element
  12. */
  13. private $elements;
  14. /**
  15. *
  16. * @var Container
  17. */
  18. protected $container;
  19. /**
  20. *
  21. * @param array $elements
  22. */
  23. public function __construct($elements, $container)
  24. {
  25. $this->elements = $elements;
  26. $this->container = $container;
  27. }
  28. public function getList()
  29. {
  30. $list = array();
  31. foreach ($this->elements as $element)
  32. {
  33. if (
  34. // On doit connaitre l'id externe
  35. ($ref_id = $element->getRefId(true)) &&
  36. // Et le site doit être pris en charge pour le autoplay
  37. in_array(
  38. ($element_type = $element->getType()),
  39. $this->container->getParameter('autoplay_sites_enabled')
  40. )
  41. )
  42. $list[] = array(
  43. 'element_ref_id' => $ref_id,
  44. 'element_type' => $element->getType(),
  45. 'element_id' => $element->getId(),
  46. 'element_name' => $element->getName(),
  47. 'element_url' => $element->getUrl(),
  48. );
  49. }
  50. return $list;
  51. }
  52. public function shuffle()
  53. {
  54. shuffle($this->elements);
  55. }
  56. }