function _forward_entity_from_path in Forward 7.3
4 calls to _forward_entity_from_path()
- forward_block_view in ./forward.module
- Implements hook_block_view().
- forward_page in ./forward.module
- Callback function for the forward Page
- forward_tracker in ./forward.module
- Callback for clickthrough tracker
- theme_forward_link in ./forward.module
- Theme function for Forward link
File
- ./forward.module, line 1465
- Allows forwarding of entities by email, and provides a record of how often each has been forwarded.
Code
function _forward_entity_from_path($path, &$entity_type, &$entity, &$bundle) {
$id = 0;
$path = drupal_get_normal_path($path);
if ($router_item = menu_get_item($path)) {
if (!empty($router_item['load_functions'])) {
foreach ($router_item['load_functions'] as $load_fn) {
$entity_types = entity_get_info();
foreach ($entity_types as $type => $info) {
if ($info['load hook'] == $load_fn) {
$entity_type = $type;
$entity = $router_item['map'][$router_item['number_parts'] - 1];
list($id, $vid, $bundle) = entity_extract_ids($entity_type, $entity);
break;
}
}
}
}
if (!$id) {
if (!empty($router_item['map'][0])) {
$map0 = $router_item['map'][0];
$entity_types = entity_get_info();
foreach ($entity_types as $type => $info) {
if ($type == $map0) {
$entity_type = $type;
$entity = NULL;
if (is_object($router_item['map'][$router_item['number_parts'] - 1])) {
$entity = $router_item['map'][$router_item['number_parts'] - 1];
}
elseif (is_numeric($router_item['map'][$router_item['number_parts'] - 1])) {
$entity = entity_load_single($entity_type, $router_item['map'][$router_item['number_parts'] - 1]);
}
if ($entity) {
list($id, $vid, $bundle) = entity_extract_ids($entity_type, $entity);
break;
}
}
}
}
}
}
return $id;
}