class TaxonomyTermController

Controller class for taxonomy terms.

This extends the DrupalDefaultEntityController class. Only alteration is that we match the condition on term name case-independently.

Hierarchy

Expanded class hierarchy of TaxonomyTermController

1 string reference to 'TaxonomyTermController'
taxonomy_entity_info in drupal/modules/taxonomy/taxonomy.module
Implements hook_entity_info().

File

drupal/modules/taxonomy/taxonomy.module, line 1247
Enables the organization of content into categories.

View source
class TaxonomyTermController extends DrupalDefaultEntityController {
  protected function buildQuery($ids, $conditions = array(), $revision_id = FALSE) {
    $query = parent::buildQuery($ids, $conditions, $revision_id);
    $query
      ->addTag('translatable');
    $query
      ->addTag('taxonomy_term_access');

    // When name is passed as a condition use LIKE.
    if (isset($conditions['name'])) {
      $query_conditions =& $query
        ->conditions();
      foreach ($query_conditions as $key => $condition) {
        if (is_array($condition) && $condition['field'] == 'base.name') {
          $query_conditions[$key]['operator'] = 'LIKE';
          $query_conditions[$key]['value'] = db_like($query_conditions[$key]['value']);
        }
      }
    }

    // Add the machine name field from the {taxonomy_vocabulary} table.
    $query
      ->innerJoin('taxonomy_vocabulary', 'v', 'base.vid = v.vid');
    $query
      ->addField('v', 'machine_name', 'vocabulary_machine_name');
    return $query;
  }
  protected function cacheGet($ids, $conditions = array()) {
    $terms = parent::cacheGet($ids, $conditions);

    // Name matching is case insensitive, note that with some collations
    // LOWER() and drupal_strtolower() may return different results.
    foreach ($terms as $term) {
      $term_values = (array) $term;
      if (isset($conditions['name']) && drupal_strtolower($conditions['name'] != drupal_strtolower($term_values['name']))) {
        unset($terms[$term->tid]);
      }
    }
    return $terms;
  }

}

Members

Namesort descending Modifiers Type Description 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::attachLoad protected function Attaches data to entities upon loading. 4
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.
TaxonomyTermController::buildQuery protected function Builds the query to load the entity. Overrides DrupalDefaultEntityController::buildQuery
TaxonomyTermController::cacheGet protected function Gets entities from the static cache. Overrides DrupalDefaultEntityController::cacheGet