summaryrefslogtreecommitdiff
path: root/modules/node/node.install
diff options
context:
space:
mode:
Diffstat (limited to 'modules/node/node.install')
-rw-r--r--modules/node/node.install20
1 files changed, 19 insertions, 1 deletions
diff --git a/modules/node/node.install b/modules/node/node.install
index b5e10d6b0..cc3d8ee97 100644
--- a/modules/node/node.install
+++ b/modules/node/node.install
@@ -496,11 +496,29 @@ function node_update_7006(&$sandbox) {
->fields('node_type')
->execute();
+ $default_trim_length = variable_get('teaser_length', 600);
// Add body field instances for existing node types.
foreach ($result as $node_type) {
if ($node_type->has_body) {
- node_add_body_field($node_type, $node_type->body_label);
+ $instance = node_add_body_field($node_type, $node_type->body_label);
+ // Update newly created instance to convert teaser_length variable
+ // into formatter settings.
+ $trim_length = variable_get('teaser_length_' . $node_type->type, $default_trim_length);
+ $instance_changed = FALSE;
+ foreach ($instance['display'] as $view_mode => $view_mode_info) {
+ if ($view_mode_info['type'] == 'text_trimmed' || $view_mode_info['type'] == 'text_summary_or_trimmed') {
+ if (!isset($view_mode_info['settings']['trim_length'])) {
+ $instance['display'][$view_mode]['settings']['trim_length'] = $trim_length;
+ $instance_changed = TRUE;
+ }
+ }
+ }
+ if ($instance_changed) {
+ field_update_instance($instance);
+ }
+ variable_del('teaser_length_' . $node_type->type);
}
+ // Leave 'teaser_length' variable for aggregator module upgrade.
$sandbox['node_types_info'][$node_type->type] = array(
'has_body' => $node_type->has_body,