LayoutLoadBeforeObserver.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. /**
  3. * Copyright © 2015-2017 Ihor Vansach (ihor@magefan.com). All rights reserved.
  4. * See LICENSE.txt for license details (http://opensource.org/licenses/osl-3.0.php).
  5. *
  6. * Glory to Ukraine! Glory to the heroes!
  7. */
  8. namespace Magefan\Blog\Observer;
  9. use Magento\Framework\Event\ObserverInterface;
  10. use Magento\Framework\Data\Tree\Node;
  11. use Magento\Store\Model\ScopeInterface;
  12. use Magefan\Blog\Helper\Config;
  13. /**
  14. * Disable page cache in preview mode
  15. */
  16. class LayoutLoadBeforeObserver implements ObserverInterface
  17. {
  18. /**
  19. * @var \Magento\Framework\Registry
  20. */
  21. protected $registry;
  22. /**
  23. * @param \Magento\Framework\Registry $registry
  24. */
  25. public function __construct(
  26. \Magento\Framework\Registry $registry
  27. ) {
  28. $this->registry = $registry;
  29. }
  30. /**
  31. * Page block html topmenu gethtml before
  32. *
  33. * @param \Magento\Framework\Event\Observer $observer
  34. * @return void
  35. * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  36. */
  37. public function execute(\Magento\Framework\Event\Observer $observer)
  38. {
  39. $post = $this->registry->registry('current_blog_post');
  40. if ($post && $post->getIsPreviewMode()) {
  41. $layout = $observer->getLayout();
  42. $layout->getUpdate()->addHandle('blog_non_cacheable');
  43. }
  44. }
  45. }