Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Custom.php
Go to the documentation of this file.
1 <?php
13 
18 class Custom extends \Magento\Framework\App\Config\Value
19 {
20  const CONFIG_SCOPE = 'stores';
21 
22  const CONFIG_SCOPE_ID = 0;
23 
24  const XML_PATH_UNSECURE_BASE_URL = 'web/unsecure/base_url';
25  const XML_PATH_SECURE_BASE_URL = 'web/secure/base_url';
26  const XML_PATH_UNSECURE_BASE_LINK_URL = 'web/unsecure/base_link_url';
27  const XML_PATH_SECURE_BASE_LINK_URL = 'web/secure/base_link_url';
28  const XML_PATH_CURRENCY_OPTIONS_BASE = 'currency/options/base';
29  const XML_PATH_ADMIN_SECURITY_USEFORMKEY = 'admin/security/use_form_key';
30  const XML_PATH_MAINTENANCE_MODE = 'maintenance_mode';
31  const XML_PATH_WEB_COOKIE_COOKIE_LIFETIME = 'web/cookie/cookie_lifetime';
35  const XML_PATH_WEB_COOKIE_COOKE_PATH = 'web/cookie/cookie_path';
36  const XML_PATH_WEB_COOKIE_COOKIE_PATH = 'web/cookie/cookie_path';
37  const XML_PATH_WEB_COOKIE_COOKIE_DOMAIN = 'web/cookie/cookie_domain';
38  const XML_PATH_WEB_COOKIE_HTTPONLY = 'web/cookie/cookie_httponly';
39  const XML_PATH_WEB_COOKIE_RESTRICTION = 'web/cookie/cookie_restriction';
40  const XML_PATH_GENERAL_LOCALE_TIMEZONE = 'general/locale/timezone';
41  const XML_PATH_GENERAL_LOCALE_CODE = 'general/locale/code';
42  const XML_PATH_GENERAL_COUNTRY_DEFAULT = 'general/country/default';
43  const XML_PATH_SYSTEM_BACKUP_ENABLED = 'system/backup/enabled';
44  const XML_PATH_DEV_JS_MERGE_FILES = 'dev/js/merge_files';
45  const XML_PATH_DEV_JS_MINIFY_FILES = 'dev/js/minify_files';
46  const XML_PATH_DEV_CSS_MERGE_CSS_FILES = 'dev/css/merge_css_files';
47  const XML_PATH_DEV_CSS_MINIFY_FILES = 'dev/css/minify_files';
48  const XML_PATH_DEV_IMAGE_DEFAULT_ADAPTER = 'dev/image/default_adapter';
49  const XML_PATH_WEB_SESSION_USE_FRONTEND_SID = 'web/session/use_frontend_sid';
50  const XML_PATH_WEB_SESSION_USE_HTTP_X_FORWARDED_FOR = 'web/session/use_http_x_forwarded_for';
51  const XML_PATH_WEB_SESSION_USE_HTTP_VIA = 'web/session/use_http_via';
52  const XML_PATH_WEB_SESSION_USE_REMOTE_ADDR = 'web/session/use_remote_addr';
53  const XML_PATH_WEB_SESSION_USE_HTTP_USER_AGENT = 'web/session/use_http_user_agent';
54  const XML_PATH_CATALOG_FRONTEND_FLAT_CATALOG_CATEGORY = 'catalog/frontend/flat_catalog_category';
55  const XML_PATH_CATALOG_FRONTEND_FLAT_CATALOG_PRODUCT = 'catalog/frontend/flat_catalog_product';
56  const XML_PATH_TAX_WEEE_ENABLE = 'tax/weee/enable';
57  const XML_PATH_CATALOG_SEARCH_ENGINE = 'catalog/search/engine';
58  const XML_PATH_CARRIERS = 'carriers';
59  const XML_PATH_PAYMENT = 'payment';
60 
64  protected $_configWriter;
65 
76  public function __construct(
77  \Magento\Framework\Model\Context $context,
78  \Magento\Framework\Registry $registry,
80  \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
81  \Magento\Framework\App\Config\Storage\WriterInterface $configWriter,
82  \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null,
83  \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
84  array $data = []
85  ) {
86  $this->_configWriter = $configWriter;
87  parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
88  }
89 
95  public function beforeSave()
96  {
97  $value = $this->getValue();
98 
99  if (!empty($value) && substr($value, -2) !== '}}') {
100  $value = rtrim($value, '/') . '/';
101  }
102 
103  $this->setValue($value);
104  return $this;
105  }
106 
112  public function afterSave()
113  {
114  $useCustomUrl = $this->getData('groups/url/fields/use_custom/value');
115  $value = $this->getValue();
116 
117  if ($useCustomUrl == 1 && empty($value)) {
118  return $this;
119  }
120 
121  if ($useCustomUrl == 1) {
122  $this->_configWriter->save(
123  self::XML_PATH_SECURE_BASE_URL,
124  $value,
125  self::CONFIG_SCOPE,
126  self::CONFIG_SCOPE_ID
127  );
128  $this->_configWriter->save(
129  self::XML_PATH_UNSECURE_BASE_URL,
130  $value,
131  self::CONFIG_SCOPE,
132  self::CONFIG_SCOPE_ID
133  );
134  }
135 
136  return parent::afterSave();
137  }
138 }
getData($key='', $index=null)
Definition: DataObject.php:119
$config
Definition: fraud_order.php:17
$resource
Definition: bulk.php:12
__construct(\Magento\Framework\Model\Context $context, \Magento\Framework\Registry $registry, \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList, \Magento\Framework\App\Config\Storage\WriterInterface $configWriter, \Magento\Framework\Model\ResourceModel\AbstractResource $resource=null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection=null, array $data=[])
Definition: Custom.php:76
$value
Definition: gender.phtml:16