/**
  * Implements Drupal\configuration\Config\Configuration::saveToActiveStore().
  */
 public function saveToActiveStore(ConfigIteratorSettings &$settings)
 {
     ctools_include('export');
     $object = ctools_export_crud_load($this->getComponent(), $this->getIdentifier());
     if ($object) {
         ctools_export_crud_delete($this->getComponent(), $object);
     }
     $data = $this->getData();
     $data->export_type = NULL;
     // get title_pane key if configured.
     if (isset($data->conf['display']->title_pane)) {
         $title_pane = $data->conf['display']->title_pane;
     }
     $display = panels_save_display($data->conf['display']);
     // title_pane configuration workaround.
     if (isset($display->content[$title_pane])) {
         $pid = $display->content[$title_pane]->pid;
         $display->{$title_pane} = $pid;
         db_update('panels_display')->fields(array('title_pane' => $pid))->condition('did', $display->did)->execute();
     }
     $data->conf['did'] = $data->conf['display']->did;
     unset($data->conf['display']);
     ctools_export_crud_save($this->getComponent(), $data);
     $settings->addInfo('imported', $this->getUniqueId());
 }
 /**
  * Implements Drupal\configuration\Config\Configuration::saveToActiveStore().
  */
 public function saveToActiveStore(ConfigIteratorSettings &$settings)
 {
     ctools_include('export');
     $object = ctools_export_crud_load($this->getComponent(), $this->getIdentifier());
     if ($object) {
         ctools_export_crud_delete($this->getComponent(), $object);
     }
     $data = $this->getData();
     $data->export_type = NULL;
     $group = field_group_unpack($data);
     ctools_export_crud_save($this->getComponent(), $group);
     $settings->addInfo('imported', $this->getUniqueId());
 }
 /**
  * Implements Drupal\configuration\Config\Configuration::saveToActiveStore().
  */
 public function saveToActiveStore(ConfigIteratorSettings &$settings)
 {
     ctools_include('export');
     $object = ctools_export_crud_load($this->getComponent(), $this->getIdentifier());
     if ($object) {
         ctools_export_crud_delete($this->getComponent(), $object);
     }
     $data = $this->getData();
     $data->export_type = NULL;
     panels_save_display($data->conf['display']);
     $data->conf['did'] = $data->conf['display']->did;
     unset($data->conf['display']);
     ctools_export_crud_save($this->getComponent(), $data);
     $settings->addInfo('imported', $this->getUniqueId());
 }
 /**
  * Implements Drupal\configuration\Config\Configuration::saveToActiveStore().
  */
 public function saveToActiveStore(ConfigIteratorSettings &$settings)
 {
     $info = (object) $this->getData();
     $info->base = 'node_content';
     $info->module = 'node';
     $info->custom = 1;
     $info->modified = 1;
     $info->locked = 0;
     node_type_save($info);
     $settings->addInfo('imported', $this->getUniqueId());
 }
Exemple #5
0
 /**
  * This function will exectute a callback function over all the configurations
  * objects that it process.
  *
  * @param  ConfigIteratorSettings $settings
  *   A ConfigIteratorSettings instance that specifies, which is the callback
  *   to execute. If dependencies and optional configurations should be
  *   processed too, and storage the cache of already processed configurations.
  *
  * @see importToActiveStore()
  * @see exportToDataStore()
  * @see revertActiveStore()
  * @see discoverRequiredModules()
  */
 public function iterate(ConfigIteratorSettings &$settings)
 {
     $callback = $settings->getCallback();
     $build_callback = $settings->getBuildCallback();
     if ($settings->alreadyProcessed($this) || $settings->excluded($this)) {
         return;
     }
     // First proccess requires the dependencies that have to be processed before
     // load the current configuration.
     if ($settings->processDependencies()) {
         foreach ($this->getDependencies() as $dependency => $config_dependency) {
             // In some callbacks, the dependencies storages the full config object
             // other simply use a plain string. If the object is available, use
             // that version.
             if (is_object($config_dependency)) {
                 $config = $config_dependency;
             } else {
                 $config = $settings->getFromCache($dependency);
                 if (!$config) {
                     $config = ConfigurationManagement::createConfigurationInstance($dependency);
                 }
             }
             $config->setContext($settings);
             $config->{$build_callback}();
             $config->iterate($settings);
         }
     }
     if ($settings->alreadyProcessed($this)) {
         return;
     }
     // Now, after proccess the dependencies, proccess the current configuration.
     $this->setContext($settings);
     $this->{$callback}($settings);
     $settings->addToCache($this);
     // After proccess the dependencies and the current configuration, proccess
     // the optionals.
     if ($settings->processOptionals()) {
         foreach ($this->getOptionalConfigurations() as $optional => $optional_config) {
             $config = $settings->getFromCache($optional);
             // In some callbacks, the optionals storages the full config object
             // other simply use a plain string. If the object is available, use
             // that version.
             if (is_object($optional_config)) {
                 $config = $optional_config;
             } else {
                 if (!$config) {
                     $config = ConfigurationManagement::createConfigurationInstance($optional);
                 }
             }
             $config->setContext($settings);
             $config->{$build_callback}();
             $config->iterate($settings);
         }
     }
 }
 /**
  * Implements Drupal\configuration\Config\Configuration::saveToActiveStore().
  */
 public function saveToActiveStore(ConfigIteratorSettings &$settings)
 {
     $role = $this->getData();
     if (!empty($role->machine_name) && ($existing = db_query("SELECT rid FROM {role} WHERE machine_name = :machine_name", array(':machine_name' => $role->machine_name))->fetchField())) {
         $role->rid = $existing;
     }
     user_role_save($role);
     $settings->addInfo('imported', $this->getUniqueId());
 }
 /**
  * Implements Drupal\configuration\Config\Configuration::saveToActiveStore().
  */
 public function saveToActiveStore(ConfigIteratorSettings &$settings)
 {
     $entity = $this->getData();
     $entity_type = $this->getComponent();
     if ($original = entity_load_single($entity_type, $this->getIdentifier())) {
         $entity->id = $original->id;
         unset($entity->is_new);
     }
     $entity->save();
     $settings->addInfo('imported', $this->getUniqueId());
 }
 /**
  * Overrides Drupal\configuration\Config\Configuration::saveToActiveStore().
  */
 public function saveToActiveStore(ConfigIteratorSettings &$settings)
 {
     $variable = $this->getData();
     variable_set($variable['name'], $variable['content']);
     $settings->addInfo('imported', $this->getUniqueId());
 }
 /**
  * Implements Drupal\configuration\Config\Configuration::saveToActiveStore().
  */
 public function saveToActiveStore(ConfigIteratorSettings &$settings)
 {
     field_info_cache_clear();
     // Load all the existing fields and instance up-front so that we don't
     // have to rebuild the cache all the time.
     $existing_fields = field_info_fields();
     $existing_instances = field_info_instances();
     $field = $this->getData();
     // Create or update field.
     $field_config = $field['field_config'];
     if (isset($existing_fields[$field_config['field_name']])) {
         $existing_field = $existing_fields[$field_config['field_name']];
         if ($field_config + $existing_field != $existing_field) {
             field_update_field($field_config);
         }
     } else {
         field_create_field($field_config);
         $existing_fields[$field_config['field_name']] = $field_config;
     }
     // Create or update field instance.
     $field_instance = $field['field_instance'];
     if (isset($existing_instances[$field_instance['entity_type']][$field_instance['bundle']][$field_instance['field_name']])) {
         $existing_instance = $existing_instances[$field_instance['entity_type']][$field_instance['bundle']][$field_instance['field_name']];
         if ($field_instance + $existing_instance != $existing_instance) {
             field_update_instance($field_instance);
         }
     } else {
         field_create_instance($field_instance);
         $existing_instances[$field_instance['entity_type']][$field_instance['bundle']][$field_instance['field_name']] = $field_instance;
     }
     variable_set('menu_rebuild_needed', TRUE);
     $settings->addInfo('imported', $this->getUniqueId());
 }
 /**
  * Implements Drupal\configuration\Config\Configuration::saveToActiveStore().
  */
 public function saveToActiveStore(ConfigIteratorSettings &$settings)
 {
     node_types_rebuild();
     $exist = FALSE;
     $roles = static::get_roles();
     $permissions_by_role = static::get_permissions(FALSE);
     $map = user_permission_get_modules();
     $permission = $this->getData();
     $perm = $permission['permission'];
     foreach ($roles as $role) {
         if (isset($map[$perm])) {
             $exist = TRUE;
             if (in_array($role, $permission['roles'])) {
                 $permissions_by_role[$role][$perm] = TRUE;
             } else {
                 $permissions_by_role[$role][$perm] = FALSE;
             }
         }
     }
     if (!$exist) {
         drupal_set_message(t('Configuration Management: Permission %permission does not exist and can not be set.', array('%permission' => $perm)), 'error');
     }
     // Write the updated permissions.
     foreach ($roles as $rid => $role) {
         if (isset($permissions_by_role[$role])) {
             user_role_change_permissions($rid, $permissions_by_role[$role]);
         }
     }
     $settings->addInfo('imported', $this->getUniqueId());
 }
 /**
  * Implements Drupal\configuration\Config\Configuration::saveToActiveStore().
  */
 public function saveToActiveStore(ConfigIteratorSettings &$settings)
 {
     $profile = $this->getData();
     // For profiles that doens't have editors assigned, provide a default
     // object to avoid sql exceptions.
     if (empty($profile)) {
         $profile = new \StdClass();
         $profile->editor = '';
         $profile->format = $this->getIdentifier();
         $profile->settings = array();
     }
     db_merge('wysiwyg')->key(array('format' => $profile->format))->fields(array('format' => $profile->format, 'editor' => $profile->editor, 'settings' => serialize($profile->settings)))->execute();
     wysiwyg_profile_cache_clear();
     $settings->addInfo('imported', $this->getUniqueId());
 }
 /**
  * Implements Drupal\configuration\Config\Configuration::saveToActiveStore().
  */
 public function saveToActiveStore(ConfigIteratorSettings &$settings)
 {
     $vocabulary = (object) $this->getData();
     if (!empty($vocabulary->vid)) {
         unset($vocabulary->vid);
     }
     $existing = taxonomy_get_vocabularies();
     foreach ($existing as $existing_vocab) {
         if ($existing_vocab->machine_name === $vocabulary->machine_name) {
             $vocabulary->vid = $existing_vocab->vid;
             break;
         }
     }
     taxonomy_vocabulary_save($vocabulary);
     $settings->addInfo('imported', $this->getUniqueId());
 }
 /**
  * Overrides Drupal\configuration\Config\Configuration::saveToActiveStore().
  */
 public function saveToActiveStore(ConfigIteratorSettings &$settings)
 {
     $data = $this->getData();
     // Determine if the menu already exists.
     $data['mlid'] = static::getMenuLinkByIdenfifier($this->getIdentifier());
     if (!empty($data['parent_identifier'])) {
         $data['plid'] = static::getMenuLinkByIdenfifier($this->data['parent_identifier'], TRUE);
     }
     menu_link_save($data);
     $settings->addInfo('imported', $this->getUniqueId());
 }
 /**
  * Returns a list of modules required to import the configurations indicated
  * in $list.
  *
  * @param  array  $modules
  *   The list of modules that are listed in the tracked.inc file.
  */
 public static function discoverRequiredModules($modules)
 {
     $settings = new ConfigIteratorSettings(array('info' => array('modules' => array(), 'modules_missing' => array(), 'modules_to_install' => array())));
     $stack = array();
     foreach ($modules as $module) {
         Configuration::getDependentModules($module, $stack);
     }
     $missing = array();
     $to_install = array();
     foreach ($stack as $module_name => $status) {
         if ($status == Configuration::moduleMissing) {
             $missing[] = $module_name;
         } elseif ($status == Configuration::moduleToInstall) {
             $to_install[] = $module_name;
         }
     }
     $settings->setInfo('modules_to_install', array_filter(array_unique($to_install)));
     $settings->setInfo('modules_missing', array_filter(array_unique($missing)));
     return $settings;
 }
 /**
  * Implements Drupal\configuration\Config\Configuration::saveToActiveStore().
  */
 public function saveToActiveStore(ConfigIteratorSettings &$settings)
 {
     filter_format_save($this->getData());
     $settings->addInfo('imported', $this->getUniqueId());
 }
 /**
  * Implements Drupal\configuration\Config\Configuration::saveToActiveStore().
  */
 public function saveToActiveStore(ConfigIteratorSettings &$settings)
 {
     $style = $this->getData();
     // Does an image style with the same name already exist?
     if ($existing_style = image_style_load($this->getIdentifier())) {
         $isExistingEditable = (bool) ($existing_style['storage'] & IMAGE_STORAGE_EDITABLE);
         $isNewEditable = (bool) ($style['storage'] & IMAGE_STORAGE_EDITABLE);
         // New style is using defaults -> revert existing.
         if (!$isNewEditable && $isExistingEditable) {
             image_default_style_revert($this->getIdentifier());
         } elseif ($isExistingEditable && $isNewEditable) {
             $style['isid'] = $existing_style['isid'];
             $style = image_style_save($style);
             if (!empty($existing_style['effects'])) {
                 foreach ($existing_style['effects'] as $effect) {
                     image_effect_delete($effect);
                 }
             }
             if (!empty($style['effects'])) {
                 foreach ($style['effects'] as $effect) {
                     $effect['isid'] = $style['isid'];
                     image_effect_save($effect);
                 }
             }
         } elseif ($isNewEditable && !$isExistingEditable) {
             if (!empty($existing_style['isid'])) {
                 $style['isid'] = $existing_style['isid'];
             }
             $style = image_style_save($style);
             if (!empty($style['effects'])) {
                 foreach ($style['effects'] as $effect) {
                     $effect['isid'] = $style['isid'];
                     image_effect_save($effect);
                 }
             }
         } else {
         }
     } else {
         $style = image_style_save($style);
         if (!empty($style['effects'])) {
             foreach ($style['effects'] as $effect) {
                 $effect['isid'] = $style['isid'];
                 image_effect_save($effect);
             }
         }
         image_style_flush($style);
     }
     $settings->addInfo('imported', $this->getUniqueId());
 }
 /**
  * Implements Drupal\configuration\Config\Configuration::saveToActiveStore().
  */
 public function saveToActiveStore(ConfigIteratorSettings &$settings)
 {
     if ($style = image_style_load($this->getIdentifier())) {
         if (!empty($style['isid'])) {
             image_style_delete($style);
         }
     }
     image_default_style_save($this->getData());
     $settings->addInfo('imported', $this->getUniqueId());
 }