You are here

function metatag_importer_get_quick_data in Metatag 7

Get metatags_quick data from the database.

Parameters

array $fields: Array of field names.

Return value

array Metadata

1 call to metatag_importer_get_quick_data()
metatag_importer_metatags_quick_import in metatag_importer/metatag_importer.metatags_quick.inc
Import all data from Metatags Quick and delete it.

File

metatag_importer/metatag_importer.metatags_quick.inc, line 157
Convert data from Metatags Quick to Metatag.

Code

function metatag_importer_get_quick_data(array $fields) {
  $data = array();
  foreach ($fields as $field_name) {
    $meta_tag = str_replace('meta_', '', str_replace('field_', '', $field_name));
    $results = db_select('field_data_' . $field_name, 'f')
      ->fields('f', array(
      'entity_type',
      'bundle',
      'entity_id',
      'revision_id',
      'language',
      $field_name . '_metatags_quick',
    ))
      ->condition('f.entity_type', array(
      'metatags_path_based',
    ), '<>')
      ->orderBy('f.entity_type', 'ASC')
      ->orderBy('f.entity_id', 'ASC')
      ->orderBy('f.revision_id', 'ASC')
      ->execute();
    foreach ($results as $result) {
      $id = implode(':', array(
        $result->entity_type,
        $result->entity_id,
        $result->revision_id,
        $result->language,
      ));
      if (!isset($data[$id])) {
        $data[$id] = array(
          'entity_type' => $result->entity_type,
          'bundle' => $result->bundle,
          'entity_id' => $result->entity_id,
          'revision_id' => $result->revision_id,
          'language' => $result->language,
          'fields' => array(),
        );
      }
      $data[$id]['fields'][$meta_tag] = array(
        'field_name' => $field_name,
        'value' => $result->{$field_name . '_metatags_quick'},
        'meta_tag' => $meta_tag,
      );
    }
  }
  return $data;
}