API that allows to have different build modes or page callbacks for node/%/[something], depending on node type or other criteria.
It can be seen as an alternative to panels/ctools page variants.
Usage:
(this is going to be moved to a documentation page or README.txt some day)
<?php
/**
* Implements hook_nodeaspect()
* Shortcut for hook_menu(), and for view mode registration
*/
function bw_groups_nodeaspect($api) {
// Register a nodeaspect path node/%node/forum
$api->page('forum');
// Register a nodeaspect path node/%node/wiki
$api->page('wiki');
// Register a nodeaspect path node/%node/wiki/view
$api->page('wiki/view');
// Register a nodeaspect path node/%node/wiki/edit
$api->page('wiki/edit');
// Register a nodeaspect path node/%node/members
$api->page('members');
// Register view modes
$api->viewMode('group_forum', 'Group discussions');
$api->viewMode('group_wiki', 'Group wiki');
$api->viewMode('group_wikiedit', 'Group wiki edit');
$api->viewMode('group_members', 'Group members');
}
/**
* Implements hook_nodeaspect_page()
*
* This is called during menu_get_item().
*/
function bw_groups_nodeaspect_page($node, $suffix, $api) {
// This stuff is specifically for node type "group".
if ($node->type === 'group') {
$u = $GLOBALS['user'];
$is_member = og_is_member($node->nid);