/** * 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; } } } }
/** * 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) { 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); } } } }
/** * 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); } }
/** * 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; } } } } }
/** * 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); } } } } }
/** * Overrides Drupal\configuration\Config\Configuration::alterDependencies(). */ public static function alterDependencies(Configuration $config) { if ($config->getComponent() == 'text_format') { $formats = filter_formats(); foreach (array_keys(wysiwyg_profile_load_all()) as $format) { // Text format may vanish without deleting the wysiwyg profile. if (isset($formats[$format]) && $format == $config->getIdentifier()) { $identifier = $format; $wysiwig_profile = new WysiwygConfiguration($identifier); $wysiwig_profile->build(); $config->addToOptionalConfigurations($wysiwig_profile); $wysiwig_profile->addToDependencies($config); } } } }
/** * 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::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; } } } } }
/** * 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() == '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); } } } }