/** * Builds a table row for overview form. * * @param \Drupal\Core\Config\Entity\ConfigEntityInterface $entity * Data needed to build the list row. * * @return array * A single table row for the overview. */ public function overviewRow(ConfigEntityInterface $entity) { $label = $entity->label() ?: $this->t('@type: @id', array('@type' => $entity->getEntityTypeId(), '@id' => $entity->id())); // Get current job items for the entity to determine translation statuses. $source_lang = $entity->language()->getId(); $current_job_items = tmgmt_job_item_load_latest('config', $entity->getEntityTypeId(), $entity->getConfigDependencyName(), $source_lang); $row['id'] = $entity->id(); $definition = \Drupal::entityTypeManager()->getDefinition($entity->bundle()); $row['config_id'] = $definition->getConfigPrefix() . '.' . $entity->id(); if ($entity->hasLinkTemplate('edit-form')) { $row['title'] = $entity->toLink($label, 'edit-form'); } else { // If the entity doesn't have a link we display a label. $row['title'] = $label; } // Load entity translation specific data. foreach (\Drupal::languageManager()->getLanguages() as $langcode => $language) { $translation_status = 'current'; if ($langcode == $source_lang) { $translation_status = 'original'; } elseif (!$this->isTranslated($langcode, $entity->getConfigDependencyName())) { $translation_status = 'missing'; } // @todo Find a way to support marking configuration translations as outdated. $build = $this->buildTranslationStatus($translation_status, isset($current_job_items[$langcode]) ? $current_job_items[$langcode] : NULL); $row['langcode-' . $langcode] = ['data' => \Drupal::service('renderer')->render($build), 'class' => array('langstatus-' . $langcode)]; } return $row; }
/** * {@inheritdoc} */ public function getTitle() { // Title based on the entity label. Should be translated for display in the // current page language. The title placeholder is later escaped for // display. $entity_type_info = $this->entityManager->getDefinition($this->entityType); return $this->t($this->pluginDefinition['title'], array('!label' => $this->entity->label(), '!entity_type' => $entity_type_info->getLowercaseLabel())); }
/** * {@inheritdoc} */ public static function sort(ConfigEntityInterface $a, ConfigEntityInterface $b) { if ($a->isLocked() == $b->isLocked()) { $a_label = $a->label(); $b_label = $b->label(); return strnatcasecmp($a_label, $b_label); } return $a->isLocked() ? 1 : -1; }
/** * Helper callback for uasort() to sort configuration entities by weight and label. */ public static function sort(ConfigEntityInterface $a, ConfigEntityInterface $b) { $a_weight = isset($a->weight) ? $a->weight : 0; $b_weight = isset($b->weight) ? $b->weight : 0; if ($a_weight == $b_weight) { $a_label = $a->label(); $b_label = $b->label(); return strnatcasecmp($a_label, $b_label); } return $a_weight < $b_weight ? -1 : 1; }
/** * {@inheritdoc} */ public function getTitle() { return $this->entity->label() . ' ' . $this->pluginDefinition['title']; }
/** * Sorts active blocks by weight; sorts inactive blocks by name. */ public static function sort(ConfigEntityInterface $a, ConfigEntityInterface $b) { // Separate enabled from disabled. $status = (int) $b->status() - (int) $a->status(); if ($status !== 0) { return $status; } // Sort by weight, unless disabled. if ($a->getRegion() != static::BLOCK_REGION_NONE) { $weight = $a->getWeight() - $b->getWeight(); if ($weight) { return $weight; } } // Sort by label. return strcmp($a->label(), $b->label()); }
/** * Sorts active blocks by weight; sorts inactive blocks by name. */ public static function sort(ConfigEntityInterface $a, ConfigEntityInterface $b) { // Separate enabled from disabled. $status = $b->get('status') - $a->get('status'); if ($status) { return $status; } // Sort by weight, unless disabled. if ($a->get('region') != static::BLOCK_REGION_NONE) { $weight = $a->get('weight') - $b->get('weight'); if ($weight) { return $weight; } } // Sort by label. return strcmp($a->label(), $b->label()); }