Still on Drupal 7? Security support for Drupal 7 ended on 5 January 2025. Please visit our Drupal 7 End of Life resources page to review all of your options.
This project is not covered by Drupal’s security advisory policy.
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)
/**
* 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);
$skip = FALSE;
switch ($suffix) {
case '':
$api->title($node->title);
$api->viewMode('full');
break;
case 'view':
// That's the "default local task".
$api->tab(t('Overview'), -4);
break;
case 'forum':
$api->tab(t('Discussions'), -3);
$api->viewMode('group_forum');
$api->pageTitle(t('Dedicated forum for @group_name', array('@group_name' => $node->title)));
break;
case 'wiki':
$api->tab(t('Wiki'), -2);
$api->viewMode('group_wiki');
break;
case 'wiki/view':
$api->tab(t('View'), -0);
$api->viewMode('group_wikiedit');
break;
case 'wiki/edit':
$api->tab(t('Edit'), 1);
$api->viewMode('group_wikiedit');
break;
case 'members':
$api->tab(t('Members'), -1);
$api->viewMode('group_members');
break;
}
}
}
Project information
- Created by donquixote on , updated
- This project is not covered by the security advisory policy.
Use at your own risk! It may have publicly disclosed vulnerabilities.