You are here

function metatag_metatags_load in Metatag 7

Load an entity's tags.

Parameters

string $entity_type: The entity type to load.

int $entity_id: The ID of the entity to load.

mixed $revision_id: Optional revision ID to load instead of the entity ID.

Return value

array An array of tag data keyed by language for the entity's current active revision.

5 calls to metatag_metatags_load()
MetatagCoreNodeTest::testEntityCreationWorkflow in tests/MetatagCoreNodeTest.test
Tests creation of a standard entity.
metatag_bulk_revert_batch_operation in ./metatag.admin.inc
Batch callback: delete custom metatags for selected bundles.
metatag_feeds_set_target in ./metatag.feeds.inc
Callback function to set value of a metatag tag.
metatag_importer_for_page_title in metatag_importer/metatag_importer.page_title.inc
Migrate data from the page_title table, if available.
metatag_importer_metatags_quick_process in metatag_importer/metatag_importer.metatags_quick.inc
Process a row from Metatags Quick.

File

./metatag.module, line 593
Primary hook implementations for Metatag.

Code

function metatag_metatags_load($entity_type, $entity_id, $revision_id = NULL) {

  // A specific revision ID was not requested, so get the active revision ID.
  if (is_null($revision_id)) {

    // Unfortunately, the only way of getting the active revision ID is to
    // first load the entity, and then extract the ID. This is a bit
    // performance intensive, but it seems to be the only way of doing it.
    $entities = entity_load($entity_type, array(
      $entity_id,
    ));
    if (!empty($entities[$entity_id])) {

      // We only care about the revision_id.
      list(, $revision_id, ) = entity_extract_ids($entity_type, $entities[$entity_id]);
    }
  }

  // This returns an array nested by the entity ID, the revision ID and the
  // langcode.
  $metatags = metatag_metatags_load_multiple($entity_type, array(
    $entity_id,
  ), array(
    $revision_id,
  ));

  // Look for records for the requested revision ID.
  if (isset($metatags[$entity_id][$revision_id])) {
    return $metatags[$entity_id][$revision_id];
  }

  // Getting to this point means that no meta tags were identified earlier, so
  // return an empty array.
  return array();
}