Created
November 17, 2014 21:48
-
-
Save dsnopek/917c363a482bfd2fe64b to your computer and use it in GitHub Desktop.
Function to change text format on all content (Drupal)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Change content from one input format to another, deleting the old at the end. | |
* | |
* @param string $old_format | |
* Name of the old input format. | |
* @param string $new_type | |
* Name of the new input format. | |
*/ | |
function _myprofile_install_change_input_format($old_format, $new_format) { | |
// Change the format on all fields. | |
$fields = field_info_field_map(); | |
foreach ($fields as $field_name => $field_info_lite) { | |
if (in_array($field_info_lite['type'], array('text_long', 'text_with_summary'))) { | |
$field_info = field_info_field($field_name); | |
if (empty($field_info['storage']['details']['sql'])) { | |
// If there is no SQL storage information, skip it! | |
continue; | |
} | |
foreach ($field_info['storage']['details']['sql'] as $table_info) { | |
foreach ($table_info as $table_name => $column_info) { | |
db_update($table_name) | |
->fields(array($column_info['format'] => $new_format)) | |
->condition($column_info['format'], $old_format) | |
->execute(); | |
} | |
} | |
} | |
} | |
// Change the format on all blocks. | |
db_update('block_custom') | |
->fields(array('format' => $new_format)) | |
->condition('format', $old_format) | |
->execute(); | |
// Delete the format afterward. | |
db_delete('filter') | |
->condition('format', $old_format) | |
->execute(); | |
db_delete('filter_format') | |
->condition('format', $old_format) | |
->execute(); | |
// Clear the cache so deletion takes in the UI. | |
cache_clear_all('filter_formats:', 'cache', TRUE); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment