/**
  * Function for setting Config value of current store
  * @param string $path,
  * @param string $value,
  */
 public function setCurrentStoreConfigValue($path, $value)
 {
     $data = ['path' => $path, 'scope' => 'stores', 'scope_id' => $this->_storeId, 'scope_code' => $this->_storeCode, 'value' => $value];
     $this->_backendModel->addData($data);
     $this->_transaction->addObject($this->_backendModel);
     $this->_transaction->save();
 }
 /**
  * Validate the theme if being in use in default, website, or store.
  *
  * @param string[] $themePaths
  * @return array
  */
 public function validateIsThemeInUse($themePaths)
 {
     $messages = [];
     $themesById = [];
     foreach ($themePaths as $themePath) {
         $theme = $this->themeProvider->getThemeByFullPath($themePath);
         $themesById[$theme->getId()] = $themePath;
     }
     $configData = $this->configData->getCollection()->addFieldToFilter('path', DesignInterface::XML_PATH_THEME_ID)->addFieldToFilter('value', ['in' => array_keys($themesById)]);
     foreach ($configData as $row) {
         switch ($row['scope']) {
             case 'default':
                 $messages[] = '<error>' . $themesById[$row['value']] . ' is in use in default config' . '</error>';
                 break;
             case ScopeInterface::SCOPE_WEBSITES:
                 $messages[] = '<error>' . $themesById[$row['value']] . ' is in use in website ' . $this->storeManager->getWebsite($row['scope_id'])->getName() . '</error>';
                 break;
             case ScopeInterface::SCOPE_STORES:
                 $messages[] = '<error>' . $themesById[$row['value']] . ' is in use in store ' . $this->storeManager->getStore($row['scope_id'])->getName() . '</error>';
                 break;
         }
     }
     return $messages;
 }
Beispiel #3
0
 /**
  * Get assigned scopes collection of a theme
  *
  * @param string $scope
  * @param string $configPath
  * @return \Magento\Core\Model\Resource\Config\Data\Collection
  */
 protected function _getAssignedScopesCollection($scope, $configPath)
 {
     return $this->_configData->getCollection()->addFieldToFilter('scope', $scope)->addFieldToFilter('path', $configPath);
 }
Beispiel #4
0
 /**
  * Set correct scope if isSingleStoreMode = true
  *
  * @param \Magento\Backend\Model\Config\Structure\Element\Field $fieldConfig
  * @param \Magento\Framework\App\Config\ValueInterface $dataObject
  * @return void
  */
 protected function _checkSingleStoreMode(\Magento\Backend\Model\Config\Structure\Element\Field $fieldConfig, $dataObject)
 {
     $isSingleStoreMode = $this->_storeManager->isSingleStoreMode();
     if (!$isSingleStoreMode) {
         return;
     }
     if (!$fieldConfig->showInDefault()) {
         $websites = $this->_storeManager->getWebsites();
         $singleStoreWebsite = array_shift($websites);
         $dataObject->setScope('websites');
         $dataObject->setWebsiteCode($singleStoreWebsite->getCode());
         $dataObject->setScopeCode($singleStoreWebsite->getCode());
         $dataObject->setScopeId($singleStoreWebsite->getId());
     }
 }