TagData.php 1.0KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <?php
  2. namespace Muzich\CoreBundle\Mining\Tag;
  3. use Muzich\CoreBundle\Mining\Tag\Tag as Base;
  4. use Muzich\CoreBundle\Entity\User;
  5. class TagData extends Base
  6. {
  7. public function getTagOrderForFavorites(User $user)
  8. {
  9. if (!($user_tags = $this->getUserTagsTags($user, 'element_favorite_tags'))) {
  10. return array();
  11. }
  12. if (count($tags_ordereds = $user_tags->getElementFavoriteTags()))
  13. return $tags_ordereds;
  14. return array();
  15. }
  16. public function getTagOrderForDiffusions(User $user)
  17. {
  18. if (!($user_tags = $this->getUserTagsTags($user, 'element_diffusion_tags'))) {
  19. return array();
  20. }
  21. if (count($tags_ordereds = $user_tags->getElementDiffusionTags()))
  22. return $tags_ordereds;
  23. return array();
  24. }
  25. protected function getUserTagsTags(User $user, $field)
  26. {
  27. return $this->getMongoManager()->createQueryBuilder('MuzichCoreBundle:UserTags')
  28. ->select($field)
  29. ->field('ref')->equals((int)$user->getId())
  30. ->getQuery()->getSingleResult()
  31. ;
  32. }
  33. }