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 modules/taxonomy/taxonomy.module
Implements hook_entity_info().

File

modules/taxonomy/taxonomy.module, line 1249

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

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::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

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