You are here

function metatags_quick_convert_metatags in Meta tags quick 7.2

Same name and namespace in other branches
  1. 8.3 metatags_quick_import.admin.inc \metatags_quick_convert_metatags()
2 string references to 'metatags_quick_convert_metatags'
drush_metatags_quick_migrate_fields in ./metatags_quick.drush.inc
metatags_quick_upgrade_batch in ./metatags_quick_import.admin.inc

File

./metatags_quick_import.admin.inc, line 127
upgrade path from the D6 nodewords module @author maxiorel <http://drupal.org/user/49016> @author valthebald <http://drupal.org/user/239562>

Code

function metatags_quick_convert_metatags($nids, $fields_to_import) {
  $processed_nodes = node_load_multiple($nids);
  $select = db_select('nodewords', 'n')
    ->fields('n', array(
    'id',
    'name',
    'content',
  ))
    ->condition('n.name', $fields_to_import, 'IN')
    ->condition('n.id', $nids, 'IN')
    ->execute();
  foreach ($select as $row) {
    $nodewords_data[$row->id][$row->name] = unserialize($row->content);
  }
  foreach ($processed_nodes as $node) {
    $_SESSION['nodewords_upgrade_total']++;
    $node_changed = FALSE;
    foreach ($fields_to_import as $field) {
      if (!empty($nodewords_data[$node->nid][$field]) && !empty($nodewords_data[$node->nid][$field]['value'])) {
        $node_changed = TRUE;
        $meta_field_name = "meta_{$field}";
        $langcode = empty($node->language) ? LANGUAGE_NONE : $node->language;
        if (is_array($nodewords_data[$node->nid][$field]['value'])) {
          $meta_field_value = implode(',', array_filter($nodewords_data[$node->nid][$field]['value']));
        }
        else {
          $meta_field_value = $nodewords_data[$node->nid][$field]['value'];
        }
        $node->{$meta_field_name}[$langcode][0]['metatags_quick'] = substr($meta_field_value, 0, 255);
      }
    }
    if ($node_changed) {
      field_attach_presave('node', $node);
      field_attach_update('node', $node);
    }
  }
}