![]() 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/cartforge.co/vendor/magento/module-gift-message/Block/Message/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\GiftMessage\Block\Message; use Magento\Customer\Model\Context; use Magento\GiftMessage\Model\Message; /** * Gift message inline edit form * * @author Magento Core Team <[email protected]> */ class Inline extends \Magento\Framework\View\Element\Template { /** * @var mixed */ protected $_entity = null; /** * @var string|null */ protected $_type = null; /** * @var Message|null */ protected $_giftMessage = null; /** * @var string */ protected $_template = 'Magento_GiftMessage::inline.phtml'; /** * @var \Magento\GiftMessage\Helper\Message|null */ protected $_giftMessageMessage = null; /** * @var \Magento\Customer\Model\Session */ protected $_customerSession; /** * @var \Magento\Catalog\Block\Product\ImageBuilder */ protected $imageBuilder; /** * @var \Magento\Framework\App\Http\Context */ protected $httpContext; /** * Checkout type. 'onepage_checkout' and 'multishipping_address' are standard types * * @var string */ protected $checkoutType; /** * @param \Magento\Framework\View\Element\Template\Context $context * @param \Magento\Customer\Model\Session $customerSession * @param \Magento\GiftMessage\Helper\Message $giftMessageMessage * @param \Magento\Catalog\Block\Product\ImageBuilder $imageBuilder * @param \Magento\Framework\App\Http\Context $httpContext * @param array $data */ public function __construct( \Magento\Framework\View\Element\Template\Context $context, \Magento\Customer\Model\Session $customerSession, \Magento\GiftMessage\Helper\Message $giftMessageMessage, \Magento\Catalog\Block\Product\ImageBuilder $imageBuilder, \Magento\Framework\App\Http\Context $httpContext, array $data = [] ) { $this->imageBuilder = $imageBuilder; $this->_giftMessageMessage = $giftMessageMessage; $this->_customerSession = $customerSession; parent::__construct($context, $data); $this->_isScopePrivate = true; $this->httpContext = $httpContext; } /** * Set entity * * @param mixed $entity * @return $this * @codeCoverageIgnore */ public function setEntity($entity) { $this->_entity = $entity; return $this; } /** * Get entity * * @return mixed * @codeCoverageIgnore */ public function getEntity() { return $this->_entity; } /** * Set type * * @param string $type * @return $this * @codeCoverageIgnore */ public function setType($type) { $this->_type = $type; return $this; } /** * Get type * * @return string * @codeCoverageIgnore */ public function getType() { return $this->_type; } /** * Define checkout type * * @param string $type * @return $this * @codeCoverageIgnore */ public function setCheckoutType($type) { $this->checkoutType = $type; return $this; } /** * Return checkout type. Typical values are 'onepage_checkout' and 'multishipping_address' * * @return string|null * @codeCoverageIgnore */ public function getCheckoutType() { return $this->checkoutType; } /** * Check if entity has gift message * * @return bool */ public function hasGiftMessage() { return $this->getEntity()->getGiftMessageId() > 0; } /** * Init message * * @return $this */ protected function _initMessage() { $this->_giftMessage = $this->_giftMessageMessage->getGiftMessage($this->getEntity()->getGiftMessageId()); return $this; } /** * Get default value for From field * * @return string */ public function getDefaultFrom() { if ($this->httpContext->getValue(Context::CONTEXT_AUTH)) { return $this->_customerSession->getCustomer()->getName(); } else { return $this->getEntity()->getBillingAddress()->getName(); } } /** * Get default value for To field * * @return string */ public function getDefaultTo() { if ($this->getEntity()->getShippingAddress()) { return $this->getEntity()->getShippingAddress()->getName(); } else { return $this->getEntity()->getName(); } } /** * Retrieve message * * @param mixed $entity * @return string */ public function getMessage($entity = null) { if ($this->_giftMessage === null) { $this->_initMessage(); } if ($entity) { if (!$entity->getGiftMessage()) { $entity->setGiftMessage($this->_giftMessageMessage->getGiftMessage($entity->getGiftMessageId())); } return $entity->getGiftMessage(); } return $this->_giftMessage; } /** * Retrieve items * * @return array */ public function getItems() { if (!$this->hasData('items')) { $items = []; $entityItems = $this->getEntity()->getAllItems(); $this->_eventManager->dispatch('gift_options_prepare_items', ['items' => $entityItems]); foreach ($entityItems as $item) { if ($item->getParentItem()) { continue; } if ($this->isItemMessagesAvailable($item) || $item->getIsGiftOptionsAvailable()) { $items[] = $item; } } $this->setData('items', $items); } return $this->getData('items'); } /** * Check if gift messages for separate items are allowed * * @return bool */ public function isItemsAvailable() { return count($this->getItems()) > 0; } /** * Return items count * * @return int */ public function countItems() { return count($this->getItems()); } /** * Call method getItemsHasMessages * * @deprecated 100.2.4 Misspelled method * @see getItemsHasMessages */ public function getItemsHasMesssages() { return $this->getItemsHasMessages(); } /** * Check if items has messages * * @return bool * @SuppressWarnings(PHPMD.BooleanGetMethodName) */ public function getItemsHasMessages() { foreach ($this->getItems() as $item) { if ($item->getGiftMessageId()) { return true; } } return false; } /** * Check if entity has message * * @return bool * @SuppressWarnings(PHPMD.BooleanGetMethodName) */ public function getEntityHasMessage() { return $this->getEntity()->getGiftMessageId() > 0; } /** * Return escaped value * * @param string $value * @param string $defaultValue * @return string */ public function getEscaped($value, $defaultValue = '') { $value = ($value !== null && trim($value) != '') ? $value : $defaultValue; return $this->escapeHtml($value); } /** * Check availability of order level functionality * * @return bool */ public function isMessagesOrderAvailable() { $entity = $this->getEntity(); if (!$entity->hasIsGiftOptionsAvailable()) { $this->_eventManager->dispatch('gift_options_prepare', ['entity' => $entity]); } return $entity->getIsGiftOptionsAvailable(); } /** * Check availability of giftmessages on order level * * @return bool */ public function isMessagesAvailable() { return $this->_giftMessageMessage->isMessagesAllowed('quote', $this->getEntity()); } /** * Check availability of giftmessages for specified entity item * * @param \Magento\Framework\DataObject $item * @return bool */ public function isItemMessagesAvailable($item) { $type = $this->getType() !== null && substr($this->getType(), 0, 5) === 'multi' ? 'address_item' : 'item'; return $this->_giftMessageMessage->isMessagesAllowed($type, $item); } /** * Render HTML code referring to config settings * * @return string */ protected function _toHtml() { // render HTML when messages are allowed for order or for items only if ($this->isItemsAvailable() || $this->isMessagesAvailable() || $this->isMessagesOrderAvailable()) { return parent::_toHtml(); } return ''; } /** * Retrieve product image * * @param \Magento\Catalog\Model\Product $product * @param string $imageId * @param array $attributes * @return \Magento\Catalog\Block\Product\Image */ public function getImage($product, $imageId, $attributes = []) { return $this->imageBuilder->create($product, $imageId, $attributes); } }