You are here

class TMGMTLocalTaskItemController in Translation Management Tool 7

Controller class for the local task entity.

Hierarchy

Expanded class hierarchy of TMGMTLocalTaskItemController

Related topics

1 string reference to 'TMGMTLocalTaskItemController'
tmgmt_local_entity_info in translators/tmgmt_local/tmgmt_local.module
Implements hook_entity_info().

File

translators/tmgmt_local/controller/tmgmt_local.controller.task_item.inc, line 13
Contains the task item controller.

View source
class TMGMTLocalTaskItemController extends EntityAPIController {

  /**
   * {@inheritdoc}
   *
   * @todo Eliminate the need to flatten and unflatten the TaskItem data.
   */
  public function save($entity, DatabaseTransaction $transaction = NULL) {

    // Consider everything translated when the job item is translated.
    if ($entity
      ->isCompleted()) {
      $entity->count_untranslated = 0;
      $entity->count_translated = count(tmgmt_flatten_data($entity->data));
      $entity->count_completed = 0;
    }
    elseif ($entity
      ->isClosed()) {
      $entity->count_untranslated = 0;
      $entity->count_translated = 0;
      $entity->count_completed = count(tmgmt_flatten_data($entity->data));
    }
    else {

      // Start with assuming that all data is untranslated, then go through it
      // and count translated data.
      $entity->count_untranslated = count(array_filter(tmgmt_flatten_data($entity
        ->getJobItem()
        ->getData()), '_tmgmt_filter_data'));
      $entity->count_translated = 0;
      $entity->count_completed = 0;
      $this
        ->count($entity->data, $entity);
    }
    return parent::save($entity, $transaction);
  }

  /**
   * Parse all data items recursively and sums up the counters for
   * accepted, translated and pending items.
   *
   * @param $item
   *   The current data item.
   * @param $entity
   *   The job item the count should be calculated.
   */
  protected function count(&$item, $entity) {
    if (!empty($item['#text'])) {
      if (_tmgmt_filter_data($item)) {

        // Set default states if no state is set.
        if (!isset($item['#status'])) {
          $item['#status'] = TMGMT_DATA_ITEM_STATE_UNTRANSLATED;
        }
        switch ($item['#status']) {
          case TMGMT_DATA_ITEM_STATE_TRANSLATED:
            $entity->count_untranslated--;
            $entity->count_translated++;
            break;
        }
      }
    }
    else {
      foreach (element_children($item) as $key) {
        $this
          ->count($item[$key], $entity);
      }
    }
  }

}

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::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.
EntityAPIController::$bundleKey protected property
EntityAPIController::$cacheComplete protected property
EntityAPIController::$defaultRevisionKey protected property
EntityAPIController::buildContent public function Implements EntityAPIControllerInterface. Overrides EntityAPIControllerInterface::buildContent
EntityAPIController::buildQuery protected function Overrides DrupalDefaultEntityController::buildQuery(). Overrides DrupalDefaultEntityController::buildQuery 1
EntityAPIController::create public function Implements EntityAPIControllerInterface. Overrides EntityAPIControllerInterface::create
EntityAPIController::delete public function Implements EntityAPIControllerInterface. Overrides EntityAPIControllerInterface::delete 1
EntityAPIController::deleteRevision public function Implements EntityAPIControllerRevisionableInterface::deleteRevision(). Overrides EntityAPIControllerRevisionableInterface::deleteRevision
EntityAPIController::export public function Implements EntityAPIControllerInterface. Overrides EntityAPIControllerInterface::export 1
EntityAPIController::import public function Implements EntityAPIControllerInterface. Overrides EntityAPIControllerInterface::import
EntityAPIController::invoke public function Implements EntityAPIControllerInterface. Overrides EntityAPIControllerInterface::invoke 1
EntityAPIController::load public function Overridden. Overrides DrupalDefaultEntityController::load 1
EntityAPIController::query public function Builds and executes the query for loading.
EntityAPIController::renderEntityProperty protected function Renders a single entity property.
EntityAPIController::resetCache public function Overrides DrupalDefaultEntityController::resetCache(). Overrides DrupalDefaultEntityController::resetCache 1
EntityAPIController::saveRevision protected function Saves an entity revision.
EntityAPIController::view public function Implements EntityAPIControllerInterface. Overrides EntityAPIControllerInterface::view 1
EntityAPIController::__construct public function Overridden. Overrides DrupalDefaultEntityController::__construct 1
TMGMTLocalTaskItemController::count protected function Parse all data items recursively and sums up the counters for accepted, translated and pending items.
TMGMTLocalTaskItemController::save public function @todo Eliminate the need to flatten and unflatten the TaskItem data. Overrides EntityAPIController::save