function hook_node_presave

Act on a node being inserted or updated.

This hook is invoked from $node->save() before the node is saved to the database.

Parameters

\Drupal\Core\Entity\EntityInterface $node: The node that is being inserted or updated.

Related topics

4 functions implement hook_node_presave()

Note: this list is generated by pattern matching, so it may include some functions that are not actually implementations of this hook.

book_node_presave in drupal/core/modules/book/book.module
Implements hook_node_presave().
entity_crud_hook_test_node_presave in drupal/core/modules/system/tests/modules/entity_crud_hook_test/entity_crud_hook_test.module
Implements hook_node_presave().
forum_node_presave in drupal/core/modules/forum/forum.module
Implements hook_node_presave().
node_test_node_presave in drupal/core/modules/node/tests/modules/node_test/node_test.module
Implements hook_node_presave().
4 invocations of hook_node_presave()
ConfigStorageController::save in drupal/core/lib/Drupal/Core/Config/Entity/ConfigStorageController.php
Implements Drupal\Core\Entity\EntityStorageControllerInterface::save().
DatabaseStorageController::save in drupal/core/lib/Drupal/Core/Entity/DatabaseStorageController.php
Implements \Drupal\Core\Entity\EntityStorageControllerInterface::save().
DatabaseStorageControllerNG::save in drupal/core/lib/Drupal/Core/Entity/DatabaseStorageControllerNG.php
Overrides DatabaseStorageController::save().
MenuLinkStorageController::save in drupal/core/modules/menu_link/lib/Drupal/menu_link/MenuLinkStorageController.php
Overrides DatabaseStorageController::save().

File

drupal/core/modules/node/node.api.php, line 671
Hooks provided by the Node module.

Code

function hook_node_presave(\Drupal\Core\Entity\EntityInterface $node) {
  if ($node->nid && $node->moderate) {

    // Reset votes when node is updated:
    $node->score = 0;
    $node->users = '';
    $node->votes = 0;
  }
}