function views_attach_nodeapi in Views attach 6.2
Same name and namespace in other branches
- 6 views_attach.module \views_attach_nodeapi()
- 7.2 views_attach.module \views_attach_nodeapi()
Implementation of hook_nodeapi().
File
- ./
views_attach.module, line 85
Code
function views_attach_nodeapi(&$node, $op, $teaser, $page) {
switch ($op) {
case 'view':
// A side effect of defining it this way is that if we're called for an
// embedded node, with no teaser or page, we use the full version's settings.
// That is by design.
if (isset($node->build_mode)) {
$mode = $node->build_mode;
if ($mode === NODE_BUILD_NORMAL) {
$mode = $teaser ? 'teaser' : 'full';
}
}
else {
$mode = 'full';
}
$views = views_attach_get_node_views($node->type, $mode);
foreach ($views as $info) {
$view = views_get_view($info['name']);
$view
->set_display($info['display']);
if ($view
->access($info['display'])) {
$view->current_node = $node;
$result = $view
->execute_display($info['display']);
if (!empty($result)) {
$node->content[$view->name . '_' . $info['display']] = array(
'#weight' => module_exists('content') ? content_extra_field_weight($node->type, $view->name . '_' . $info['display']) : 10,
'#value' => $result,
);
}
}
}
break;
}
}