summaryrefslogtreecommitdiff
path: root/modules/node/node.module
diff options
context:
space:
mode:
Diffstat (limited to 'modules/node/node.module')
-rw-r--r--modules/node/node.module69
1 files changed, 49 insertions, 20 deletions
diff --git a/modules/node/node.module b/modules/node/node.module
index adec8fc2c..ad30fba0d 100644
--- a/modules/node/node.module
+++ b/modules/node/node.module
@@ -185,6 +185,9 @@ function node_entity_info() {
'revision' => 'vid',
'bundle' => 'type',
),
+ 'bundle keys' => array(
+ 'bundle' => 'type',
+ ),
// Node.module handles its own caching.
// 'cacheable' => FALSE,
'bundles' => array(),
@@ -196,7 +199,9 @@ function node_entity_info() {
$return['node']['bundles'][$type] = array(
'label' => $name,
'admin' => array(
- 'path' => 'admin/structure/types/manage/' . str_replace('_', '-', $type),
+ 'path' => 'admin/structure/types/manage/%node_type',
+ 'real path' => 'admin/structure/types/manage/' . str_replace('_', '-', $type),
+ 'bundle argument' => 4,
'access arguments' => array('administer content types'),
),
);
@@ -455,6 +460,20 @@ function node_types_rebuild() {
}
/**
+ * Menu argument loader; Load a node type by string.
+ *
+ * @param $name
+ * The machine-readable name of a node type to load; having '_' replaced with
+ * '-'.
+ *
+ * @return
+ * A node type object or FALSE if $name does not exist.
+ */
+function node_type_load($name) {
+ return node_type_get_type(strtr($name, array('-' => '_')));
+}
+
+/**
* Saves a node type to the database.
*
* @param $info
@@ -1633,6 +1652,27 @@ function node_menu() {
'type' => MENU_LOCAL_ACTION,
'file' => 'content_types.inc',
);
+ $items['admin/structure/types/manage/%node_type'] = array(
+ 'title' => 'Edit content type',
+ 'title callback' => 'node_type_page_title',
+ 'title arguments' => array(4),
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array('node_type_form', 4),
+ 'access arguments' => array('administer content types'),
+ 'file' => 'content_types.inc',
+ );
+ $items['admin/structure/types/manage/%node_type/edit'] = array(
+ 'title' => 'Edit',
+ 'type' => MENU_DEFAULT_LOCAL_TASK,
+ );
+ $items['admin/structure/types/manage/%node_type/delete'] = array(
+ 'title' => 'Delete',
+ 'page arguments' => array('node_type_delete_confirm', 4),
+ 'access arguments' => array('administer content types'),
+ 'type' => MENU_CALLBACK,
+ 'file' => 'content_types.inc',
+ );
+
$items['node'] = array(
'title' => 'Content',
'page callback' => 'node_page_default',
@@ -1654,6 +1694,7 @@ function node_menu() {
'access arguments' => array('access content'),
'type' => MENU_CALLBACK,
);
+ // @todo Remove this loop when we have a 'description callback' property.
// Reset internal static cache of _node_types_build(), forces to rebuild the
// node type information.
drupal_static_reset('_node_types_build');
@@ -1669,25 +1710,6 @@ function node_menu() {
'description' => $type->description,
'file' => 'node.pages.inc',
);
- $items['admin/structure/types/manage/' . $type_url_str] = array(
- 'title' => $type->name,
- 'page callback' => 'drupal_get_form',
- 'page arguments' => array('node_type_form', $type),
- 'access arguments' => array('administer content types'),
- 'type' => MENU_CALLBACK,
- 'file' => 'content_types.inc',
- );
- $items['admin/structure/types/manage/' . $type_url_str . '/edit'] = array(
- 'title' => 'Edit',
- 'type' => MENU_DEFAULT_LOCAL_TASK,
- );
- $items['admin/structure/types/manage/' . $type_url_str . '/delete'] = array(
- 'title' => 'Delete',
- 'page arguments' => array('node_type_delete_confirm', $type),
- 'access arguments' => array('administer content types'),
- 'type' => MENU_CALLBACK,
- 'file' => 'content_types.inc',
- );
}
$items['node/%node'] = array(
'title callback' => 'node_page_title',
@@ -1765,6 +1787,13 @@ function node_menu() {
}
/**
+ * Title callback for a node type.
+ */
+function node_type_page_title($type) {
+ return $type->name;
+}
+
+/**
* Title callback.
*/
function node_page_title($node) {