updated mailgun, mailsystem, honeypot, googleanalitycs, features, content_taxonomy
This commit is contained in:
@@ -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);
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
||||
|
@@ -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.
|
||||
*
|
||||
|
@@ -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"
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -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] ? '-' : '';
|
||||
}
|
||||
|
@@ -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'),
|
||||
);
|
||||
}
|
||||
|
||||
|
@@ -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"
|
||||
|
Reference in New Issue
Block a user