class NodeController

Same name in other branches
  1. 9 core/modules/node/src/Controller/NodeController.php \Drupal\node\Controller\NodeController
  2. 8.9.x core/modules/node/src/Controller/NodeController.php \Drupal\node\Controller\NodeController
  3. 10 core/modules/node/src/Controller/NodeController.php \Drupal\node\Controller\NodeController
  4. 11.x core/modules/node/src/Controller/NodeController.php \Drupal\node\Controller\NodeController

Controller class for nodes.

This extends the DrupalDefaultEntityController class, adding required special handling for node objects.

Hierarchy

Expanded class hierarchy of NodeController

2 string references to 'NodeController'
hook_entity_info in modules/system/system.api.php
Inform the base system and the Field API about one or more entity types.
node_entity_info in modules/node/node.module
Implements hook_entity_info().

File

modules/node/node.module, line 4157

View source
class NodeController extends DrupalDefaultEntityController {
    protected function attachLoad(&$nodes, $revision_id = FALSE) {
        // Create an array of nodes for each content type and pass this to the
        // object type specific callback.
        $typed_nodes = array();
        foreach ($nodes as $id => $entity) {
            $typed_nodes[$entity->type][$id] = $entity;
        }
        // Call object type specific callbacks on each typed array of nodes.
        foreach ($typed_nodes as $node_type => $nodes_of_type) {
            if (node_hook($node_type, 'load')) {
                $function = node_type_get_base($node_type) . '_load';
                $function($nodes_of_type);
            }
        }
        // Besides the list of nodes, pass one additional argument to
        // hook_node_load(), containing a list of node types that were loaded.
        $argument = array_keys($typed_nodes);
        $this->hookLoadArguments = array(
            $argument,
        );
        parent::attachLoad($nodes, $revision_id);
    }
    protected function buildQuery($ids, $conditions = array(), $revision_id = FALSE) {
        // Ensure that uid is taken from the {node} table,
        // alias timestamp to revision_timestamp and add revision_uid.
        $query = parent::buildQuery($ids, $conditions, $revision_id);
        $fields =& $query->getFields();
        unset($fields['timestamp']);
        $query->addField('revision', 'timestamp', 'revision_timestamp');
        $fields['uid']['table'] = 'base';
        $query->addField('revision', 'uid', 'revision_uid');
        return $query;
    }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title Overrides
DrupalDefaultEntityController::$cache protected property Whether this entity type should use the static cache.
DrupalDefaultEntityController::$entityCache protected property Static cache of entities, keyed by entity ID.
DrupalDefaultEntityController::$entityInfo protected property Array of information about the entity.
DrupalDefaultEntityController::$entityType protected property Entity type for this controller instance.
DrupalDefaultEntityController::$hookLoadArguments protected property Additional arguments to pass to hook_TYPE_load().
DrupalDefaultEntityController::$idKey protected property Name of the entity's ID field in the entity database table.
DrupalDefaultEntityController::$revisionKey protected property Name of entity's revision database table field, if it supports revisions.
DrupalDefaultEntityController::$revisionTable protected property The table that stores revisions, if the entity supports revisions.
DrupalDefaultEntityController::cacheGet protected function Gets entities from the static cache. 1
DrupalDefaultEntityController::cacheSet protected function Stores entities in the static entity cache.
DrupalDefaultEntityController::cleanIds protected function Ensures integer entity IDs are valid.
DrupalDefaultEntityController::filterId protected function Callback for array_filter that removes non-integer IDs.
DrupalDefaultEntityController::load public function Implements DrupalEntityControllerInterface::load(). Overrides DrupalEntityControllerInterface::load
DrupalDefaultEntityController::resetCache public function Implements DrupalEntityControllerInterface::resetCache(). Overrides DrupalEntityControllerInterface::resetCache
DrupalDefaultEntityController::__construct public function Constructor: sets basic variables.
NodeController::attachLoad protected function Attaches data to entities upon loading. Overrides DrupalDefaultEntityController::attachLoad
NodeController::buildQuery protected function Builds the query to load the entity. Overrides DrupalDefaultEntityController::buildQuery

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.