HomeController.php 2.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <?php
  2. namespace Muzich\HomeBundle\Controller;
  3. use Muzich\CoreBundle\lib\Controller;
  4. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
  5. use Muzich\CoreBundle\Searcher\ElementSearcher;
  6. class HomeController extends Controller
  7. {
  8. /**
  9. * Page d'accueil ("home") de l'utilisateur. Cette page regroupe le fil
  10. * d'éléments général et personalisable et de quoi ajouter un élément.
  11. *
  12. */
  13. public function indexAction($count = null, $network = null, $login = false, $search_object = null, $context = 'home')
  14. {
  15. if (!$search_object)
  16. $search_object = $this->getElementSearcher($count);
  17. $user = $this->getUser(true, array('join' => array(
  18. 'groups_owned'
  19. )), true);
  20. if (!$network && !$search_object->getNetwork())
  21. {
  22. $search_object->setNetwork(ElementSearcher::NETWORK_PUBLIC);
  23. }
  24. $search_form = $this->getSearchForm($search_object);
  25. $add_form = $this->getAddForm();
  26. $elements = $search_object->getElements($this->getDoctrine(), $this->getUserId(true));
  27. return $this->render('MuzichHomeBundle:Home:index.html.twig', array(
  28. 'search_tags_id' => $search_object->getTags(),
  29. 'ids_display' => $search_object->getIdsDisplay(),
  30. 'user' => $user,
  31. 'add_form' => $add_form->createView(),
  32. 'add_form_name' => 'add',
  33. 'search_form' => $search_form->createView(),
  34. 'search_form_name' => 'search',
  35. 'network_public' => $search_object->isNetworkPublic(),
  36. 'elements' => $elements,
  37. 'from_url' => $this->getRequest()->get('from_url'),
  38. 'display_launch_demo' => true,
  39. 'login' => $login,
  40. 'email_token' => $this->getEmailTokenIfExist(),
  41. 'elements_context' => $context
  42. ));
  43. }
  44. public function showOneElementAction($element_id)
  45. {
  46. $es = $this->getNewElementSearcher();
  47. $es->setNoTags();
  48. $es->setIds(array($element_id));
  49. return $this->indexAction(null, null, false, $es, 'one');
  50. }
  51. protected function getEmailTokenIfExist()
  52. {
  53. if ($this->get("session")->get('user.confirm_email.token'))
  54. {
  55. return $this->get("session")->get('user.confirm_email.token');
  56. }
  57. return null;
  58. }
  59. public function needTagsAction()
  60. {
  61. $es = $this->getNewElementSearcher();
  62. $es->init(array(
  63. 'count' => $this->container->getParameter('search_default_count'),
  64. 'need_tags' => true,
  65. 'tags' => array()
  66. ));
  67. $this->setElementSearcherParams($es->getParams(), $this->getUser()->getPersonalHash('needstagpage'));
  68. $elements = $es->getElements($this->getDoctrine(), $this->getUserId());
  69. return $this->render('MuzichHomeBundle:Home:need_tags.html.twig', array(
  70. 'elements' => $elements,
  71. 'topmenu_active' => 'needs-tags',
  72. 'last_element_id' => (count($elements))?$elements[count($elements)-1]->getId():null
  73. ));
  74. }
  75. }