function book_menu in Drupal 4
Same name and namespace in other branches
- 5 modules/book/book.module \book_menu()
- 6 modules/book/book.module \book_menu()
- 7 modules/book/book.module \book_menu()
Implementation of hook_menu().
File
- modules/
book.module, line 76 - Allows users to collaboratively author a book.
Code
function book_menu($may_cache) {
$items = array();
if ($may_cache) {
$items[] = array(
'path' => 'node/add/book',
'title' => t('book page'),
'access' => user_access('create book pages'),
);
$items[] = array(
'path' => 'admin/node/book',
'title' => t('books'),
'callback' => 'book_admin',
'access' => user_access('administer nodes'),
'type' => MENU_LOCAL_TASK,
'weight' => -1,
);
$items[] = array(
'path' => 'admin/node/book/list',
'title' => t('list'),
'type' => MENU_DEFAULT_LOCAL_TASK,
);
$items[] = array(
'path' => 'admin/node/book/orphan',
'title' => t('orphan pages'),
'callback' => 'book_admin_orphan',
'type' => MENU_LOCAL_TASK,
'weight' => 8,
);
$items[] = array(
'path' => 'book',
'title' => t('books'),
'callback' => 'book_render',
'access' => user_access('access content'),
'type' => MENU_SUGGESTED_ITEM,
);
$items[] = array(
'path' => 'book/export',
'callback' => 'book_export',
'access' => user_access('access content'),
'type' => MENU_CALLBACK,
);
}
else {
// To avoid SQL overhead, check whether we are on a node page and whether the
// user is allowed to outline posts in books.
if (arg(0) == 'node' && is_numeric(arg(1)) && user_access('outline posts in books')) {
// Only add the outline-tab for non-book pages:
$result = db_query(db_rewrite_sql("SELECT n.nid FROM {node} n WHERE n.nid = %d AND n.type != 'book'"), arg(1));
if (db_num_rows($result) > 0) {
$items[] = array(
'path' => 'node/' . arg(1) . '/outline',
'title' => t('outline'),
'callback' => 'book_outline',
'callback arguments' => array(
arg(1),
),
'access' => user_access('outline posts in books'),
'type' => MENU_LOCAL_TASK,
'weight' => 2,
);
}
}
}
return $items;
}