You are here

function publishcontent_menu in Publish Content 5.2

Same name and namespace in other branches
  1. 5 publishcontent.module \publishcontent_menu()
  2. 6 publishcontent.module \publishcontent_menu()
  3. 7 publishcontent.module \publishcontent_menu()

Implementation of hook_menu().

See also

publishcontent_install()

File

./publishcontent.module, line 14
Add button to publish or unpublish a node, with access control based on the node type

Code

function publishcontent_menu($may_cache) {
  $items = array();
  if (!$may_cache && arg(0) == 'node' && is_numeric(arg(1))) {
    $node = node_load(arg(1));
    if ($node->nid) {
      $items[] = array(
        'path' => 'node/' . arg(1) . '/publish/' . drupal_get_token(),
        'title' => t('Publish'),
        'callback' => 'publishcontent_toggle_status',
        'callback arguments' => array(
          $node,
        ),
        'access' => !$node->status && _publishcontent_publish_access($node),
        'weight' => 5,
        'type' => MENU_LOCAL_TASK,
      );
      $items[] = array(
        'path' => 'node/' . arg(1) . '/unpublish/' . drupal_get_token(),
        'title' => t('Unpublish'),
        'callback' => 'publishcontent_toggle_status',
        'callback arguments' => array(
          $node,
        ),
        'access' => $node->status && _publishcontent_unpublish_access($node),
        'weight' => 5,
        'type' => MENU_LOCAL_TASK,
      );

      // force the access to the node
      if (!user_access('administer nodes')) {
        $items[] = array(
          'path' => 'node/' . arg(1),
          'title' => t('View'),
          'callback' => 'node_page_view',
          'callback arguments' => array(
            $node,
          ),
          'access' => _publishcontent_view_access($node),
          'type' => MENU_CALLBACK,
        );
      }
    }
  }
  return $items;
}