123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- <?php
- /**
- * Copyright © 2016 Ihor Vansach (ihor@magefan.com). All rights reserved.
- * See LICENSE.txt for license details (http://opensource.org/licenses/osl-3.0.php).
- *
- * Glory to Ukraine! Glory to the heroes!
- */
- namespace Magefan\Blog\Block\Post;
- use Magento\Store\Model\ScopeInterface;
- /**
- * Abstract post мшуц block
- */
- abstract class AbstractPost extends \Magento\Framework\View\Element\Template
- {
- /**
- * Deprecated property. Do not use it.
- * @var \Magento\Cms\Model\Template\FilterProvider
- */
- protected $_filterProvider;
- /**
- * @var \Magefan\Blog\Model\Post
- */
- protected $_post;
- /**
- * Page factory
- *
- * @var \Magefan\Blog\Model\PostFactory
- */
- protected $_postFactory;
- /**
- * @var Magento\Framework\Registry
- */
- protected $_coreRegistry;
- /**
- * @var string
- */
- protected $_defaultPostInfoBlock = 'Magefan\Blog\Block\Post\Info';
- /**
- * @var \Magefan\Blog\Model\Url
- */
- protected $_url;
- /**
- * Construct
- *
- * @param \Magento\Framework\View\Element\Context $context
- * @param \Magento\Cms\Model\Page $post
- * @param \Magento\Framework\Registry $coreRegistry,
- * @param \Magento\Cms\Model\Template\FilterProvider $filterProvider
- * @param \Magento\Cms\Model\PageFactory $postFactory
- * @param \Magefan\Blog\Model\Url $url
- * @param array $data
- */
- public function __construct(
- \Magento\Framework\View\Element\Template\Context $context,
- \Magefan\Blog\Model\Post $post,
- \Magento\Framework\Registry $coreRegistry,
- \Magento\Cms\Model\Template\FilterProvider $filterProvider,
- \Magefan\Blog\Model\PostFactory $postFactory,
- \Magefan\Blog\Model\Url $url,
- array $data = []
- ) {
- parent::__construct($context, $data);
- $this->_post = $post;
- $this->_coreRegistry = $coreRegistry;
- $this->_filterProvider = $filterProvider;
- $this->_postFactory = $postFactory;
- $this->_url = $url;
- }
- /**
- * Retrieve post instance
- *
- * @return \Magefan\Blog\Model\Post
- */
- public function getPost()
- {
- if (!$this->hasData('post')) {
- $this->setData('post',
- $this->_coreRegistry->registry('current_blog_post')
- );
- }
- return $this->getData('post');
- }
- /**
- * Retrieve post short content
- *
- * @return string
- */
- public function getShorContent()
- {
- return $this->getPost()->getShortFilteredContent();
- }
- /**
- * Retrieve post content
- *
- * @return string
- */
- public function getContent()
- {
- return $this->getPost()->getFilteredContent();
- }
- /**
- * Retrieve post info html
- *
- * @return string
- */
- public function getInfoHtml()
- {
- return $this->getInfoBlock()->toHtml();
- }
- /**
- * Retrieve post info block
- *
- * @return \Magefan\Blog\Block\Post\Info
- */
- public function getInfoBlock()
- {
- $k = 'info_block';
- if (!$this->hasData($k)) {
- $blockName = $this->getPostInfoBlockName();
- if ($blockName) {
- $block = $this->getLayout()->getBlock($blockName);
- }
- if (empty($block)) {
- $block = $this->getLayout()->createBlock($this->_defaultPostInfoBlock, uniqid(microtime()));
- }
- $this->setData($k, $block);
- }
- return $this->getData($k)->setPost($this->getPost());
- }
- }
|