AjaxLoginBlock.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. namespace Drupal\materio_user\Controller;
  3. use Drupal\Core\Controller\ControllerBase;
  4. use Symfony\Component\HttpFoundation\Request;
  5. use Drupal\block\Entity\Block;
  6. use Symfony\Component\HttpFoundation\JsonResponse;
  7. // use Drupal\Core\Cache\CacheableJsonResponse;
  8. // use Drupal\Core\Cache\CacheableMetadata;
  9. // use Drupal\core\render\RenderContext;
  10. /**
  11. * Defines a route controller.
  12. */
  13. class AjaxLoginBlock extends ControllerBase {
  14. private function getBlockDefinition(){
  15. // $language = \Drupal::languageManager()->getCurrentLanguage()->getId();
  16. // \Drupal::logger('materio_user')->notice($language);
  17. $this->bid = "userlogin";
  18. $this->block = Block::load($this->bid);
  19. $this->block_builded = \Drupal::entityTypeManager()->getViewBuilder('block')->view($this->block);
  20. }
  21. /**
  22. * Handler for getBlock request.
  23. */
  24. public function getBlock(Request $request) {
  25. $this->getBlockDefinition();
  26. $rendered = \Drupal::service('renderer')->renderRoot($this->block_builded);
  27. $data = [
  28. 'rendered' => $rendered,
  29. // '#cache' => [
  30. // 'max-age' => \Drupal\Core\Cache\Cache::PERMANENT,
  31. // 'tags' => [
  32. // 'materio_sapi-search_form-cache',
  33. // ]
  34. // ]
  35. ];
  36. $response = new JsonResponse();
  37. $response->setData($data);
  38. // $response = new CacheableJsonResponse($data);
  39. // $response->addCacheableDependency(CacheableMetadata::createFromRenderArray($data));
  40. return $response;
  41. }
  42. }