![]() 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/magento/module-customer/Block/Widget/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Customer\Block\Widget; use Magento\Customer\Api\AddressMetadataInterface; use Magento\Customer\Api\CustomerMetadataInterface; use Magento\Customer\Api\Data\CustomerInterface; use Magento\Customer\Helper\Address as AddressHelper; use Magento\Customer\Model\Options; use Magento\Framework\View\Element\Template\Context; /** * Widget for showing customer name. * * @method CustomerInterface getObject() * @method Name setObject(CustomerInterface $customer) * * @SuppressWarnings(PHPMD.DepthOfInheritance) */ class Name extends AbstractWidget { /** * @var AddressMetadataInterface */ protected $addressMetadata; /** * @var Options */ protected $options; /** * @param Context $context * @param AddressHelper $addressHelper * @param CustomerMetadataInterface $customerMetadata * @param Options $options * @param AddressMetadataInterface $addressMetadata * @param array $data */ public function __construct( Context $context, AddressHelper $addressHelper, CustomerMetadataInterface $customerMetadata, Options $options, AddressMetadataInterface $addressMetadata, array $data = [] ) { $this->options = $options; parent::__construct($context, $addressHelper, $customerMetadata, $data); $this->addressMetadata = $addressMetadata; $this->_isScopePrivate = true; } /** * @inheritdoc */ public function _construct() { parent::_construct(); // default template location $this->setTemplate('Magento_Customer::widget/name.phtml'); } /** * Can show config value * * @param string $key * @return bool */ protected function _showConfig($key) { return (bool)$this->getConfig($key); } /** * Can show prefix * * @return bool */ public function showPrefix() { return $this->_isAttributeVisible('prefix'); } /** * Define if prefix attribute is required * * @return bool */ public function isPrefixRequired() { return $this->_isAttributeRequired('prefix'); } /** * Retrieve name prefix drop-down options * * @return array|bool */ public function getPrefixOptions() { $prefixOptions = $this->options->getNamePrefixOptions(); if ($this->getObject() && !empty($prefixOptions)) { $prefixOption = $this->getObject()->getPrefix(); $oldPrefix = $this->escapeHtml(trim($prefixOption ?? '')); if ($prefixOption !== null && !isset($prefixOptions[$oldPrefix]) && !isset($prefixOptions[$prefixOption])) { $prefixOptions[$oldPrefix] = $oldPrefix; } } return $prefixOptions; } /** * Define if middle name attribute can be shown * * @return bool */ public function showMiddlename() { return $this->_isAttributeVisible('middlename'); } /** * Define if middlename attribute is required * * @return bool */ public function isMiddlenameRequired() { return $this->_isAttributeRequired('middlename'); } /** * Define if suffix attribute can be shown * * @return bool */ public function showSuffix() { return $this->_isAttributeVisible('suffix'); } /** * Define if suffix attribute is required * * @return bool */ public function isSuffixRequired() { return $this->_isAttributeRequired('suffix'); } /** * Retrieve name suffix drop-down options * * @return array|bool */ public function getSuffixOptions() { $suffixOptions = $this->options->getNameSuffixOptions(); if ($this->getObject() && !empty($suffixOptions)) { $suffixOption = $this->getObject()->getSuffix(); $oldSuffix = $this->escapeHtml(trim($suffixOption ?? '')); if ($suffixOption !== null && !isset($suffixOptions[$oldSuffix]) && !isset($suffixOptions[$suffixOption])) { $suffixOptions[$oldSuffix] = $oldSuffix; } } return $suffixOptions; } /** * Class name getter * * @return string */ public function getClassName() { if (!$this->hasData('class_name')) { $this->setData('class_name', 'customer-name'); } return $this->getData('class_name'); } /** * Container class name getter * * @return string */ public function getContainerClassName() { $class = $this->getClassName(); $class .= $this->showPrefix() ? '-prefix' : ''; $class .= $this->showMiddlename() ? '-middlename' : ''; $class .= $this->showSuffix() ? '-suffix' : ''; return $class; } /** * @inheritdoc */ protected function _getAttribute($attributeCode) { if ($this->getForceUseCustomerAttributes() || $this->getObject() instanceof CustomerInterface) { return parent::_getAttribute($attributeCode); } try { $attribute = $this->addressMetadata->getAttributeMetadata($attributeCode); } catch (\Magento\Framework\Exception\NoSuchEntityException $e) { return null; } if ($this->getForceUseCustomerRequiredAttributes() && $attribute && !$attribute->isRequired()) { $customerAttribute = parent::_getAttribute($attributeCode); if ($customerAttribute && $customerAttribute->isRequired()) { $attribute = $customerAttribute; } } return $attribute; } /** * Retrieve store attribute label * * @param string $attributeCode * @return string */ public function getStoreLabel($attributeCode) { $attribute = $this->_getAttribute($attributeCode); return $attribute ? __($attribute->getStoreLabel()) : ''; } /** * Get string with frontend validation classes for attribute * * @param string $attributeCode * @return string */ public function getAttributeValidationClass($attributeCode) { $attributeMetadata = $this->_getAttribute($attributeCode); return $attributeMetadata ? $attributeMetadata->getFrontendClass() : ''; } /** * Check if attribute is required * * @param string $attributeCode * @return bool */ private function _isAttributeRequired($attributeCode) { $attributeMetadata = $this->_getAttribute($attributeCode); return $attributeMetadata ? (bool)$attributeMetadata->isRequired() : false; } /** * Check if attribute is visible * * @param string $attributeCode * @return bool */ private function _isAttributeVisible($attributeCode) { $attributeMetadata = $this->_getAttribute($attributeCode); return $attributeMetadata ? (bool)$attributeMetadata->isVisible() : false; } }