- Patch #319356 by recidive: clean up hook_nodeapi_ fucntion signatures and documentation because of previous node API clean-ups.
parent
7c30a1bac9
commit
c0cb68abcc
|
@ -72,7 +72,7 @@ function blog_help($path, $arg) {
|
|||
/**
|
||||
* Implementation of hook_form().
|
||||
*/
|
||||
function blog_form(&$node) {
|
||||
function blog_form($node, $form_state) {
|
||||
global $nid;
|
||||
$type = node_get_types('type', $node);
|
||||
|
||||
|
@ -84,7 +84,7 @@ function blog_form(&$node) {
|
|||
/**
|
||||
* Implementation of hook_view().
|
||||
*/
|
||||
function blog_view($node, $teaser = FALSE, $page = FALSE) {
|
||||
function blog_view($node, $teaser, $page) {
|
||||
if ($page) {
|
||||
// Breadcrumb navigation.
|
||||
drupal_set_breadcrumb(array(l(t('Home'), NULL), l(t('Blogs'), 'blog'), l(t("!name's blog", array('!name' => $node->name)), 'blog/' . $node->uid)));
|
||||
|
|
|
@ -718,7 +718,7 @@ function book_nodeapi_load($nodes, $types) {
|
|||
/**
|
||||
* Implementation of hook_nodeapi_view().
|
||||
*/
|
||||
function book_nodeapi_view(&$node, $teaser, $page) {
|
||||
function book_nodeapi_view($node, $teaser, $page) {
|
||||
if (!$teaser) {
|
||||
if (!empty($node->book['bid']) && $node->build_mode == NODE_BUILD_NORMAL) {
|
||||
$node->content['book_navigation'] = array(
|
||||
|
@ -737,7 +737,7 @@ function book_nodeapi_view(&$node, $teaser, $page) {
|
|||
/**
|
||||
* Implementation of hook_nodeapi_presave().
|
||||
*/
|
||||
function book_nodeapi_presave(&$node, $teaser, $page) {
|
||||
function book_nodeapi_presave($node) {
|
||||
// Always save a revision for non-administrators.
|
||||
if (!empty($node->book['bid']) && !user_access('administer nodes')) {
|
||||
$node->revision = 1;
|
||||
|
@ -751,7 +751,7 @@ function book_nodeapi_presave(&$node, $teaser, $page) {
|
|||
/**
|
||||
* Implementation of hook_nodeapi_insert().
|
||||
*/
|
||||
function book_nodeapi_insert(&$node, $teaser, $page) {
|
||||
function book_nodeapi_insert($node) {
|
||||
if (!empty($node->book['bid'])) {
|
||||
if ($node->book['bid'] == 'new') {
|
||||
// New nodes that are their own book.
|
||||
|
@ -766,7 +766,7 @@ function book_nodeapi_insert(&$node, $teaser, $page) {
|
|||
/**
|
||||
* Implementation of hook_nodeapi_update().
|
||||
*/
|
||||
function book_nodeapi_update(&$node, $teaser, $page) {
|
||||
function book_nodeapi_update($node) {
|
||||
if (!empty($node->book['bid'])) {
|
||||
if ($node->book['bid'] == 'new') {
|
||||
// New nodes that are their own book.
|
||||
|
@ -781,7 +781,7 @@ function book_nodeapi_update(&$node, $teaser, $page) {
|
|||
/**
|
||||
* Implementation of hook_nodeapi_delete().
|
||||
*/
|
||||
function book_nodeapi_delete(&$node, $teaser, $page) {
|
||||
function book_nodeapi_delete($node) {
|
||||
if (!empty($node->book['bid'])) {
|
||||
if ($node->nid == $node->book['bid']) {
|
||||
// Handle deletion of a top-level post.
|
||||
|
@ -804,7 +804,7 @@ function book_nodeapi_delete(&$node, $teaser, $page) {
|
|||
/**
|
||||
* Implementation of hook_nodeapi_prepare().
|
||||
*/
|
||||
function book_nodeapi_prepare(&$node, $teaser, $page) {
|
||||
function book_nodeapi_prepare($node) {
|
||||
// Prepare defaults for the add/edit form.
|
||||
if (empty($node->book) && (user_access('add content to books') || user_access('administer book outlines'))) {
|
||||
$node->book = array();
|
||||
|
|
|
@ -610,7 +610,7 @@ function comment_nodeapi_load($nodes, $types) {
|
|||
/**
|
||||
* Implementation of hook_nodeapi_prepare().
|
||||
*/
|
||||
function comment_nodeapi_prepare(&$node, $arg = 0) {
|
||||
function comment_nodeapi_prepare($node) {
|
||||
if (!isset($node->comment)) {
|
||||
$node->comment = variable_get("comment_$node->type", COMMENT_NODE_READ_WRITE);
|
||||
}
|
||||
|
@ -619,7 +619,7 @@ function comment_nodeapi_prepare(&$node, $arg = 0) {
|
|||
/**
|
||||
* Implementation of hook_nodeapi_insert().
|
||||
*/
|
||||
function comment_nodeapi_insert(&$node, $arg = 0) {
|
||||
function comment_nodeapi_insert($node) {
|
||||
db_insert('node_comment_statistics')
|
||||
->fields(array(
|
||||
'nid' => $node->nid,
|
||||
|
@ -633,7 +633,7 @@ function comment_nodeapi_insert(&$node, $arg = 0) {
|
|||
/**
|
||||
* Implementation of hook_nodeapi_delete().
|
||||
*/
|
||||
function comment_nodeapi_delete(&$node, $arg = 0) {
|
||||
function comment_nodeapi_delete($node) {
|
||||
db_delete('comment')
|
||||
->condition('nid', $node->nid)
|
||||
->execute();
|
||||
|
@ -645,7 +645,7 @@ function comment_nodeapi_delete(&$node, $arg = 0) {
|
|||
/**
|
||||
* Implementation of hook_nodeapi_update_index().
|
||||
*/
|
||||
function comment_nodeapi_update_index(&$node, $arg = 0) {
|
||||
function comment_nodeapi_update_index($node) {
|
||||
$text = '';
|
||||
$comments = db_query('SELECT subject, comment, format FROM {comment} WHERE nid = :nid AND status = :status', array(':nid' => $node->nid, ':status' => COMMENT_PUBLISHED));
|
||||
foreach ($comments as $comment) {
|
||||
|
@ -657,7 +657,7 @@ function comment_nodeapi_update_index(&$node, $arg = 0) {
|
|||
/**
|
||||
* Implementation of hook_nodeapi_search_result().
|
||||
*/
|
||||
function comment_nodeapi_search_result(&$node, $arg = 0) {
|
||||
function comment_nodeapi_search_result($node) {
|
||||
$comments = db_query('SELECT comment_count FROM {node_comment_statistics} WHERE nid = :nid', array('nid' => $node->nid))->fetchField();
|
||||
return format_plural($comments, '1 comment', '@count comments');
|
||||
}
|
||||
|
@ -665,7 +665,7 @@ function comment_nodeapi_search_result(&$node, $arg = 0) {
|
|||
/**
|
||||
* Implementation of hook_nodeapi_rss_item().
|
||||
*/
|
||||
function comment_nodeapi_rss_item(&$node, $arg = 0) {
|
||||
function comment_nodeapi_rss_item($node) {
|
||||
if ($node->comment != COMMENT_NODE_DISABLED) {
|
||||
return array(array('key' => 'comments', 'value' => url('node/' . $node->nid, array('fragment' => 'comments', 'absolute' => TRUE))));
|
||||
}
|
||||
|
|
|
@ -183,7 +183,7 @@ function _forum_nodeapi_check_node_type($node, $vocabulary) {
|
|||
/**
|
||||
* Implementation of hook_nodeapi_view().
|
||||
*/
|
||||
function forum_nodeapi_view(&$node, $teaser, $page) {
|
||||
function forum_nodeapi_view($node, $teaser, $page) {
|
||||
$vid = variable_get('forum_nav_vocabulary', '');
|
||||
$vocabulary = taxonomy_vocabulary_load($vid);
|
||||
if (_forum_nodeapi_check_node_type($node, $vocabulary)) {
|
||||
|
@ -221,7 +221,7 @@ function forum_nodeapi_view(&$node, $teaser, $page) {
|
|||
/**
|
||||
* Implementation of hook_nodeapi_prepare().
|
||||
*/
|
||||
function forum_nodeapi_prepare(&$node, $teaser, $page) {
|
||||
function forum_nodeapi_prepare($node) {
|
||||
$vid = variable_get('forum_nav_vocabulary', '');
|
||||
$vocabulary = taxonomy_vocabulary_load($vid);
|
||||
if (_forum_nodeapi_check_node_type($node, $vocabulary)) {
|
||||
|
@ -238,7 +238,7 @@ function forum_nodeapi_prepare(&$node, $teaser, $page) {
|
|||
*
|
||||
* Check in particular that only a "leaf" term in the associated taxonomy.
|
||||
*/
|
||||
function forum_nodeapi_validate(&$node, $teaser, $page) {
|
||||
function forum_nodeapi_validate($node, $form) {
|
||||
$vid = variable_get('forum_nav_vocabulary', '');
|
||||
$vocabulary = taxonomy_vocabulary_load($vid);
|
||||
if (_forum_nodeapi_check_node_type($node, $vocabulary)) {
|
||||
|
@ -264,7 +264,7 @@ function forum_nodeapi_validate(&$node, $teaser, $page) {
|
|||
*
|
||||
* Assign forum taxonomy when adding a topic from within a forum.
|
||||
*/
|
||||
function forum_nodeapi_presave(&$node, $teaser, $page) {
|
||||
function forum_nodeapi_presave($node) {
|
||||
$vid = variable_get('forum_nav_vocabulary', '');
|
||||
$vocabulary = taxonomy_vocabulary_load($vid);
|
||||
if (_forum_nodeapi_check_node_type($node, $vocabulary)) {
|
||||
|
@ -293,7 +293,7 @@ function forum_nodeapi_presave(&$node, $teaser, $page) {
|
|||
/**
|
||||
* Implementation of hook_nodeapi_update().
|
||||
*/
|
||||
function forum_nodeapi_update(&$node, $teaser, $page) {
|
||||
function forum_nodeapi_update($node) {
|
||||
$vid = variable_get('forum_nav_vocabulary', '');
|
||||
$vocabulary = taxonomy_vocabulary_load($vid);
|
||||
if (_forum_nodeapi_check_node_type($node, $vocabulary)) {
|
||||
|
@ -317,7 +317,7 @@ function forum_nodeapi_update(&$node, $teaser, $page) {
|
|||
/**
|
||||
* Implementation of hook_nodeapi_insert().
|
||||
*/
|
||||
function forum_nodeapi_insert(&$node, $teaser, $page) {
|
||||
function forum_nodeapi_insert($node) {
|
||||
$vid = variable_get('forum_nav_vocabulary', '');
|
||||
$vocabulary = taxonomy_vocabulary_load($vid);
|
||||
if (_forum_nodeapi_check_node_type($node, $vocabulary)) {
|
||||
|
@ -330,7 +330,7 @@ function forum_nodeapi_insert(&$node, $teaser, $page) {
|
|||
/**
|
||||
* Implementation of hook_nodeapi_delete().
|
||||
*/
|
||||
function forum_nodeapi_delete(&$node, $teaser, $page) {
|
||||
function forum_nodeapi_delete($node) {
|
||||
$vid = variable_get('forum_nav_vocabulary', '');
|
||||
$vocabulary = taxonomy_vocabulary_load($vid);
|
||||
if (_forum_nodeapi_check_node_type($node, $vocabulary)) {
|
||||
|
|
|
@ -154,6 +154,70 @@ function hook_node_operations() {
|
|||
return $operations;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fiter, substitute or otherwise alter the $node's raw text.
|
||||
*
|
||||
* The $node->content array has been rendered, so the node body or
|
||||
* teaser is filtered and now contains HTML. This hook should only be
|
||||
* used when text substitution, filtering, or other raw text operations
|
||||
* are necessary.
|
||||
*
|
||||
* @param $node
|
||||
* The node the action is being performed on.
|
||||
* @param $teaser
|
||||
* The $teaser parameter from node_view().
|
||||
* @param $page
|
||||
* The $page parameter from node_view().
|
||||
* @return
|
||||
* None.
|
||||
*/
|
||||
function hook_nodeapi_alter($node, $teaser, $page) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Act on node deletion.
|
||||
*
|
||||
* @param $node
|
||||
* The node that is being deleted.
|
||||
* @return
|
||||
* None.
|
||||
*/
|
||||
function hook_nodeapi_delete($node) {
|
||||
db_query('DELETE FROM {mytable} WHERE nid = %d', $node->nid);
|
||||
}
|
||||
|
||||
/**
|
||||
* A revision of the node is deleted.
|
||||
*
|
||||
* You can delete data associated with that revision.
|
||||
*
|
||||
* @param $node
|
||||
* The node the action is being performed on.
|
||||
* @return
|
||||
* None.
|
||||
*/
|
||||
function hook_nodeapi_delete_revision($node) {
|
||||
db_delete('upload')->condition('vid', $node->vid)->execute();
|
||||
if (!is_array($node->files)) {
|
||||
return;
|
||||
}
|
||||
foreach ($node->files as $file) {
|
||||
file_delete($file);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The node being created (inserted in the database).
|
||||
*
|
||||
* @param $node
|
||||
* The node the action is being performed on.
|
||||
* @return
|
||||
* None.
|
||||
*/
|
||||
function hook_nodeapi_insert($node) {
|
||||
db_query("INSERT INTO {mytable} (nid, extra) VALUES (%d, '%s')", $node->nid, $node->extra);
|
||||
}
|
||||
|
||||
/**
|
||||
* Act on node objects when loaded.
|
||||
*
|
||||
|
@ -188,102 +252,165 @@ function hook_nodeapi_load($nodes, $types) {
|
|||
}
|
||||
|
||||
/**
|
||||
* Act on nodes defined by other modules.
|
||||
* The node is about to be shown on the add/edit form.
|
||||
*
|
||||
* Despite what its name might make you think, hook_nodeapi() is not
|
||||
* reserved for node modules. On the contrary, it allows modules to react
|
||||
* to actions affecting all kinds of nodes, regardless of whether that
|
||||
* module defined the node.
|
||||
*
|
||||
* It is common to find hook_nodeapi() used in conjunction with
|
||||
* hook_form_alter(). Modules use hook_form_alter() to place additional form
|
||||
* elements onto the node edit form, and hook_nodeapi() is used to read and
|
||||
* write those values to and from the database.
|
||||
*
|
||||
* @param &$node
|
||||
* @param $node
|
||||
* The node the action is being performed on.
|
||||
* @param $op
|
||||
* What kind of action is being performed. Possible values:
|
||||
* - "alter": the $node->content array has been rendered, so the node body or
|
||||
* teaser is filtered and now contains HTML. This op should only be used when
|
||||
* text substitution, filtering, or other raw text operations are necessary.
|
||||
* - "delete": The node is being deleted.
|
||||
* - "delete_revision": The revision of the node is deleted. You can delete data
|
||||
* associated with that revision.
|
||||
* - "insert": The node is being created (inserted in the database).
|
||||
* - "load": The node is about to be loaded from the database. This hook
|
||||
* can be used to load additional data at this time.
|
||||
* - "prepare": The node is about to be shown on the add/edit form.
|
||||
* - "prepare_translation": The node is being cloned for translation. Load
|
||||
* additional data or copy values from $node->translation_source.
|
||||
* - "print": Prepare a node view for printing. Used for printer-friendly
|
||||
* view in book_module
|
||||
* - "rss_item": An RSS feed is generated. The module can return properties
|
||||
* to be added to the RSS item generated for this node. See comment_nodeapi()
|
||||
* and upload_nodeapi() for examples. The $node passed can also be modified
|
||||
* to add or remove contents to the feed item.
|
||||
* - "search_result": The node is displayed as a search result. If you
|
||||
* want to display extra information with the result, return it.
|
||||
* - "presave": The node passed validation and is about to be saved. Modules may
|
||||
* use this to make changes to the node before it is saved to the database.
|
||||
* - "update": The node is being updated.
|
||||
* - "update_index": The node is being indexed. If you want additional
|
||||
* information to be indexed which is not already visible through
|
||||
* nodeapi "view", then you should return it here.
|
||||
* - "validate": The user has just finished editing the node and is
|
||||
* trying to preview or submit it. This hook can be used to check
|
||||
* the node data. Errors should be set with form_set_error().
|
||||
* - "view": The node content is being assembled before rendering. The module
|
||||
* may add elements $node->content prior to rendering. This hook will be
|
||||
* called after hook_view(). The format of $node->content is the same as
|
||||
* used by Forms API.
|
||||
* @param $a3
|
||||
* - For "view", passes in the $teaser parameter from node_view().
|
||||
* - For "validate", passes in the $form parameter from node_validate().
|
||||
* @param $a4
|
||||
* - For "view", passes in the $page parameter from node_view().
|
||||
* @return
|
||||
* This varies depending on the operation.
|
||||
* - The "presave", "insert", "update", "delete", "print" and "view"
|
||||
* operations have no return value.
|
||||
* - The "load" operation should return an array containing pairs
|
||||
* of fields => values to be merged into the node object.
|
||||
*
|
||||
* If you are writing a node module, do not use this hook to perform
|
||||
* actions on your type of node alone. Instead, use the hooks set aside
|
||||
* for node modules, such as hook_insert() and hook_form(). That said, for
|
||||
* some operations, such as "delete_revision" or "rss_item" there is no
|
||||
* corresponding hook so even the module defining the node will need to
|
||||
* implement hook_nodeapi().
|
||||
* None.
|
||||
*/
|
||||
function hook_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
|
||||
switch ($op) {
|
||||
case 'presave':
|
||||
if ($node->nid && $node->moderate) {
|
||||
// Reset votes when node is updated:
|
||||
$node->score = 0;
|
||||
$node->users = '';
|
||||
$node->votes = 0;
|
||||
}
|
||||
break;
|
||||
case 'insert':
|
||||
case 'update':
|
||||
if ($node->moderate && user_access('access submission queue')) {
|
||||
drupal_set_message(t('The post is queued for approval'));
|
||||
}
|
||||
elseif ($node->moderate) {
|
||||
drupal_set_message(t('The post is queued for approval. The editors will decide whether it should be published.'));
|
||||
}
|
||||
break;
|
||||
case 'view':
|
||||
$node->content['my_additional_field'] = array(
|
||||
'#value' => theme('mymodule_my_additional_field', $additional_field),
|
||||
'#weight' => 10,
|
||||
);
|
||||
break;
|
||||
function hook_nodeapi_prepare($node) {
|
||||
if (!isset($node->comment)) {
|
||||
$node->comment = variable_get("comment_$node->type", COMMENT_NODE_READ_WRITE);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The node is being cloned for translation.
|
||||
*
|
||||
* This hook can be used to load additional data or copy values from
|
||||
* $node->translation_source.
|
||||
*
|
||||
* @param $node
|
||||
* The node the action is being performed on.
|
||||
* @return
|
||||
* None.
|
||||
*/
|
||||
function hook_nodeapi_prepare_translation($node) {
|
||||
}
|
||||
|
||||
/**
|
||||
* An RSS feed is being generated.
|
||||
*
|
||||
* The module can return properties to be added to the RSS item generated for
|
||||
* this node. See comment_nodeapi_rss_item() and upload_nodeapi_rss_item() for
|
||||
* examples. The $node passed can also be modified to add or remove contents to
|
||||
* the feed item.
|
||||
*
|
||||
* @param $node
|
||||
* The node the action is being performed on.
|
||||
* @return
|
||||
* Extra information to be added to the RSS item.
|
||||
*/
|
||||
function hook_nodeapi_rss_item($node) {
|
||||
if ($node->comment != COMMENT_NODE_DISABLED) {
|
||||
return array(array('key' => 'comments', 'value' => url('node/' . $node->nid, array('fragment' => 'comments', 'absolute' => TRUE))));
|
||||
}
|
||||
else {
|
||||
return array();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The node is being displayed as a search result.
|
||||
*
|
||||
* If you want to display extra information with the result, return it.
|
||||
*
|
||||
* @param $node
|
||||
* The node the action is being performed on.
|
||||
* @return
|
||||
* Extra information to be displayed with search result.
|
||||
*/
|
||||
function hook_nodeapi_search_result($node) {
|
||||
$comments = db_query('SELECT comment_count FROM {node_comment_statistics} WHERE nid = :nid', array('nid' => $node->nid))->fetchField();
|
||||
return format_plural($comments, '1 comment', '@count comments');
|
||||
}
|
||||
|
||||
/**
|
||||
* The node passed validation and is about to be saved.
|
||||
*
|
||||
* Modules may make changes to the node before it is saved to the database.
|
||||
*
|
||||
* @param $node
|
||||
* The node the action is being performed on.
|
||||
* @return
|
||||
* None.
|
||||
*/
|
||||
function hook_nodeapi_presave($node) {
|
||||
if ($node->nid && $node->moderate) {
|
||||
// Reset votes when node is updated:
|
||||
$node->score = 0;
|
||||
$node->users = '';
|
||||
$node->votes = 0;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The node being updated.
|
||||
*
|
||||
* @param $node
|
||||
* The node the action is being performed on.
|
||||
* @return
|
||||
* None.
|
||||
*/
|
||||
function hook_nodeapi_update($node) {
|
||||
db_query("UPDATE {mytable} SET extra = '%s' WHERE nid = %d", $node->extra, $node->nid);
|
||||
}
|
||||
|
||||
/**
|
||||
* The node is being indexed.
|
||||
*
|
||||
* If you want additional information to be indexed which is not already
|
||||
* visible through nodeapi "view", then you should return it here.
|
||||
*
|
||||
* @param $node
|
||||
* The node the action is being performed on.
|
||||
* @return
|
||||
* Array of additional information to be indexed.
|
||||
*/
|
||||
function hook_nodeapi_update_index($node) {
|
||||
$text = '';
|
||||
$comments = db_query('SELECT subject, comment, format FROM {comment} WHERE nid = :nid AND status = :status', array(':nid' => $node->nid, ':status' => COMMENT_PUBLISHED));
|
||||
foreach ($comments as $comment) {
|
||||
$text .= '<h2>' . check_plain($comment->subject) . '</h2>' . check_markup($comment->comment, $comment->format, FALSE);
|
||||
}
|
||||
return $text;
|
||||
}
|
||||
|
||||
/**
|
||||
* The user has finished editing the node and is trying to preview or submit it.
|
||||
*
|
||||
* This hook can be used to check the node data. Errors should be set with
|
||||
* form_set_error().
|
||||
*
|
||||
* @param $node
|
||||
* The node the action is being performed on.
|
||||
* @param $form
|
||||
* The $form parameter from node_validate().
|
||||
* @return
|
||||
* None.
|
||||
*/
|
||||
function hook_nodeapi_validate($node, $form) {
|
||||
if (isset($node->end) && isset($node->start)) {
|
||||
if ($node->start > $node->end) {
|
||||
form_set_error('time', t('An event may not end before it starts.'));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The node content is being assembled before rendering.
|
||||
*
|
||||
* The module may add elements $node->content prior to rendering. This hook
|
||||
* will be called after hook_view(). The format of $node->content is the
|
||||
* same as used by Forms API.
|
||||
*
|
||||
* @param $node
|
||||
* The node the action is being performed on.
|
||||
* @param $teaser
|
||||
* The $teaser parameter from node_view().
|
||||
* @param $page
|
||||
* The $page parameter from node_view().
|
||||
* @return
|
||||
* None.
|
||||
*/
|
||||
function hook_nodeapi_view($node, $teaser, $page) {
|
||||
$node->content['my_additional_field'] = array(
|
||||
'#value' => theme('mymodule_my_additional_field', $additional_field),
|
||||
'#weight' => 10,
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Define module-provided node types.
|
||||
*
|
||||
|
|
|
@ -120,7 +120,7 @@ function path_set_alias($path = NULL, $alias = NULL, $pid = NULL, $language = ''
|
|||
/**
|
||||
* Implementation of hook_nodeapi_validate().
|
||||
*/
|
||||
function path_nodeapi_validate(&$node, $arg) {
|
||||
function path_nodeapi_validate($node, $form) {
|
||||
if (user_access('create url aliases') || user_access('administer url aliases')) {
|
||||
if (isset($node->path)) {
|
||||
$language = isset($node->language) ? $node->language : '';
|
||||
|
@ -149,7 +149,7 @@ function path_nodeapi_load($nodes, $types) {
|
|||
/**
|
||||
* Implementation of hook_nodeapi_insert().
|
||||
*/
|
||||
function path_nodeapi_insert(&$node, $arg) {
|
||||
function path_nodeapi_insert($node) {
|
||||
if (user_access('create url aliases') || user_access('administer url aliases')) {
|
||||
$language = isset($node->language) ? $node->language : '';
|
||||
// Don't try to insert if path is NULL. We may have already set
|
||||
|
@ -163,7 +163,7 @@ function path_nodeapi_insert(&$node, $arg) {
|
|||
/**
|
||||
* Implementation of hook_nodeapi_update().
|
||||
*/
|
||||
function path_nodeapi_update(&$node, $arg) {
|
||||
function path_nodeapi_update($node) {
|
||||
if (user_access('create url aliases') || user_access('administer url aliases')) {
|
||||
$language = isset($node->language) ? $node->language : '';
|
||||
path_set_alias('node/' . $node->nid, isset($node->path) ? $node->path : NULL, isset($node->pid) ? $node->pid : NULL, $language);
|
||||
|
@ -173,7 +173,7 @@ function path_nodeapi_update(&$node, $arg) {
|
|||
/**
|
||||
* Implementation of hook_nodeapi_delete().
|
||||
*/
|
||||
function path_nodeapi_delete(&$node, $arg) {
|
||||
function path_nodeapi_delete($node) {
|
||||
if (user_access('create url aliases') || user_access('administer url aliases')) {
|
||||
$language = isset($node->language) ? $node->language : '';
|
||||
$path = 'node/' . $node->nid;
|
||||
|
|
|
@ -425,7 +425,7 @@ function poll_node_form_submit(&$form, &$form_state) {
|
|||
/**
|
||||
* Implementation of hook_validate().
|
||||
*/
|
||||
function poll_validate($node) {
|
||||
function poll_validate($node, $form) {
|
||||
if (isset($node->title)) {
|
||||
// Check for at least two options and validate amount of votes:
|
||||
$realchoices = 0;
|
||||
|
|
|
@ -638,7 +638,7 @@ function search_touch_node($nid) {
|
|||
/**
|
||||
* Implementation of hook_nodeapi_update_index().
|
||||
*/
|
||||
function search_nodeapi_update_index(&$node, $teaser = NULL, $page = NULL) {
|
||||
function search_nodeapi_update_index($node) {
|
||||
// Transplant links to a node into the target node.
|
||||
$result = db_query("SELECT caption FROM {search_node_links} WHERE nid = %d", $node->nid);
|
||||
$output = array();
|
||||
|
@ -651,7 +651,7 @@ function search_nodeapi_update_index(&$node, $teaser = NULL, $page = NULL) {
|
|||
/**
|
||||
* Implementation of hook_nodeapi_update().
|
||||
*/
|
||||
function search_nodeapi_update(&$node, $teaser = NULL, $page = NULL) {
|
||||
function search_nodeapi_update($node) {
|
||||
// Reindex the node when it is updated. The node is automatically indexed
|
||||
// when it is added, simply by being added to the node table.
|
||||
search_touch_node($node->nid);
|
||||
|
|
|
@ -325,7 +325,7 @@ function _statistics_format_item($title, $path) {
|
|||
/**
|
||||
* Implementation of hook_nodeapi_delete().
|
||||
*/
|
||||
function statistics_nodeapi_delete(&$node, $arg = 0) {
|
||||
function statistics_nodeapi_delete($node) {
|
||||
// clean up statistics table when node is deleted
|
||||
db_query('DELETE FROM {node_counter} WHERE nid = %d', $node->nid);
|
||||
}
|
||||
|
|
|
@ -1367,7 +1367,7 @@ function taxonomy_nodeapi_load($nodes) {
|
|||
/**
|
||||
* Implementation of hook_nodeapi_insert().
|
||||
*/
|
||||
function taxonomy_nodeapi_insert($node, $arg = 0) {
|
||||
function taxonomy_nodeapi_insert($node) {
|
||||
if (!empty($node->taxonomy)) {
|
||||
taxonomy_node_save($node, $node->taxonomy);
|
||||
}
|
||||
|
@ -1376,7 +1376,7 @@ function taxonomy_nodeapi_insert($node, $arg = 0) {
|
|||
/**
|
||||
* Implementation of hook_nodeapi_update().
|
||||
*/
|
||||
function taxonomy_nodeapi_update($node, $arg = 0) {
|
||||
function taxonomy_nodeapi_update($node) {
|
||||
if (!empty($node->taxonomy)) {
|
||||
taxonomy_node_save($node, $node->taxonomy);
|
||||
}
|
||||
|
@ -1385,42 +1385,42 @@ function taxonomy_nodeapi_update($node, $arg = 0) {
|
|||
/**
|
||||
* Implementation of hook_nodeapi_delete().
|
||||
*/
|
||||
function taxonomy_nodeapi_delete($node, $arg = 0) {
|
||||
function taxonomy_nodeapi_delete($node) {
|
||||
taxonomy_node_delete($node);
|
||||
}
|
||||
|
||||
/**
|
||||
* Implementation of hook_nodeapi_delete_revision().
|
||||
*/
|
||||
function taxonomy_nodeapi_delete_revision($node, $arg = 0) {
|
||||
function taxonomy_nodeapi_delete_revision($node) {
|
||||
taxonomy_node_delete_revision($node);
|
||||
}
|
||||
|
||||
/**
|
||||
* Implementation of hook_nodeapi_validate().
|
||||
*/
|
||||
function taxonomy_nodeapi_validate($node, $arg = 0) {
|
||||
function taxonomy_nodeapi_validate($node, $form) {
|
||||
taxonomy_node_validate($node);
|
||||
}
|
||||
|
||||
/**
|
||||
* Implementation of hook_nodeapi_rss_item().
|
||||
*/
|
||||
function taxonomy_nodeapi_rss_item($node, $arg = 0) {
|
||||
function taxonomy_nodeapi_rss_item($node) {
|
||||
return taxonomy_rss_item($node);
|
||||
}
|
||||
|
||||
/**
|
||||
* Implementation of hook_nodeapi_update_index().
|
||||
*/
|
||||
function taxonomy_nodeapi_update_index($node, $arg = 0) {
|
||||
function taxonomy_nodeapi_update_index($node) {
|
||||
return taxonomy_node_update_index($node);
|
||||
}
|
||||
|
||||
/**
|
||||
* Implementation of hook_nodeapi('update_index').
|
||||
*/
|
||||
function taxonomy_node_update_index(&$node) {
|
||||
function taxonomy_node_update_index($node) {
|
||||
$output = array();
|
||||
foreach ($node->taxonomy as $term) {
|
||||
$output[] = $term->name;
|
||||
|
|
|
@ -186,7 +186,7 @@ function translation_link($type, $node = NULL, $teaser = FALSE) {
|
|||
/**
|
||||
* Implementation of hook_nodeapi_prepare().
|
||||
*/
|
||||
function translation_nodeapi_prepare(&$node, $teaser, $page) {
|
||||
function translation_nodeapi_prepare($node) {
|
||||
// Only act if we are dealing with a content type supporting translations.
|
||||
if (translation_supported_type($node->type)) {
|
||||
if (empty($node->nid) && isset($_GET['translation']) && isset($_GET['language']) &&
|
||||
|
@ -207,7 +207,7 @@ function translation_nodeapi_prepare(&$node, $teaser, $page) {
|
|||
/**
|
||||
* Implementation of hook_nodeapi_insert().
|
||||
*/
|
||||
function translation_nodeapi_insert(&$node, $teaser, $page) {
|
||||
function translation_nodeapi_insert($node) {
|
||||
// Only act if we are dealing with a content type supporting translations.
|
||||
if (translation_supported_type($node->type)) {
|
||||
if (!empty($node->translation_source)) {
|
||||
|
@ -228,7 +228,7 @@ function translation_nodeapi_insert(&$node, $teaser, $page) {
|
|||
/**
|
||||
* Implementation of hook_nodeapi_update().
|
||||
*/
|
||||
function translation_nodeapi_update(&$node, $teaser, $page) {
|
||||
function translation_nodeapi_update($node) {
|
||||
// Only act if we are dealing with a content type supporting translations.
|
||||
if (translation_supported_type($node->type)) {
|
||||
if (isset($node->translation) && $node->translation && !empty($node->language) && $node->tnid) {
|
||||
|
@ -245,7 +245,7 @@ function translation_nodeapi_update(&$node, $teaser, $page) {
|
|||
/**
|
||||
* Implementation of hook_nodeapi_delete().
|
||||
*/
|
||||
function translation_nodeapi_delete(&$node, $teaser, $page) {
|
||||
function translation_nodeapi_delete($node) {
|
||||
// Only act if we are dealing with a content type supporting translations.
|
||||
if (translation_supported_type($node->type)) {
|
||||
translation_remove_from_set($node);
|
||||
|
|
|
@ -204,7 +204,7 @@ function _trigger_normalize_node_context($type, $node) {
|
|||
*
|
||||
* @TODO: Take advantage of the new API and reorganise/remove this function.
|
||||
*/
|
||||
function _trigger_nodeapi(&$node, $op, $a3, $a4) {
|
||||
function _trigger_nodeapi($node, $op, $a3 = NULL, $a4 = NULL) {
|
||||
// Keep objects for reuse so that changes actions make to objects can persist.
|
||||
static $objects;
|
||||
// Prevent recursion by tracking which operations have already been called.
|
||||
|
@ -245,36 +245,36 @@ function _trigger_nodeapi(&$node, $op, $a3, $a4) {
|
|||
/**
|
||||
* Implementation of hook_nodeapi_view().
|
||||
*/
|
||||
function trigger_nodeapi_view(&$node, $a3, $a4) {
|
||||
_trigger_nodeapi($node, 'view', $a3, $a4);
|
||||
function trigger_nodeapi_view($node, $teaser, $page) {
|
||||
_trigger_nodeapi($node, 'view', $teaser, $page);
|
||||
}
|
||||
|
||||
/**
|
||||
* Implementation of hook_nodeapi_update().
|
||||
*/
|
||||
function trigger_nodeapi_update(&$node, $a3, $a4) {
|
||||
_trigger_nodeapi($node, 'update', $a3, $a4);
|
||||
function trigger_nodeapi_update($node) {
|
||||
_trigger_nodeapi($node, 'update');
|
||||
}
|
||||
|
||||
/**
|
||||
* Implementation of hook_nodeapi_presave().
|
||||
*/
|
||||
function trigger_nodeapi_presave(&$node, $a3, $a4) {
|
||||
_trigger_nodeapi($node, 'presave', $a3, $a4);
|
||||
function trigger_nodeapi_presave($node) {
|
||||
_trigger_nodeapi($node, 'presave');
|
||||
}
|
||||
|
||||
/**
|
||||
* Implementation of hook_nodeapi_insert().
|
||||
*/
|
||||
function trigger_nodeapi_insert(&$node, $a3, $a4) {
|
||||
_trigger_nodeapi($node, 'insert', $a3, $a4);
|
||||
function trigger_nodeapi_insert($node) {
|
||||
_trigger_nodeapi($node, 'insert');
|
||||
}
|
||||
|
||||
/**
|
||||
* Implementation of hook_nodeapi_delete().
|
||||
*/
|
||||
function trigger_nodeapi_delete(&$node, $a3, $a4) {
|
||||
_trigger_nodeapi($node, 'delete', $a3, $a4);
|
||||
function trigger_nodeapi_delete($node) {
|
||||
_trigger_nodeapi($node, 'delete');
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -311,7 +311,7 @@ function upload_nodeapi_load($nodes, $types) {
|
|||
/**
|
||||
* Implementation of hook_nodeapi_view().
|
||||
*/
|
||||
function upload_nodeapi_view(&$node, $teaser) {
|
||||
function upload_nodeapi_view($node, $teaser, $page) {
|
||||
if (isset($node->files) && user_access('view uploaded files')) {
|
||||
// Add the attachments list to node body with a heavy
|
||||
// weight to ensure they're below other elements
|
||||
|
@ -329,7 +329,7 @@ function upload_nodeapi_view(&$node, $teaser) {
|
|||
/**
|
||||
* Implementation of hook_nodeapi_insert().
|
||||
*/
|
||||
function upload_nodeapi_insert(&$node, $teaser) {
|
||||
function upload_nodeapi_insert($node) {
|
||||
if (user_access('upload files')) {
|
||||
upload_save($node);
|
||||
}
|
||||
|
@ -338,7 +338,7 @@ function upload_nodeapi_insert(&$node, $teaser) {
|
|||
/**
|
||||
* Implementation of hook_nodeapi_update().
|
||||
*/
|
||||
function upload_nodeapi_update(&$node, $teaser) {
|
||||
function upload_nodeapi_update($node) {
|
||||
if (user_access('upload files')) {
|
||||
upload_save($node);
|
||||
}
|
||||
|
@ -347,7 +347,7 @@ function upload_nodeapi_update(&$node, $teaser) {
|
|||
/**
|
||||
* Implementation of hook_nodeapi_delete().
|
||||
*/
|
||||
function upload_nodeapi_delete(&$node, $teaser) {
|
||||
function upload_nodeapi_delete($node) {
|
||||
db_delete('upload')->condition('nid', $node->nid)->execute();
|
||||
if (!is_array($node->files)) {
|
||||
return;
|
||||
|
@ -360,7 +360,7 @@ function upload_nodeapi_delete(&$node, $teaser) {
|
|||
/**
|
||||
* Implementation of hook_nodeapi_delete_revision().
|
||||
*/
|
||||
function upload_nodeapi_delete_revision(&$node, $teaser) {
|
||||
function upload_nodeapi_delete_revision($node) {
|
||||
db_delete('upload')->condition('vid', $node->vid)->execute();
|
||||
if (!is_array($node->files)) {
|
||||
return;
|
||||
|
@ -373,14 +373,14 @@ function upload_nodeapi_delete_revision(&$node, $teaser) {
|
|||
/**
|
||||
* Implementation of hook_nodeapi_search_result().
|
||||
*/
|
||||
function upload_nodeapi_search_result(&$node, $teaser) {
|
||||
function upload_nodeapi_search_result($node) {
|
||||
return isset($node->files) && is_array($node->files) ? format_plural(count($node->files), '1 attachment', '@count attachments') : NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* Implementation of hook_nodeapi_rss_item().
|
||||
*/
|
||||
function upload_nodeapi_rss_item(&$node, $teaser) {
|
||||
function upload_nodeapi_rss_item($node) {
|
||||
if (is_array($node->files)) {
|
||||
$files = array();
|
||||
foreach ($node->files as $file) {
|
||||
|
|
Loading…
Reference in New Issue