12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\PageCache\Model\System\Config\Backend;
- /**
- * Backend model for processing Varnish settings
- *
- * Class Varnish
- */
- class Varnish extends \Magento\Framework\App\Config\Value
- {
- /**
- * @var array
- */
- protected $defaultValues;
- /**
- * Set default data if empty fields have been left
- *
- * @return $this|\Magento\Framework\Model\AbstractModel
- * @throws \Magento\Framework\Exception\LocalizedException
- */
- public function beforeSave()
- {
- $data = $this->_getDefaultValues();
- $currentValue = $this->getValue();
- if (!$currentValue) {
- $replaceValue = isset($data[$this->getField()]) ? $data[$this->getField()] : false;
- $this->setValue($replaceValue);
- }
- return $this;
- }
- /**
- * Get Default Config Values
- *
- * @return array
- */
- protected function _getDefaultValues()
- {
- if (!$this->defaultValues) {
- $this->defaultValues = $this->_config->getValue('system/full_page_cache/default');
- }
- return $this->defaultValues;
- }
- /**
- * If fields are empty fill them with default data
- *
- * @return $this|\Magento\Framework\Model\AbstractModel
- */
- protected function _afterLoad()
- {
- $data = $this->_getDefaultValues();
- $currentValue = $this->getValue();
- if (!$currentValue) {
- foreach ($data as $field => $value) {
- if (strstr($this->getPath(), $field)) {
- $this->setValue($value);
- $this->save();
- break;
- }
- }
- }
- return $this;
- }
- }
|