updated mailgun, mailsystem, honeypot, googleanalitycs, features, content_taxonomy

This commit is contained in:
2019-05-13 17:55:28 +02:00
parent 2ffad14939
commit e08a2639c6
54 changed files with 1911 additions and 423 deletions

View File

@@ -871,7 +871,7 @@ function features_export_build_form_submit($form, &$form_state) {
$feature = $form['#feature'];
$export = _features_export_build($feature, $form_state);
$export = _features_export_generate($export, $form_state, $feature);
$generate = ($form_state['values']['op'] == $form_state['values']['generate']);
$generate = isset($form_state['values']['generate']) && ($form_state['values']['op'] == $form_state['values']['generate']);
$module_name = $form_state['values']['module_name'];
if ($generate && !user_access('generate features')) {
@@ -1628,9 +1628,9 @@ function _features_get_features_list() {
$cache = cache_get('features:features_list');
if ($cache) {
$features = $cache->data;
$features = $cache->data;
}
if (empty($features)) {
// Clear & rebuild key caches
features_get_info(NULL, NULL, TRUE);

View File

@@ -519,7 +519,7 @@ function drush_features_export() {
drush_die('Aborting.');
}
$export = _drush_features_generate_export($items, $module);
_features_populate($items, $export[info], $export[name]);
_features_populate($items, $export['info'], $export['name']);
_drush_features_export($export['info'], $module, $directory);
}
}

View File

@@ -315,7 +315,7 @@ function features_export_render($export, $module_name, $reset = FALSE) {
$code = array_filter($code);
foreach ($code as $filename => $contents) {
if ($filename != '_files') {
$code[$filename] = "<?php\n/**\n * @file\n * {$module_name}.{$filename}.inc\n */\n\n". implode("\n\n", $contents) ."\n";
$code[$filename] = "<?php\n\n/**\n * @file\n * {$module_name}.{$filename}.inc\n */\n\n". implode("\n\n", $contents) ."\n";
}
}
@@ -332,8 +332,8 @@ function features_export_render($export, $module_name, $reset = FALSE) {
$code['info'] = features_export_info($export);
// Used to create or manipulate the generated .module for features.inc.
$modulefile_features_inc = "<?php\n/**\n * @file\n * Code for the {$export['name']} feature.\n */\n\ninclude_once '{$module_name}.features.inc';\n";
$modulefile_blank = "<?php\n/**\n * @file\n * Drupal needs this blank file.\n */\n";
$modulefile_features_inc = "<?php\n\n/**\n * @file\n * Code for the {$export['name']} feature.\n */\n\ninclude_once '{$module_name}.features.inc';\n";
$modulefile_blank = "<?php\n\n/**\n * @file\n * Drupal needs this blank file.\n */\n";
// Prepare the module
// If module exists, let it be and include it in the files
@@ -1088,13 +1088,6 @@ function _features_is_assoc($array) {
* returns a copy of the object or array with recursion removed
*/
function features_remove_recursion($o) {
static $replace;
if (!isset($replace)) {
$replace = create_function(
'$m',
'$r="\x00{$m[1]}ecursion_features";return \'s:\'.strlen($r.$m[2]).\':"\'.$r.$m[2].\'";\';'
);
}
if (is_array($o) || is_object($o)) {
$re = '#(r|R):([0-9]+);#';
$serialize = serialize($o);
@@ -1104,7 +1097,7 @@ function features_remove_recursion($o) {
$chunk = substr($serialize, $last, $pos - $last);
if (preg_match($re, $chunk)) {
$length = strlen($chunk);
$chunk = preg_replace_callback($re, $replace, $chunk);
$chunk = preg_replace_callback($re, '_features_remove_recursion', $chunk);
$serialize = substr($serialize, 0, $last) . $chunk . substr($serialize, $last + ($pos - $last));
$pos += strlen($chunk) - $length;
}
@@ -1114,13 +1107,21 @@ function features_remove_recursion($o) {
$last += 4 + $length;
$pos = $last;
}
$serialize = substr($serialize, 0, $last) . preg_replace_callback($re, $replace, substr($serialize, $last));
$serialize = substr($serialize, 0, $last) . preg_replace_callback($re, '_features_remove_recursion', substr($serialize, $last));
$o = unserialize($serialize);
}
}
return $o;
}
/**
* Callback function for preg_replace_callback() to remove recursion.
*/
function _features_remove_recursion($m) {
$r = "\x00{$m[1]}ecursion_features";
return 's:' . strlen($r . $m[2]) . ':"' . $r . $m[2] . '";';
}
/**
* Helper to removes a set of keys an object/array.
*

View File

@@ -10,9 +10,8 @@ test_dependencies[] = views
configure = admin/structure/features/settings
; Information added by Drupal.org packaging script on 2016-04-18
version = "7.x-2.10"
; Information added by Drupal.org packaging script on 2018-11-01
version = "7.x-2.11"
core = "7.x"
project = "features"
datestamp = "1461011641"
datestamp = "1541050686"

View File

@@ -503,6 +503,7 @@ function features_load_feature($name, $reset = FALSE) {
$features[$name]->name = $name;
$features[$name]->filename = drupal_get_path('module', $name) . '/' . $name . '.module';
$features[$name]->type = 'module';
$features[$name]->status = module_exists($name);
$features[$name]->info = $info + $defaults;
}
}

View File

@@ -274,7 +274,7 @@ function field_base_features_rebuild($module) {
// Create or update field.
if (isset($existing_fields[$field['field_name']])) {
$existing_field = $existing_fields[$field['field_name']];
$array_diff_result = drupal_array_diff_assoc_recursive($field + $existing_field, $existing_field);
$array_diff_result = features_array_diff_assoc_recursive($field + $existing_field, $existing_field);
if (!empty($array_diff_result)) {
try {
field_update_field($field);
@@ -319,7 +319,7 @@ function field_instance_features_rebuild($module) {
// Create or update 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) {
if ($field_instance + $existing_instance != $existing_instance) {
try {
field_update_instance($field_instance);
}
@@ -494,7 +494,7 @@ function field_features_rebuild($module) {
$field_config = $field['field_config'];
if (isset($existing_fields[$field_config['field_name']])) {
$existing_field = $existing_fields[$field_config['field_name']];
$array_diff_result = drupal_array_diff_assoc_recursive($field_config + $existing_field, $existing_field);
$array_diff_result = features_array_diff_assoc_recursive($field_config + $existing_field, $existing_field);
if (!empty($array_diff_result)) {
try {
field_update_field($field_config);
@@ -518,7 +518,7 @@ function field_features_rebuild($module) {
$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) {
if ($field_instance + $existing_instance != $existing_instance) {
field_update_instance($field_instance);
}
}

View File

@@ -73,11 +73,17 @@ function image_features_export_render($module_name, $data, $export = NULL) {
*/
function image_features_revert($module) {
if ($default_styles = features_get_default('image', $module)) {
foreach (array_keys($default_styles) as $default_style) {
if ($style = image_style_load($default_style)) {
foreach ($default_styles as $default_style_name => $default_style) {
if ($style = image_style_load($default_style_name)) {
if ($style['storage'] != IMAGE_STORAGE_DEFAULT) {
image_default_style_revert($style);
}
else {
// Verify that the loaded style still matches what's in code.
if ($default_style['effects'] !== $style['effects']) {
image_default_style_revert($style);
}
}
}
}
}

View File

@@ -420,8 +420,12 @@ function features_menu_link_load($identifier) {
* Returns a lowercase clean string with only letters, numbers and dashes
*/
function features_clean_title($str) {
return strtolower(preg_replace_callback('/(\s)|([^a-zA-Z\-0-9])/i', create_function(
'$matches',
'return $matches[1]?"-":"";'
), $str));
return strtolower(preg_replace_callback('/(\s)|([^a-zA-Z\-0-9])/i', '_features_clean_title', $str));
}
/**
* Callback function for preg_replace_callback() to clean a string.
*/
function _features_clean_title($matches) {
return $matches[1] ? '-' : '';
}

View File

@@ -14,6 +14,7 @@ class FeaturesUserTestCase extends DrupalWebTestCase {
'name' => t('Component tests'),
'description' => t('Run tests for components of Features.') ,
'group' => t('Features'),
'dependencies' => array('views', 'strongarm'),
);
}
@@ -182,6 +183,7 @@ class FeaturesEnableTestCase extends DrupalWebTestCase {
'name' => t('Features enable tests'),
'description' => t('Run tests for enabling of features.') ,
'group' => t('Features'),
'dependencies' => array('views', 'strongarm'),
);
}
@@ -231,6 +233,7 @@ class FeaturesCtoolsIntegrationTest extends DrupalWebTestCase {
'name' => t('Features Chaos Tools integration'),
'description' => t('Run tests for ctool integration of features.') ,
'group' => t('Features'),
'dependencies' => array('views', 'strongarm'),
);
}

View File

@@ -21,9 +21,8 @@ features[user_permission][] = create features_test content
features[views_view][] = features_test
hidden = 1
; Information added by Drupal.org packaging script on 2016-04-18
version = "7.x-2.10"
; Information added by Drupal.org packaging script on 2018-11-01
version = "7.x-2.11"
core = "7.x"
project = "features"
datestamp = "1461011641"
datestamp = "1541050686"