public function NodeOrderManager::getOrderableTidsFromNode in Node Order 8
Get all term IDs on a node that are on orderable vocabularies.
Returns an array of the node's tids that are in orderable vocabularies. Slower than self::getOrderableTids() but needed when tids have already been removed from the database.
Parameters
\Drupal\node\NodeInterface $node: The node to find term IDs for.
Return value
int[] An array of term IDs.
Overrides NodeOrderManagerInterface::getOrderableTidsFromNode
File
- src/
NodeOrderManager.php, line 294
Class
- NodeOrderManager
- Defines a service that creates & manages node ordering within taxonomy terms.
Namespace
Drupal\nodeorderCode
public function getOrderableTidsFromNode(NodeInterface $node) {
$tids = [];
foreach ($node
->getFieldDefinitions() as $field) {
if ($field
->getType() == 'entity_reference' && $field
->getSetting('target_type') == 'taxonomy_term') {
// If a field value is not set in the node object when node_save() is
// called, the old value from $node->original is used.
$field_name = $field
->getName();
foreach ($node
->getTranslationLanguages() as $langcode) {
$translated = $node
->getTranslation($langcode
->getId());
foreach ($translated->{$field_name} as $item) {
$term = $item
->getValue();
if (!empty($term['target_id'])) {
$tids[$term['target_id']] = $term['target_id'];
}
}
}
}
}
return $tids;
}