![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magefan/module-blog/Block/Post/View/ |
<?php /** * Copyright © Magefan ([email protected]). All rights reserved. * Please visit Magefan.com for license details (https://magefan.com/end-user-license-agreement). * * Glory to Ukraine! Glory to the heroes! */ namespace Magefan\Blog\Block\Post\View; use Magento\Store\Model\ScopeInterface; /** * Blog post view rich snippets */ class Richsnippets extends Opengraph { /** * @param array */ protected $_options; /** * Retrieve snipet params * * @return array */ public function getOptions() { if ($this->_options === null) { $post = $this->getPost(); $logoBlock = $this->getLayout()->getBlock('logo'); if (!$logoBlock) { $logoBlock = $this->getLayout()->getBlock('amp.logo'); } $this->_options = [ '@context' => 'http://schema.org', '@type' => 'BlogPosting', '@id' => $post->getPostUrl(), 'author' => $this->getAuthor(), 'headline' => $this->getTitle(), 'description' => $this->getDescription(), 'datePublished' => $post->getPublishDate('c'), 'dateModified' => $post->getUpdateDate('c'), 'image' => [ '@type' => 'ImageObject', 'url' => $this->getImage() ?: ($logoBlock ? $logoBlock->getLogoSrc() : ''), 'width' => 720, 'height' => 720, ], 'publisher' => [ '@type' => 'Organization', 'name' => $this->getPublisher(), 'logo' => [ '@type' => 'ImageObject', 'url' => $logoBlock ? $logoBlock->getLogoSrc() : '', ], ], 'mainEntityOfPage' => $this->_url->getBaseUrl(), ]; } return $this->_options; } /** * Retrieve author name * * @return array */ public function getAuthor() { if ($author = $this->getPost()->getAuthor()) { if ($author->getTitle()) { $authorPageEnabled = $this->config->getConfig( 'mfblog/author/page_enabled' ); return [ '@type' => 'Person', 'name' => $author->getTitle(), 'url' => $authorPageEnabled ? $author->getAuthorUrl() : $this->getUrl() ]; } } // if no author name return name of publisher return $this->getPublisher(); } /** * Retrieve publisher name * * @return array */ public function getPublisher() { $publisherName = $this->_scopeConfig->getValue( 'general/store_information/name', ScopeInterface::SCOPE_STORE ); if (!$publisherName) { $publisherName = 'Magento2 Store'; } return $publisherName; /* return [ '@type' => 'Organization', 'name' => $publisherName, 'url' => $this->getUrl() ]; */ } /** * Render html output * * @return string */ protected function _toHtml() { return '<script type="application/ld+json">' . json_encode($this->getOptions()) . '</script>'; } }