diff -u b/modules/image/image.field.inc b/modules/image/image.field.inc --- b/modules/image/image.field.inc +++ b/modules/image/image.field.inc @@ -404,7 +404,7 @@ '#default_value' => isset($item['alt']) ? $item['alt'] : '', '#description' => t('This text will be used by screen readers, search engines, or when the image cannot be loaded.'), // @see http://www.gawds.org/show.php?contentid=28 - '#maxlength' => 128, + '#maxlength' => 512, '#weight' => -2, '#access' => (bool) $item['fid'] && $settings['alt_field'], ); @@ -413,7 +413,7 @@ '#title' => t('Title'), '#default_value' => isset($item['title']) ? $item['title'] : '', '#description' => t('The title is used as a tool tip when the user hovers the mouse over the image.'), - '#maxlength' => 128, + '#maxlength' => 1024, '#weight' => -1, '#access' => (bool) $item['fid'] && $settings['title_field'], ); diff -u b/modules/image/image.install b/modules/image/image.install --- b/modules/image/image.install +++ b/modules/image/image.install @@ -121,13 +121,13 @@ 'alt' => array( 'description' => "Alternative image text, for the image's 'alt' attribute.", 'type' => 'varchar', - 'length' => 128, + 'length' => 512, 'not null' => FALSE, ), 'title' => array( 'description' => "Image title text, for the image's 'title' attribute.", 'type' => 'varchar', - 'length' => 128, + 'length' => 1024, 'not null' => FALSE, ), 'width' => array( @@ -395,6 +395,44 @@ } /** + * Use a large setting (512 and 1024 characters) for the length of the image alt + * and title fields. + */ +function image_update_7004() { + $alt_spec = array( + 'type' => 'varchar', + 'length' => 512, + 'not null' => FALSE, + ); + $title_spec = array( + 'type' => 'varchar', + 'length' => 1024, + 'not null' => FALSE, + ); + $fields = _update_7000_field_read_fields(array( + 'module' => 'image', + 'storage_type' => 'field_sql_storage', + )); + foreach ($fields as $field_name => $field) { + if ($field['deleted']) { + $table = "field_deleted_data_{$field['id']}"; + $revision_table = "field_deleted_revision_{$field['id']}"; + } + else { + $table = "field_data_{$field['field_name']}"; + $revision_table = "field_revision_{$field['field_name']}"; + } + $alt_column = $field['field_name'] . '_' . 'alt'; + db_change_field($table, $alt_column, $alt_column, $alt_spec); + db_change_field($revision_table, $alt_column, $alt_column, $alt_spec); + + $title_column = $field['field_name'] . '_' . 'title'; + db_change_field($table, $title_column, $title_column, $title_spec); + db_change_field($revision_table, $title_column, $title_column, $title_spec); + } +} + +/** * Implements hook_requirements() to check the PHP GD Library. * * @param $phase diff -u b/modules/image/image.test b/modules/image/image.test --- b/modules/image/image.test +++ b/modules/image/image.test @@ -789,7 +789,6 @@ // Verify that alt/title longer than allowed results in a validation error. $test_size = 2000; - $max_size = 128; $edit = array( $field_name . '[' . LANGUAGE_NONE . '][0][alt]' => $this->randomName($test_size), $field_name . '[' . LANGUAGE_NONE . '][0][title]' => $this->randomName($test_size), @@ -797,11 +796,11 @@ $this->drupalPost('node/' . $nid . '/edit', $edit, t('Save')); $this->assertRaw(t('Alternate text cannot be longer than %max characters but is currently %length characters long.', array( '%max' => $max_size, - '%length' => $test_size, + '%length' => 512, ))); $this->assertRaw(t('Title cannot be longer than %max characters but is currently %length characters long.', array( '%max' => $max_size, - '%length' => $test_size, + '%length' => 1024, ))); }