![]() 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-catalog/Controller/Adminhtml/Product/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ /** * Catalog product attribute controller */ namespace Magento\Catalog\Controller\Adminhtml\Product; use Laminas\Validator\Regex; use Magento\Framework\Controller\Result; use Magento\Framework\View\Result\PageFactory; abstract class Attribute extends \Magento\Backend\App\Action { /** * Authorization level of a basic admin session * * @see _isAllowed() */ public const ADMIN_RESOURCE = 'Magento_Catalog::attributes_attributes'; /** * @var \Magento\Framework\Cache\FrontendInterface */ protected $_attributeLabelCache; /** * @var string */ protected $_entityTypeId; /** * @var \Magento\Framework\Registry */ protected $_coreRegistry = null; /** * @var \Magento\Framework\View\Result\PageFactory */ protected $resultPageFactory; /** * Constructor * * @param \Magento\Backend\App\Action\Context $context * @param \Magento\Framework\Cache\FrontendInterface $attributeLabelCache * @param \Magento\Framework\Registry $coreRegistry * @param \Magento\Framework\View\Result\PageFactory $resultPageFactory */ public function __construct( \Magento\Backend\App\Action\Context $context, \Magento\Framework\Cache\FrontendInterface $attributeLabelCache, \Magento\Framework\Registry $coreRegistry, PageFactory $resultPageFactory ) { $this->_coreRegistry = $coreRegistry; $this->_attributeLabelCache = $attributeLabelCache; $this->resultPageFactory = $resultPageFactory; parent::__construct($context); } /** * Dispatch request * * @param \Magento\Framework\App\RequestInterface $request * @return \Magento\Framework\App\ResponseInterface */ public function dispatch(\Magento\Framework\App\RequestInterface $request) { $this->_entityTypeId = $this->_objectManager->create( \Magento\Eav\Model\Entity::class )->setType( \Magento\Catalog\Model\Product::ENTITY )->getTypeId(); return parent::dispatch($request); } /** * Method to create action page. * * @param \Magento\Framework\Phrase|null $title * @return \Magento\Backend\Model\View\Result\Page */ protected function createActionPage($title = null) { /** @var \Magento\Backend\Model\View\Result\Page $resultPage */ $resultPage = $this->resultPageFactory->create(); if ($this->getRequest()->getParam('popup')) { if ($this->getRequest()->getParam('product_tab') === 'variations') { $resultPage->addHandle(['popup', 'catalog_product_attribute_edit_product_tab_variations_popup']); } else { $resultPage->addHandle(['popup', 'catalog_product_attribute_edit_popup']); } $pageConfig = $resultPage->getConfig(); $pageConfig->addBodyClass('attribute-popup'); } else { $resultPage->addBreadcrumb(__('Catalog'), __('Catalog')) ->addBreadcrumb(__('Manage Product Attributes'), __('Manage Product Attributes')) ->setActiveMenu('Magento_Catalog::catalog_attributes_attributes'); if (!empty($title)) { $resultPage->addBreadcrumb($title, $title); } } $resultPage->getConfig()->getTitle()->prepend(__('Product Attributes')); return $resultPage; } /** * Generate code from label * * @param string $label * @return string */ protected function generateCode($label) { $code = substr( preg_replace( '/[^a-z_0-9]/', '_', $this->_objectManager->create(\Magento\Catalog\Model\Product\Url::class)->formatUrlKey($label) ), 0, 30 ); $validatorAttrCode = new Regex(['pattern' => '/^[a-z][a-z_0-9]{0,29}[a-z0-9]$/']); if (!$validatorAttrCode->isValid($code)) { // md5() here is not for cryptographic use. // phpcs:ignore Magento2.Security.InsecureFunction $code = 'attr_' . ($code ?: substr(md5(time()), 0, 8)); } return $code; } }