function og_CrumbsMultiPlugin_group_post::findParent__node_x in Crumbs, the Breadcrumbs suite 7.2
Same name in this branch
- 7.2 plugins/crumbs.og.inc \og_CrumbsMultiPlugin_group_post::findParent__node_x()
- 7.2 plugins/crumbs.og.2.inc \og_CrumbsMultiPlugin_group_post::findParent__node_x()
Same name and namespace in other branches
- 7 plugins/crumbs.og.inc \og_CrumbsMultiPlugin_group_post::findParent__node_x()
- 7 plugins/crumbs.og.2.inc \og_CrumbsMultiPlugin_group_post::findParent__node_x()
Attempts to find a breadcrumb parent path for node/%. If that node is in a group, it will return the group page as a parent.
Parameters
string $path: The path that we want to find a parent for, e.g. "node/123".
array $item: Loaded router item, as returned from crumbs_get_router_item()
Return value
array|null Parent path candidates
File
- plugins/
crumbs.og.2.inc, line 49
Class
- og_CrumbsMultiPlugin_group_post
- Use the group node as a parent for group posts. The priorities can be configured per group content type.
Code
function findParent__node_x($path, $item) {
if (FALSE === ($node = crumbs_Util::itemExtractEntity($item, 'node', 1))) {
return NULL;
}
// field_get_items() performs a lot faster than og_get_entity_groups().
// See http://drupal.org/node/1819300#comment-6633494
// TODO:
// We cannot rely on the field name to always be og_group_ref.
// Instead, we could provide a separate plugin for each such field.
// This way, fields in disabled plugins get never triggered.
$items = field_get_items('node', $node, 'og_group_ref');
if (is_array($items)) {
foreach ($items as $item) {
$parent_path = $this
->getParentPath($item['target_id'], $node);
return array(
$node->type => $parent_path,
);
}
}
return NULL;
}