MaterioFlagController.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. <?php
  2. namespace Drupal\materio_flag\Controller;
  3. use Drupal\Core\Controller\ControllerBase;
  4. use Symfony\Component\DependencyInjection\ContainerInterface;
  5. // use Drupal\Core\Entity\EntityManagerInterface;
  6. // use Drupal\language\ConfigurableLanguageManagerInterface;
  7. // use Drupal\Core\Render\RendererInterface;
  8. // use Drupal\Core\Entity\EntityTypeManagerInterface;
  9. // use Drupal\Core\Cache\CacheableJsonResponse;
  10. // use Drupal\Core\Cache\CacheableMetadata;
  11. use Symfony\Component\HttpFoundation\JsonResponse;
  12. // use Drupal\Core\Url;
  13. // use Drupal\core\render\RenderContext;
  14. use Drupal\flag_lists\FlagListsService;
  15. /**
  16. * Class AjaxHomeController.
  17. */
  18. class MaterioFlagController extends ControllerBase {
  19. /**
  20. * Drupal\Core\Entity\EntityManagerInterface definition.
  21. *
  22. * @var \Drupal\Core\Entity\EntityManagerInterface
  23. */
  24. // protected $entityManager;
  25. /**
  26. * Drupal\language\ConfigurableLanguageManagerInterface definition.
  27. *
  28. * @var \Drupal\language\ConfigurableLanguageManagerInterface
  29. */
  30. // protected $languageManager;
  31. /**
  32. * Drupal\Core\Render\RendererInterface definition.
  33. *
  34. * @var \Drupal\Core\Render\RendererInterface
  35. */
  36. // protected $renderer;
  37. /**
  38. * Drupal\Core\Render\RendererInterface definition.
  39. *
  40. * @var \Drupal\Core\Entity\EntityTypeManagerInterface
  41. */
  42. // protected $entityTypeManager;
  43. /**
  44. * Drupal\Core\Render\RendererInterface definition.
  45. *
  46. * @var \Drupal\flag_lists\FlagListsService
  47. */
  48. protected $flaglists;
  49. /**
  50. * Constructs a new AjaxHomeController object.
  51. */
  52. // public function __construct(EntityManagerInterface $entity_manager, ConfigurableLanguageManagerInterface $language_manager, RendererInterface $renderer, EntityTypeManagerInterface $entity_type_manager) {
  53. // $this->entityManager = $entity_manager;
  54. // $this->languageManager = $language_manager;
  55. // $this->renderer = $renderer;
  56. // $this->entityTypeManager = $entity_type_manager;
  57. // }
  58. public function __construct(FlagListsService $flag_lists_service ) {
  59. $this->flaglists = $flag_lists_service;
  60. }
  61. /**
  62. * {@inheritdoc}
  63. */
  64. public static function create(ContainerInterface $container) {
  65. return new static(
  66. $container->get('flaglists'),
  67. );
  68. }
  69. /**
  70. * Hello.
  71. *
  72. * @return string
  73. * Return Hello string.
  74. */
  75. public function getUsersFlaggingCollections() {
  76. // $data['data'] = ['test', 'hello'];
  77. // $data['data'] = $this->flaglists->getUsersFlaggingCollections();
  78. // $data['#cache'] = [
  79. // // 'max-age' => \Drupal\Core\Cache\Cache::PERMANENT,
  80. // 'tags' => ['materio-flag-cache'],
  81. // // 'contexts' => [
  82. // // 'languages:language_content'
  83. // // ]
  84. // ];
  85. // $response = new CacheableJsonResponse($data);
  86. // $response->addCacheableDependency(CacheableMetadata::createFromRenderArray($data));
  87. // return $response;
  88. $colls = $this->flaglists->getUsersFlaggingCollections();
  89. $data = [];
  90. foreach ($colls as $id => $collection) {
  91. $data[] = array(
  92. "id" => $id,
  93. "name" => $collection->getName()
  94. );
  95. }
  96. return new JsonResponse($data);
  97. }
  98. }