/**
  * Overrides Drupal\configuration\Config\Configuration::alterDependencies().
  */
 public static function alterDependencies(Configuration $config)
 {
     if ($config->getComponent() == 'content_type') {
         $permissions = node_list_permissions($config->getIdentifier());
         foreach (array_keys($permissions) as $permission) {
             $identifier = str_replace(' ', '_', $permission);
             $perm = new PermissionConfiguration($identifier);
             $perm->build();
             // Add the content type as a dependency of the permission.
             $perm->addToDependencies($config);
             // Add the permission as a child configuration of the content type
             // The permission is not required to load the content type but is
             // a nice to have.
             $config->addToOptionalConfigurations($perm);
         }
     } elseif ($config->getComponent() == 'text_format') {
         $format = $config->getData();
         $permission = filter_permission_name($format);
         if (!empty($permission)) {
             $identifier = str_replace(' ', '_', $permission);
             $perm = new PermissionConfiguration($identifier);
             $perm->build();
             // Add the text format as a dependency of the permission.
             $perm->addToDependencies($config);
             // Add the permission as a child configuration of the filter
             // The permission is not required to load the filter format but is
             // a nice to have.
             $config->addToOptionalConfigurations($perm);
         }
     }
 }
 /**
  * Overrides Drupal\configuration\Config\Configuration::alterDependencies().
  */
 public static function alterDependencies(Configuration $config)
 {
     // Dependencies for Page Manager Pages. Each page has a handler.
     if ($config->getComponent() == 'page_manager_pages' && !$config->broken) {
         $config_data = $config->getData();
         $id = 'page_manager_handlers.page_' . $config_data->name . '_panel_context';
         $page_handler = ConfigurationManagement::createConfigurationInstance($id);
         $page_handler->build();
         $config->addToDependencies($page_handler);
     }
 }
Example #3
0
 /**
  * Overrides Drupal\configuration\Config\Configuration::alterDependencies().
  */
 public static function alterDependencies(Configuration $config)
 {
     if ($config->getComponent() == 'menu_link') {
         $config_data = $config->getData();
         if (!empty($config_data) && empty($config_data['plid'])) {
             $menu = new MenuConfiguration(str_replace('-', '_', $config_data['menu_name']));
             $menu->build();
             $config->addToDependencies($menu);
         }
     }
 }
 /**
  * Overrides Drupal\configuration\Config\Configuration::alterDependencies().
  */
 public static function alterDependencies(Configuration $config)
 {
     if ($config->getComponent() == 'field') {
         // Check if the field is using a image style
         $field = $config->data['field_config'];
         if ($field['type'] == 'taxonomy_term_reference' && $field['settings']['allowed_values']) {
             foreach ($field['settings']['allowed_values'] as $vocabulary) {
                 $vocabulary_conf = new VocabularyConfiguration($vocabulary['vocabulary']);
                 $vocabulary_conf->build();
                 $config->addToDependencies($vocabulary_conf);
             }
         }
     }
 }
 /**
  * Overrides Drupal\configuration\Config\Configuration::alterDependencies().
  */
 public static function alterDependencies(Configuration $config)
 {
     if ($config->getComponent() == 'permission') {
         foreach (node_permissions_get_configured_types() as $type) {
             foreach (array_keys(node_list_permissions($type)) as $permission) {
                 $data = $config->getData();
                 if ($permission == $data['permission']) {
                     $content_type = ConfigurationManagement::createConfigurationInstance('content_type.' . $type);
                     $config->addToDependencies($content_type);
                     break;
                 }
             }
         }
     }
 }
Example #6
0
 /**
  * Overrides Drupal\configuration\Config\Configuration::saveToActiveStore().
  */
 public static function alterDependencies(Configuration $config)
 {
     if ($config->getComponent() == 'permission') {
         $data = $config->getData();
         if (!empty($data['roles'])) {
             $role_objects = db_select('role', 'r')->fields('r', array('machine_name', 'rid'))->condition('name', $data['roles'], 'IN')->execute();
             foreach ($role_objects as $role_object) {
                 if ($role_object->rid > 2 && !empty($role_object->machine_name)) {
                     $role_config = ConfigurationManagement::createConfigurationInstance('role.' . $role_object->machine_name);
                     $config->addToDependencies($role_config);
                 }
             }
         }
     }
 }
Example #7
0
 /**
  * Overrides Drupal\configuration\Config\Configuration::__construct().
  */
 public function __construct($identifier, $component = '')
 {
     // Because CTools can handle multiple types of configurations we need to
     // know what is the current handled configuration. Usually this component is
     // the main table where the ctools object lives.
     $this->component = $component;
     parent::__construct($identifier, $component);
 }
 /**
  * Overrides Drupal\configuration\Config\Configuration::alterDependencies().
  */
 public static function alterDependencies(Configuration $config)
 {
     if ($config->getComponent() == 'field') {
         // Check if the field is using a image style
         $field = $config->data['field_instance'];
         if (!empty($field['display'])) {
             foreach ($field['display'] as $display) {
                 if (!empty($display['settings']) && !empty($display['settings']['image_style'])) {
                     $identifier = $display['settings']['image_style'];
                     $image_style = new ImageStyleConfiguration($identifier);
                     $image_style->build();
                     $config->addToDependencies($image_style);
                 }
             }
         }
     }
 }
 /**
  * Overrides Drupal\configuration\Config\Configuration::__construct().
  */
 public function __construct($identifier, $component = '')
 {
     // Because Entity API can handle multiple types of configurations we need to
     // know what is the current handled configuration. Usually this component is
     // the entity type.
     $this->component = $component;
     parent::__construct($identifier, $component);
 }
 /**
  * Overrides Drupal\configuration\Config\Configuration::alterDependencies().
  */
 public static function alterDependencies(Configuration $config)
 {
     if ($config->getComponent() == 'permission') {
         $panelizers = static::getAllIdentifiers('panelizer_defaults');
         $permission = $config->getData();
         if (strpos($permission['permission'], 'administer panelizer ') === 0) {
             list(, , $entity_type, $bundle) = explode(' ', $permission['permission']);
             $id = $entity_type . ':' . $bundle;
             foreach ($panelizers as $panelizer_id) {
                 if (strpos($panelizer_id, $id) === 0) {
                     $panelizer = ConfigurationManagement::createConfigurationInstance('panelizer_defaults.' . $panelizer_id);
                     $panelizer->build();
                     $config->addToDependencies($panelizer);
                 }
             }
         }
     }
 }
 /**
  * Overrides Drupal\configuration\Config\Configuration::alterDependencies().
  */
 public static function alterDependencies(Configuration $config)
 {
     if ($config->getComponent() == 'permission') {
         // Generate permissions for each text format. Warn the administrator that any
         // of them are potentially unsafe.
         foreach (filter_formats() as $format) {
             $permission = filter_permission_name($format);
             if (!empty($permission)) {
                 $data = $config->getData();
                 if ($permission == $data['permission']) {
                     $text_format = ConfigurationManagement::createConfigurationInstance('text_format.' . $format->format);
                     $config->addToDependencies($text_format);
                     break;
                 }
             }
         }
     }
 }
Example #12
0
 /**
  * Overrides Drupal\configuration\Config\Configuration::alterDependencies().
  */
 public static function alterDependencies(Configuration $config)
 {
     static $cache;
     if (!isset($cache)) {
         $cache = array();
     }
     // Dependencies for Page Manager Handlers.
     if ($config->getComponent() == 'page_manager_handlers' && !$config->broken) {
         // This line seems to be inconsistent when executed from drush or browser.
         $config_data = $config->getData();
         // This alternative works more consistent althoug it's no so pretty.
         if (!isset($config_data->conf['display'])) {
             if (!isset($cache[$config->getUniqueId()])) {
                 @eval(ctools_export_crud_export($config->getComponent(), $config_data));
                 $cache[$config->getUniqueId()] = $handler;
             } else {
                 $handler = $cache[$config->getUniqueId()];
             }
             $config_data = $handler;
         }
         foreach ($config_data->conf['display']->content as $object) {
             $type = $object->type;
             switch ($type) {
                 case 'block':
                     list($subtype, $id, ) = explode('-', $object->subtype);
                     switch ($subtype) {
                         // Display block from a view.
                         case 'views':
                             $config_id = 'views_view.' . $id;
                             $view = ConfigurationManagement::createConfigurationInstance($config_id);
                             $view->build();
                             $config->addToDependencies($view);
                             $config->addToDependencies($view);
                             break;
                     }
                     break;
                     // A view added directly.
                 // A view added directly.
                 case 'views':
                     $config_id = 'views_view.' . $object->subtype;
                     $view = ConfigurationManagement::createConfigurationInstance($config_id);
                     $view->build();
                     $config->addToDependencies($view);
                     break;
                     // A view added using the Views content panes module.
                 // A view added using the Views content panes module.
                 case 'views_panes':
                     list($subtype, ) = explode('-', $object->subtype);
                     $config_id = 'views_view.' . $subtype;
                     $view = ConfigurationManagement::createConfigurationInstance($config_id);
                     $view->build();
                     $config->addToDependencies($view);
                     break;
             }
         }
     }
 }
Example #13
0
 /**
  * Overrides Drupal\configuration\Config\Configuration::alterDependencies().
  */
 public static function alterDependencies(Configuration $config)
 {
     if ($config->getComponent() == 'content_type') {
         $variables = array('field_bundle_settings_node_', 'language_content_type', 'node_options', 'node_preview', 'node_submitted');
         if (module_exists('comment')) {
             $variables += array('comment', 'comment_anonymous', 'comment_controls', 'comment_default_mode', 'comment_default_order', 'comment_default_per_page', 'comment_form_location', 'comment_preview', 'comment_subject_field');
         }
         if (module_exists('menu')) {
             $variables += array('menu_options', 'menu_parent');
         }
         $entity_type = $config->getEntityType();
         $fields = field_info_instances($entity_type, $config->getIdentifier());
         foreach ($variables as $variable) {
             $identifier = $variable . '_' . $config->getIdentifier();
             $in_db = db_query("SELECT 1 FROM {variable} WHERE name = :name", array(':name' => $identifier))->fetchField();
             // Some variables are not in the database and their values are
             // provided by the second paramenter of variable_get.
             // Only inform about configurations that are indeed in the database.
             if ($in_db) {
                 $var_config = new VariableConfiguration($identifier);
                 $var_config->build();
                 $config->addToDependencies($var_config);
             }
         }
     }
 }
 /**
  * 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;
 }
Example #15
0
 /**
  * Overrides Drupal\configuration\Config\Configuration::findDependencies().
  */
 public function findDependencies()
 {
     $format = $this->getIdentifier();
     $formats = filter_formats();
     if (isset($formats[$format])) {
         $filter_format = ConfigurationManagement::createConfigurationInstance('text_format.' . $format);
         $this->addToDependencies($filter_format);
     }
     parent::findDependencies();
 }
Example #16
0
 /**
  * Overrides Drupal\configuration\Config\Configuration::findDependencies().
  */
 public function findDependencies()
 {
     list($entity_type, $field_name, $bundle_name) = explode('.', $this->getIdentifier());
     $supported_handler = FALSE;
     if ($entity_type == 'node') {
         $parent_config = ConfigurationManagement::createConfigurationInstance('content_type.' . $bundle_name);
         $this->addToDependencies($parent_config);
     } elseif ($entity_type == 'vocabulary') {
         $parent_config = ConfigurationManagement::createConfigurationInstance('vocabulary.' . $bundle_name);
         $this->addToDependencies($parent_config);
     }
     parent::findDependencies();
 }
Example #17
0
 /**
  * Add a new dependency for this configuration.
  */
 public function addToDependencies(Configuration $config)
 {
     if (!isset($this->dependencies)) {
         $this->dependencies = array();
     }
     $this->dependencies[$config->getUniqueId()] = $config;
     return $this;
 }
Example #18
0
 /**
  * Overrides Drupal\configuration\Config\Configuration::alterDependencies().
  */
 public static function alterDependencies(Configuration $config)
 {
     if ($config->getComponent() == 'menu_link') {
         $mlid = static::getMenuLinkByIdenfifier($config->getIdentifier());
         $menulink = menu_link_load($mlid);
         if (!empty($menulink['plid'])) {
             $parent_menulink = menu_link_load($menulink['plid']);
             if ($parent_menulink) {
                 $identifier = sha1(str_replace('-', '_', $parent_menulink['menu_name']) . ':' . $parent_menulink['link_path']);
                 $menulink_config = new MenuLinkConfiguration($identifier);
                 $menulink_config->build();
                 $config->addToDependencies($menulink_config);
             }
         }
     }
 }